Some quick geometry fixes, and converted animation controller to custom properties.

This commit is contained in:
OmeWillem
2024-07-05 16:37:58 +02:00
parent d07c06e788
commit 42c96a2c24
3 changed files with 24 additions and 15 deletions

View File

@@ -51,6 +51,11 @@ public class ExtensionMain implements Extension {
GeyserUtils.addProperty(id, entity + ":" + bone, Boolean.class); GeyserUtils.addProperty(id, entity + ":" + bone, Boolean.class);
}); });
GeyserUtils.addProperty(id, "modelengine:anim_idle", Boolean.class);
GeyserUtils.addProperty(id, "modelengine:anim_spawn", Boolean.class);
GeyserUtils.addProperty(id, "modelengine:anim_walk", Boolean.class);
GeyserUtils.addProperty(id, "modelengine:anim_stop", Boolean.class);
GeyserUtils.registerProperties(id); GeyserUtils.registerProperties(id);
} }

View File

@@ -15,7 +15,7 @@ public class AnimationController {
], ],
"transitions": [ "transitions": [
{ {
"idle": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:stone')" "idle": "query.property('modelengine:anim_idle')"
} }
] ]
}, },
@@ -25,13 +25,13 @@ public class AnimationController {
], ],
"transitions": [ "transitions": [
{ {
"spawn": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:iron_block')" "spawn": "query.property('modelengine:anim_spawn')"
}, },
{ {
"walk": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:redstone')" "walk": "query.property('modelengine:anim_walk')"
}, },
{ {
"stop": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:air')" "stop": "query.property('modelengine:anim_stop')"
} }
] ]
}, },
@@ -41,26 +41,26 @@ public class AnimationController {
], ],
"transitions": [ "transitions": [
{ {
"spawn": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:iron_block')" "spawn": "query.property('modelengine:anim_spawn')"
}, },
{ {
"stop": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:air')" "stop": "query.property('modelengine:anim_stop')"
}, },
{ {
"idle": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:stone')" "idle": "query.property('modelengine:anim_idle')"
} }
] ]
}, },
"stop": { "stop": {
"transitions": [ "transitions": [
{ {
"idle": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:stone')" "idle": "query.property('modelengine:anim_idle')"
}, },
{ {
"spawn": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:iron_block')" "spawn": "query.property('modelengine:anim_spawn')"
}, },
{ {
"walk": "q.is_item_name_any('slot.armor.head', 0, 'minecraft:redstone')" "walk": "query.property('modelengine:anim_walk')"
} }
] ]
} }

View File

@@ -1,9 +1,6 @@
package re.imc.geysermodelenginepackgenerator.generator; package re.imc.geysermodelenginepackgenerator.generator;
import com.google.gson.JsonArray; import com.google.gson.*;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@@ -12,6 +9,7 @@ import lombok.Setter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Locale;
@Getter @Getter
@Setter @Setter
@@ -43,8 +41,13 @@ public class Geometry {
while (iterator.hasNext()) { while (iterator.hasNext()) {
JsonElement element = iterator.next(); JsonElement element = iterator.next();
if (element.isJsonObject()) { if (element.isJsonObject()) {
String name = element.getAsJsonObject().get("name").getAsString(); String name = element.getAsJsonObject().get("name").getAsString().toLowerCase(Locale.ROOT);
element.getAsJsonObject().remove("name");
element.getAsJsonObject().addProperty("name", name);
if (name.equals("hitbox") || if (name.equals("hitbox") ||
name.equals("mount") ||
name.startsWith("p_") || name.startsWith("p_") ||
name.startsWith("b_") || name.startsWith("b_") ||
name.startsWith("ob_")) { name.startsWith("ob_")) {
@@ -54,4 +57,5 @@ public class Geometry {
} }
setId("geometry.modelengine_" + modelId); setId("geometry.modelengine_" + modelId);
} }
} }