clean: improve code of rock fragments

This commit is contained in:
Martin Prokoph
2025-03-26 13:10:56 +01:00
parent 1d179f7310
commit c1bb88702d
7 changed files with 46 additions and 24 deletions

View File

@@ -33,7 +33,7 @@
"item.rocks.bamboo_stick": "Bambusstock",
"item.rocks.birch_stick": "Birkenstock",
"item.rocks.cherry_stick": "Kirschstock",
"item.rocks.cobblestone_splitter": "Steinsplitter",
"item.rocks.cobblestone_splitter": "Bruchsteinsplitter",
"item.rocks.crimson_stick": "Karmesinstock",
"item.rocks.dark_oak_stick": "Schwarzeichenstock",
"item.rocks.diorite_rock": "Dioritbrocken",

View File

@@ -29,39 +29,39 @@
"block.rocks.warped_stick": "Warped Stick",
"item.rocks.acacia_stick": "Acacia Stick",
"item.rocks.andesite_rock": "Andesite Rock",
"item.rocks.andesite_splitter": "Andesite Splitter",
"item.rocks.andesite_splitter": "Andesite Fragment",
"item.rocks.bamboo_stick": "Bamboo Stick",
"item.rocks.birch_stick": "Birch Stick",
"item.rocks.cherry_stick": "Cherry Stick",
"item.rocks.cobblestone_splitter": "Stone Splitter",
"item.rocks.cobblestone_splitter": "Cobblestone Fragment",
"item.rocks.crimson_stick": "Crimson Stick",
"item.rocks.dark_oak_stick": "Dark Oak Stick",
"item.rocks.diorite_rock": "Diorite Rock",
"item.rocks.diorite_splitter": "Diorite Splitter",
"item.rocks.diorite_splitter": "Diorite Fragment",
"item.rocks.end_stone_rock": "End Stone Rock",
"item.rocks.end_stone_splitter": "End Stone Splitter",
"item.rocks.end_stone_splitter": "End Stone Fragment",
"item.rocks.geyser": "Geyser",
"item.rocks.granite_rock": "Granite Rock",
"item.rocks.granite_splitter": "Granite Splitter",
"item.rocks.granite_splitter": "Granite Fragment",
"item.rocks.gravel_rock": "Gravel Rock",
"item.rocks.ice_rock": "Ice Rock",
"item.rocks.ice_splitter": "Ice Splitter",
"item.rocks.ice_splitter": "Ice Fragment",
"item.rocks.jungle_stick": "Jungle Stick",
"item.rocks.mangrove_stick": "Mangrove Stick",
"item.rocks.nether_geyser": "Nether Geyser",
"item.rocks.netherrack_rock": "Netherrack Rock",
"item.rocks.netherrack_splitter": "Netherrack Splitter",
"item.rocks.netherrack_splitter": "Netherrack Fragment",
"item.rocks.oak_stick": "Oak Stick",
"item.rocks.pale_oak_stick": "Pale Oak Stick",
"item.rocks.pinecone": "Pinecone",
"item.rocks.red_sand_rock": "Red Sandstone Rock",
"item.rocks.red_sandstone_splitter": "Red Sandstone Splitter",
"item.rocks.red_sandstone_splitter": "Red Sandstone Fragment",
"item.rocks.rock": "Stone Rock",
"item.rocks.sand_rock": "Sandstone Rock",
"item.rocks.sandstone_splitter": "Sandstone Splitter",
"item.rocks.sandstone_splitter": "Sandstone Fragment",
"item.rocks.seashell": "Seashell",
"item.rocks.soul_soil_rock": "Soul Soil Rock",
"item.rocks.soul_soil_splitter": "Soul Soil Splitter",
"item.rocks.soul_soil_splitter": "Soul Soil Fragment",
"item.rocks.spruce_stick": "Spruce Stick",
"item.rocks.starfish": "Starfish",
"item.rocks.warped_stick": "Warped Stick",

View File

@@ -1,6 +1,6 @@
{
"parent": "rocks:item/splitter_base",
"textures": {
"0": "minecraft:block/stone"
"0": "minecraft:block/cobblestone"
}
}

View File

@@ -93,7 +93,7 @@ public class RocksMain implements ModInitializer {
rocksByType.put(type, registerBlockWithItem(id, polymerMode ? newRockPolymer(id) : new Rock(id)));
if (type != RockType.GRAVEL)
splittersByType.put(type, registerItem(id(type.getSplitterName()), simpleItem(id(type.getSplitterName()))));
splittersByType.put(type, registerItem(id(type.getFragment().getName()), simpleItem(id(type.getFragment().getName()))));
}
for (StickType type : StickType.values()) {
Identifier id = id(type.getName()+"_stick");

View File

@@ -66,8 +66,9 @@ public abstract class Language extends FabricLanguageProvider {
addBlock(translationBuilder, block, baseTranslation+rockWord);
if (type != RockType.GRAVEL) {
Item splitter = Registries.ITEM.get(RocksMain.id(type.getSplitterName()));
translationBuilder.add(splitter, baseTranslation+splitterWord);
String splitterBaseTranslation = langHelper.translate(type.getFragment().getStoneBlock().getTranslationKey());
Item splitter = Registries.ITEM.get(RocksMain.id(type.getFragment().getName()));
translationBuilder.add(splitter, splitterBaseTranslation+splitterWord);
}
}
for (StickType type : StickType.values()) {
@@ -94,7 +95,7 @@ public abstract class Language extends FabricLanguageProvider {
public void generateTranslations(RegistryWrapper.WrapperLookup registryLookup, TranslationBuilder translationBuilder) {
translationBuilder.add("itemGroup.rocks.rocks","This Rocks!");
createRepeatedTranslations(translationBuilder, " Rock", " Splitter", " Stick");
createRepeatedTranslations(translationBuilder, " Rock", " Fragment", " Stick");
addBlock(translationBuilder, RocksMain.Geyser, "Geyser");
addBlock(translationBuilder, RocksMain.NetherGeyser, "Nether Geyser");

View File

@@ -49,8 +49,8 @@ public class Models extends FabricModelProvider {
registerParentedItemModel(itemModelGenerator, item, getItemId("rock_base"), type.getStoneBlock());
if (type != RockType.GRAVEL) {
Item splitter = Registries.ITEM.get(RocksMain.id(type.getSplitterName()));
registerParentedItemModel(itemModelGenerator, splitter, getItemId("splitter_base"), type.getStoneBlock());
Item splitter = Registries.ITEM.get(RocksMain.id(type.getFragment().getName()));
registerParentedItemModel(itemModelGenerator, splitter, getItemId("splitter_base"), type.getFragment().getStoneBlock());
}
}
for (StickType type : StickType.values()) {

View File

@@ -23,15 +23,11 @@ public enum RockType {
public String getName() {
return this.name;
}
public String getSplitterName() {
String splitterName = this.name().toLowerCase()+ "_splitter";
if (this.equals(RockType.STONE)) splitterName = "cobblestone_splitter";
return splitterName;
}
public Identifier getStoneId() {
if (this==STONE) return Identifier.ofVanilla("cobblestone");
return Identifier.ofVanilla(this.toString().toLowerCase());
}
public Block getStoneBlock() {
return Registries.BLOCK.get(getStoneId());
}
@@ -54,4 +50,29 @@ public enum RockType {
.replace("large_", "")
.equals(type.getName())).findFirst().orElse(RockType.STONE);
}
public Fragment getFragment() {
return new Fragment(this);
}
public static class Fragment {
private final RockType type;
Fragment(RockType type) {
this.type = type;
}
public String getName() {
String splitterName = type.name().toLowerCase()+ "_splitter";
if (type.equals(RockType.STONE)) splitterName = "cobblestone_splitter";
return splitterName;
}
public Identifier getStoneId() {
if (type==STONE) return Identifier.ofVanilla("cobblestone");
return Identifier.ofVanilla(type.toString().toLowerCase());
}
public Block getStoneBlock() {
return Registries.BLOCK.get(getStoneId());
}
}
}