diff --git a/src/main/java/eu/midnightdust/motschen/rocks/RocksClient.java b/src/main/java/eu/midnightdust/motschen/rocks/RocksClient.java index 0b4fb53..9f09e7a 100755 --- a/src/main/java/eu/midnightdust/motschen/rocks/RocksClient.java +++ b/src/main/java/eu/midnightdust/motschen/rocks/RocksClient.java @@ -18,9 +18,10 @@ public class RocksClient implements ClientModInitializer { public void onInitializeClient() { ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> sender.sendPacket(new HelloPayload())); - ModelPredicateProviderRegistry.register(RocksMain.Starfish.asItem(), Identifier.of("red"), (stack, world, entity, seed) -> matchesVariation(stack, StarfishVariation.RED)); - ModelPredicateProviderRegistry.register(RocksMain.Starfish.asItem(), Identifier.of("pink"), (stack, world, entity, seed) -> matchesVariation(stack, StarfishVariation.PINK)); - ModelPredicateProviderRegistry.register(RocksMain.Starfish.asItem(), Identifier.of("orange"), (stack, world, entity, seed) -> matchesVariation(stack, StarfishVariation.ORANGE)); + for (StarfishVariation variation : StarfishVariation.values()) { + ModelPredicateProviderRegistry.register(RocksMain.Starfish.asItem(), Identifier.of(variation.toString()), + (stack, world, entity, seed) -> matchesVariation(stack, variation)); + } } private static Integer matchesVariation(ItemStack stack, StarfishVariation variation) { var blockStateData = stack.getComponents().get(DataComponentTypes.BLOCK_STATE); diff --git a/src/main/java/eu/midnightdust/motschen/rocks/item/polymer/StarfishItemPolymer.java b/src/main/java/eu/midnightdust/motschen/rocks/item/polymer/StarfishItemPolymer.java index be3319f..36d6add 100644 --- a/src/main/java/eu/midnightdust/motschen/rocks/item/polymer/StarfishItemPolymer.java +++ b/src/main/java/eu/midnightdust/motschen/rocks/item/polymer/StarfishItemPolymer.java @@ -34,12 +34,8 @@ public class StarfishItemPolymer extends BlockItem implements AutoModeledPolymer public int getPolymerCustomModelData(ItemStack itemStack, @Nullable ServerPlayerEntity player) { var state = itemStack.getComponents().get(DataComponentTypes.BLOCK_STATE); if (state != null && !state.isEmpty()) { - return switch (state.getValue(RocksMain.STARFISH_VARIATION)) { - case RED -> MODELS.get(StarfishVariation.RED).value(); - case PINK -> MODELS.get(StarfishVariation.PINK).value(); - case ORANGE -> MODELS.get(StarfishVariation.ORANGE).value(); - case null -> MODELS.get(this).value(); - }; + StarfishVariation variation = state.getValue(RocksMain.STARFISH_VARIATION); + if (variation != null) return MODELS.get(variation).value(); } return MODELS.get(this).value(); } @@ -48,9 +44,9 @@ public class StarfishItemPolymer extends BlockItem implements AutoModeledPolymer public void onRegistered(Identifier selfId) { var item = Identifier.of(selfId.getNamespace(), "item/" + selfId.getPath()); MODELS.put(this, PolymerResourcePackUtils.requestModel(this.getPolymerItem(), item)); - MODELS.put(StarfishVariation.RED, PolymerResourcePackUtils.requestModel(this.getPolymerItem(), polymerId("item/" + "red_" + selfId.getPath()))); - MODELS.put(StarfishVariation.PINK, PolymerResourcePackUtils.requestModel(this.getPolymerItem(), polymerId("item/" + "pink_" + selfId.getPath()))); - MODELS.put(StarfishVariation.ORANGE, PolymerResourcePackUtils.requestModel(this.getPolymerItem(), polymerId("item/" + "orange_" + selfId.getPath()))); + for (StarfishVariation variation : StarfishVariation.values()) { + MODELS.put(variation, PolymerResourcePackUtils.requestModel(this.getPolymerItem(), polymerId("item/" + variation.toString() + "_" + selfId.getPath()))); + } } @Override diff --git a/src/main/java/eu/midnightdust/motschen/rocks/util/polymer/PolyUtil.java b/src/main/java/eu/midnightdust/motschen/rocks/util/polymer/PolyUtil.java index 13625c7..18664df 100644 --- a/src/main/java/eu/midnightdust/motschen/rocks/util/polymer/PolyUtil.java +++ b/src/main/java/eu/midnightdust/motschen/rocks/util/polymer/PolyUtil.java @@ -76,7 +76,8 @@ public class PolyUtil { } public static void registerPolymerGroup() { - RocksMain.RocksGroup = PolymerItemGroupUtils.builder().displayName(Text.translatable("itemGroup.rocks.rocks")).icon(() -> new ItemStack(rocksByType.get(RockType.STONE))).entries((displayContext, entries) -> entries.addAll(RocksMain.groupItems)).build(); + RocksMain.RocksGroup = PolymerItemGroupUtils.builder().displayName(Text.translatable("itemGroup.rocks.rocks")).icon(() -> + new ItemStack(rocksByType.get(RockType.STONE))).entries((displayContext, entries) -> entries.addAll(RocksMain.groupItems)).build(); PolymerItemGroupUtils.registerPolymerItemGroup(id("rocks"), RocksMain.RocksGroup); }