Compare commits

..
Author SHA1 Message Date
Landon Wills dac4eb3501 Experimental fix for unintentional local emitter rotation 2026-11-12 16:51:42 -05:00
Hiroku 99e72339db Remove rogue println, closes #2147 2026-11-08 10:32:42 +10:00
Hiroku 10c9931d2c Merge branch 'weight-tweak-tweak' into 'main'
add `spawnable_position` to weight rule component's "weight" expression

Closes #2145

See merge request cable-mc/cobblemon!2521
2026-11-07 08:20:09 +00:00
Hiroku 0e55165570 Merge branch 'main' into 'main'
Main - fixs #2142, unown name issue.

See merge request cable-mc/cobblemon!2523
2026-11-07 08:19:02 +00:00
Matthew Baerg b6b87621a5 Update file CHANGELOG.md 2026-11-07 04:42:37 +00:00
Matthew Baerg 71b01d562b Update file CHANGELOG.md 2026-11-07 04:39:00 +00:00
Matthew Baerg 21eb66e69b Update file unown.json 2026-11-07 03:31:36 +00:00
Matthew Baerg 8b04e57a1d Update file unown.json 2026-11-07 02:35:21 +00:00
Hiroku 1ff3b7ee96 Updated molang dep for some library fixes 2026-11-07 12:07:03 +10:00
spacky 8a2d6096e3 update changelog 2026-11-03 09:02:01 -08:00
spacky 2645b5e375 add spawnable_position to weight rule component's "weight" expression 2026-11-03 08:03:14 -08:00
Polymeta 99e0a26d7b Merge branch 'compat-improvements' into 'main'
teeny fixes to compat

See merge request cable-mc/cobblemon!2520
2026-11-02 09:17:39 +00:00
dhi_holo 71753df513 Leftovers
Also a slight fix to the order in changelog
2026-11-02 13:30:23 +10:00
dhi_holo 729f080f6e Merge branch 'main' into compat-improvements 2026-11-02 13:26:43 +10:00
dhi_holo 13eb57afb1 category fix
Fixing one recipe category I missed teehee
2026-11-02 13:23:42 +10:00
30 changed files with 24 additions and 241 deletions

No files matched your search

+8
View File
@@ -9,19 +9,27 @@
### Changes
- Amethyst now grows from Typegem core blocks like typegems do
- Updated the recipe category for the Create compatibility EXP Candy recipe
- Added No Man's Lands' Honeyed Apple to the Leaves Leftovers tag
- Updated Unown's punctuation form names from `!` and `?` to `Exclamation` and `Question`, changing their visible form labels in tooltips and mod integrations.
### Fixes
- Fixed Ponigiri food values for AppleSkin integration
- Fixed errors emitted by typos in Parched Peat bog structure files
- Fixed Unown punctuation forms (? and !) resolving to duplicate Showdown IDs and colliding in form displays.
### Developer
- Fixed JsonArray to MoValue conversion not working properly.
### Molang & Datapacks
- `q.is_standing_on_blocks` now properly checks for non-full blocks like slabs, Mud or Soul Sand
- Added Molang functions to play footstep sounds based on the corresponding surface. These are intended to be used by Pokémon animations.
- Pokémon can now have their Minecraft footstep sounds silenced in their poser. This doesn't affect emitting game events.
- Fixed the Molang coalescing operator not working the way you'd expect a coalesce operator to.
- Added `v.spawnable_position` to the weight spawn rule component's "weight" expression
### Particles
- Fixes emitters being rotated by a model's locators when local rotation was off. This should fix some niche unexpected rotation issues from occurring.
### Localization
- Updated translations for:
@@ -31,8 +31,8 @@ class EmitterSpace(
}
}
fun initializeEmitterMatrix(rootMatrix: MatrixWrapper, locatorMatrix: MatrixWrapper): MatrixWrapper {
var rootRotation = rootMatrix.matrix.getRotation(AxisAngle4f())
fun initializeEmitterMatrix(rootMatrix: MatrixWrapper, locatorMatrix: MatrixWrapper, localSpaceRotation: Boolean = true): MatrixWrapper {
var rootRotation = if (localSpaceRotation) rootMatrix.matrix.getRotation(AxisAngle4f()) else AxisAngle4f()
//When the locator hasn't yet been initialized, we start getting NaNs, so default to no rotation instead
if (rootRotation.x.isNaN() || rootRotation.y.isNaN() || rootRotation.z.isNaN() || rootRotation.angle.isNaN()) {
rootRotation = AxisAngle4f()
@@ -41,6 +41,7 @@ class WeightTweakRuleComponent : SpawnRuleComponent {
return if (spawnDetailSelector.selects(detail) && spawnablePositionSelector.selects(spawnablePosition)) {
runtime.environment.setSimpleVariable("spawn", detail.struct)
runtime.environment.setSimpleVariable("spawn_detail", detail.struct)
runtime.environment.setSimpleVariable("spawnable_position", spawnablePosition.getOrSetupStruct())
runtime.environment.setSimpleVariable("weight", DoubleValue(weight.toDouble()))
runtime.resolveFloat(this.weight)
} else {
@@ -169,7 +169,6 @@ class TypeGemCoreBlock(properties: Properties) : Block(properties) {
if (fullClusterCount == 0) {
if (gemCount < Cobblemon.config.typeGemMinGrowth && clusters.isNotEmpty()) {
println("Force set a cluster to FULL at size $gemCount")
val randomCluster = clusters.random()
level.setBlockAndUpdate(randomCluster.second, randomCluster.first.setValue(GROWTH_TYPE, GrowthType.FULL))
}
@@ -36,7 +36,7 @@ object SpawnSnowstormEntityParticleHandler : ClientNetworkPacketHandler<SpawnSno
sourceLocators.forEach { locator ->
val locatorMatrix = sourceState.locatorStates[locator]!!
val particleMatrix = effect.emitter.space.initializeEmitterMatrix(rootMatrix, locatorMatrix)
val particleMatrix = effect.emitter.space.initializeEmitterMatrix(rootMatrix, locatorMatrix, effect.space.localRotation)
val particleRuntime = MoLangRuntime().setup().setupClient()
particleRuntime.environment.query.addFunction("entity") { sourceState.runtime.environment.query }
@@ -355,7 +355,7 @@ abstract class PosableState : Schedulable {
val rootMatrix = locatorStates["root"] ?: return@addFunction DoubleValue.ZERO // Played before it's on screen for the first time
val locatorMatrix = locatorStates[locator] ?: rootMatrix
val particleMatrix = effect.emitter.space.initializeEmitterMatrix(rootMatrix, locatorMatrix)
val particleMatrix = effect.emitter.space.initializeEmitterMatrix(rootMatrix, locatorMatrix, effect.space.localRotation)
val particleRuntime = MoLangRuntime().setup().setupClient()
particleRuntime.environment.query.addFunction("entity") { runtime.environment.query }
@@ -73,7 +73,7 @@ class BedrockParticleKeyframe(
val rootMatrix = state.locatorStates["root"]!!
val locatorMatrix = state.locatorStates[locator] ?: state.locatorStates["root"]!!
val particleMatrix = effect.emitter.space.initializeEmitterMatrix(rootMatrix, locatorMatrix)
val particleMatrix = effect.emitter.space.initializeEmitterMatrix(rootMatrix, locatorMatrix, effect.space.localRotation)
if (this in state.poseParticles) {
return
@@ -15,51 +15,11 @@
"name": "smeargle",
"pivot": [0, 0, 0]
},
{
"name": "locator_root",
"parent": "smeargle",
"pivot": [0, 0, 0],
"locators": {
"root": [0, 0, 0]
}
},
{
"name": "locator_top",
"parent": "smeargle",
"pivot": [0, 30, 0],
"locators": {
"top": [0, 30, 0]
}
},
{
"name": "locator_special",
"parent": "smeargle",
"pivot": [0, 14, -20],
"locators": {
"special": [0, 14, -20]
}
},
{
"name": "body",
"parent": "smeargle",
"pivot": [0, 6, 0]
},
{
"name": "locator_target",
"parent": "body",
"pivot": [0, 14, -8],
"locators": {
"target": [0, 14, -8]
}
},
{
"name": "locator_middle",
"parent": "body",
"pivot": [0, 14, 0],
"locators": {
"middle": [0, 14, 0]
}
},
{
"name": "torso",
"parent": "body",
@@ -108,23 +68,6 @@
{"origin": [10.5, 14, -1.5], "size": [2, 2, 3], "inflate": 0.02, "uv": [22, 46]}
]
},
{
"name": "locator_hand_secondary",
"parent": "hand_left",
"pivot": [12.5, 14, 0],
"rotation": [0, -90, 0],
"locators": {
"hand_secondary": [12.5, 14, 0]
}
},
{
"name": "locator_item",
"parent": "hand_left",
"pivot": [12.5, 14, 0],
"locators": {
"item": [12.5, 14, 0]
}
},
{
"name": "thumb_left",
"parent": "hand_left",
@@ -197,15 +140,6 @@
{"origin": [-12.5, 14, -1.5], "size": [2, 2, 3], "inflate": 0.02, "uv": [32, 46], "mirror": true}
]
},
{
"name": "locator_hand_primary",
"parent": "hand_right",
"pivot": [-12.5, 14, 0],
"rotation": [0, 90, 0],
"locators": {
"hand_primary": [-12.5, 14, 0]
}
},
{
"name": "thumb_right",
"parent": "hand_right",
@@ -272,31 +206,6 @@
{"origin": [-1.5, 21, -8.01], "size": [1, 1, 0], "uv": [0, 9], "mirror": true}
]
},
{
"name": "locator_mouth",
"parent": "head",
"pivot": [0, 18, -4.75],
"locators": {
"mouth": [0, 18, -4.75]
}
},
{
"name": "locator_item_face",
"parent": "head",
"pivot": [0, 25.5, -7.5],
"rotation": [-35, 0, 0],
"locators": {
"item_face": [0, 25.5, -7.5]
}
},
{
"name": "locator_face",
"parent": "head",
"pivot": [0, 23, -8],
"locators": {
"face": [0, 23, -8]
}
},
{
"name": "eyes",
"parent": "head",
@@ -346,15 +255,6 @@
{"origin": [4.03, 22.5, -5.5], "size": [0, 2, 1], "uv": [8, -1]}
]
},
{
"name": "locator_eye_left",
"parent": "pupil_left",
"pivot": [4, 23.5, -5],
"rotation": [0, -90, 0],
"locators": {
"eye2": [4, 23.5, -5]
}
},
{
"name": "eyelid_left",
"parent": "eye_left",
@@ -423,15 +323,6 @@
{"origin": [-4.03, 22.5, -5.5], "size": [0, 2, 1], "uv": [8, 18], "mirror": true}
]
},
{
"name": "locator_eye_right",
"parent": "pupil_right",
"pivot": [-4, 23.5, -5],
"rotation": [0, 90, 0],
"locators": {
"eye1": [-4, 23.5, -5]
}
},
{
"name": "eyelid_happy_right",
"parent": "eye_right",
@@ -514,22 +405,6 @@
{"origin": [-1, 28, -1.25], "size": [2, 3, 2], "uv": [3, 25]}
]
},
{
"name": "locator_head",
"parent": "hat",
"pivot": [0, 26.5, -6.25],
"locators": {
"head": [0, 26.5, -6.25]
}
},
{
"name": "locator_item_hat",
"parent": "hat",
"pivot": [0, 28.5, -0.75],
"locators": {
"item_hat": [0, 28.5, -0.75]
}
},
{
"name": "tail",
"parent": "torso",
@@ -562,15 +437,6 @@
{"origin": [-1.1, 6.5, 19.5], "size": [2, 2, 6], "uv": [44, 32]}
]
},
{
"name": "locator_tail",
"parent": "tail4",
"pivot": [0, 7.5, 22.5],
"rotation": [-180, 0, 180],
"locators": {
"tail": [0, 7.5, 22.5]
}
},
{
"name": "tail5",
"parent": "tail4",
@@ -620,24 +486,6 @@
{"origin": [-3, 7.5, 50], "size": [6, 0, 4], "pivot": [0, 7.5, 52], "rotation": [0, 0, -45], "uv": [66, 19]}
]
},
{
"name": "locator_tail_tip",
"parent": "tail_end_fur",
"pivot": [0, 7.5, 54],
"rotation": [-180, 0, 180],
"locators": {
"tail_tip": [0, 7.5, 54]
}
},
{
"name": "locator_physical",
"parent": "tail_end_fur",
"pivot": [0, 7.5, 51],
"rotation": [-180, 0, 180],
"locators": {
"physical": [0, 7.5, 51]
}
},
{
"name": "tail_end_fur_left",
"parent": "tail_end2",
@@ -686,15 +534,6 @@
{"origin": [1, 0.09, -1], "size": [2, 0, 2], "uv": [50, 48]}
]
},
{
"name": "locator_foot_secondary",
"parent": "foot_left",
"pivot": [2, 0.5, -2],
"rotation": [90, 0, 0],
"locators": {
"foot_secondary": [2, 0.5, -2]
}
},
{
"name": "foot_left2",
"parent": "foot_left",
@@ -728,15 +567,6 @@
{"origin": [-3, 0.09, -1], "size": [2, 0, 2], "uv": [50, 52], "mirror": true}
]
},
{
"name": "locator_foot_primary",
"parent": "foot_right",
"pivot": [-2, 0.5, -2],
"rotation": [90, 0, 0],
"locators": {
"foot_primary": [-2, 0.5, -2]
}
},
{
"name": "foot_right2",
"parent": "foot_right",
@@ -14,7 +14,7 @@
}
],
"type": "cobblemon:cooking_pot_shapeless",
"category": "medicines",
"category": "misc",
"ingredients": [
{
"item": "create:experience_nugget"
@@ -548,7 +548,7 @@
"battleOnly": false
},
{
"name": "!",
"name": "Exclamation",
"primaryType": "psychic",
"maleRatio": -1,
"height": 5,
@@ -563,7 +563,7 @@
"battleOnly": false
},
{
"name": "?",
"name": "Question",
"primaryType": "psychic",
"maleRatio": -1,
"height": 5,
@@ -6,6 +6,7 @@
"cobblemon:tart_apple",
"cobblemon:syrupy_apple",
"cobblemon:candied_apple",
{ "id": "create:honeyed_apple","required": false }
{ "id": "create:honeyed_apple","required": false },
{ "id": "nomansland:honeyed_apple","required": false }
]
}
Binary file not shown.
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.12</version>
</project>
Binary file not shown.
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.13</version>
</project>
Binary file not shown.
Binary file not shown.
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.15</version>
</project>
Binary file not shown.
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.16</version>
</project>
Binary file not shown.
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.18</version>
</project>
Binary file not shown.
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.19</version>
</project>
Binary file not shown.
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.20</version>
</project>
Binary file not shown.
@@ -4,5 +4,5 @@
<modelVersion>4.0.0</modelVersion>
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<version>1.1.14</version>
<version>1.1.21</version>
</project>
+3 -3
View File
@@ -3,10 +3,10 @@
<groupId>local.com.bedrockk</groupId>
<artifactId>molang</artifactId>
<versioning>
<release>1.1.20</release>
<release>1.1.21</release>
<versions>
<version>1.1.20</version>
<version>1.1.21</version>
</versions>
<lastUpdated>20231949390007</lastUpdated>
<lastUpdated>20231949390008</lastUpdated>
</versioning>
</metadata>
+1 -1
View File
@@ -14,7 +14,7 @@ architectury-plugin = "3.4-SNAPSHOT"
moddev = "1.0.11"
# Common
molang = "1.1.20"
molang = "1.1.21"
jei-api = "19.22.1.316"
appleskin-api = "mc1.21-3.0.5"