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

@@ -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());
}
}
}