mirror of
https://github.com/GTNewHorizons/Chisel.git
synced 2026-11-11 15:57:31 +00:00
108 lines
4.2 KiB
Java
108 lines
4.2 KiB
Java
package team.chisel;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import team.chisel.utils.General;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.item.Item;
|
|
import cpw.mods.fml.common.FMLLog;
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
public class BlockNameConversion {
|
|
|
|
static final private HashMap<String, String> namingConversion = new HashMap<String, String>();
|
|
|
|
public static class NameConversions {
|
|
|
|
public final static int MAX = 5;
|
|
|
|
protected static String conversion(String oldname, int step) {
|
|
oldname = General.cleanTags(oldname);
|
|
String newname = null;
|
|
switch (step) {
|
|
case 0: // lookup list
|
|
return namingConversion.get(oldname);
|
|
case 1: // remove Chisel:
|
|
if (oldname.startsWith("Chisel:")) {
|
|
newname = oldname.replaceAll("(?i)" + "Chisel:", "");
|
|
}
|
|
return newname;
|
|
case 2: // rename "marbleSlab" -> "marble_slab", "redstone" ->
|
|
// "redstone_block"
|
|
newname = oldname.replaceAll("([a-z]+)([A-Z])", "$1_$2").toLowerCase();
|
|
|
|
if (newname.startsWith("block_")) {
|
|
newname = newname.replaceFirst("block_([a-z_]+)", "$1_block");
|
|
} else if (newname.startsWith("snakestone_")) {
|
|
newname = newname.replaceFirst("snakestone_([a-z_]+)", "$1_snakestone");
|
|
}
|
|
return newname;
|
|
case 3: // rename "wood-dark-oak" -> "dark_oak_planks"
|
|
newname = oldname.replaceAll("([a-z]+)([A-Z])", "$1_$2").toLowerCase().replace('-', '_');
|
|
if (newname.contains("wood_")) {
|
|
newname = newname.replaceFirst("wood_([a-z_]+)", "$1_planks");
|
|
}
|
|
return newname;
|
|
case (MAX - 1): // ALWAYS last: rename "blockYxx" -> "yxx" (e.g.
|
|
// "dirt" -> "dirt").
|
|
// This can be dangerous in cases like "carpet" (a block) ->
|
|
// "carpet" (NO block)
|
|
return oldname.replaceAll("([a-z]+)([A-Z])", "$1_$2").toLowerCase().replaceFirst("block_", "");
|
|
default:
|
|
throw new IndexOutOfBoundsException("conversion got invalid parameter step=" + step);
|
|
}
|
|
}
|
|
}
|
|
|
|
static public void init() {
|
|
namingConversion.put("blockCobble", "cobblestone");
|
|
namingConversion.put("iron", "iron_block");
|
|
namingConversion.put("gold", "gold_block");
|
|
namingConversion.put("diamond", "diamond_block");
|
|
namingConversion.put("lightstone", "glowstone");
|
|
namingConversion.put("lapis", "lapis_block");
|
|
namingConversion.put("emerald", "emerald_block");
|
|
namingConversion.put("hellrock", "netherrack");
|
|
namingConversion.put("stoneMoss", "mossy_cobblestone");
|
|
namingConversion.put("stoneBrick", "stonebrick");
|
|
namingConversion.put("fenceIron", "iron_bars");
|
|
namingConversion.put("fantasy", "fantasyblock");
|
|
namingConversion.put("carpetFloor", "carpet");
|
|
namingConversion.put("temple", "templeblock");
|
|
namingConversion.put("templeMossy", "mossy_templeblock");
|
|
namingConversion.put("factory", "factoryblock");
|
|
namingConversion.put("laboratory", "laboratoryblock");
|
|
// "LightGray" is unfortunately converted to "light_gray"
|
|
namingConversion.put("stainedGlassLightGray", "stained_glass_lightgray");
|
|
namingConversion.put("stainedGlassPaneLightGray", "stained_glass_pane_lightgray");
|
|
namingConversion.put("blockTemple", "templeblock");
|
|
namingConversion.put("stoneBrick", "stonebricksmooth");
|
|
namingConversion.put("blockTempleMossy", "mossy_templeblock");
|
|
namingConversion.put("blockFactory", "factoryblock");
|
|
namingConversion.put("blockFft", "fantasyblock");
|
|
namingConversion.put("blockCarpetFloor", "carpet");
|
|
namingConversion.put("blockLaboratory", "laboratoryblock");
|
|
}
|
|
|
|
public static Item findItem(String oldname) {
|
|
FMLLog.getLogger().trace("[Chisel 2] findItem() START " + oldname);
|
|
Item item = null;
|
|
for (int i = 0; i < NameConversions.MAX && item == null; i++) {
|
|
FMLLog.getLogger().trace("[Chisel 2] findItem() Checking for " + NameConversions.conversion(oldname, i));
|
|
item = GameRegistry.findItem(Chisel.MOD_ID, NameConversions.conversion(oldname, i));
|
|
}
|
|
|
|
return item;
|
|
}
|
|
|
|
public static Block findBlock(String oldname) {
|
|
FMLLog.getLogger().trace("[Chisel 2] findBlock() START: " + oldname);
|
|
Block block = null;
|
|
for (int i = 0; i < NameConversions.MAX && block == null; i++) {
|
|
FMLLog.getLogger().trace("[Chisel 2] findBlock() Checking for " + NameConversions.conversion(oldname, i));
|
|
block = GameRegistry.findBlock(Chisel.MOD_ID, NameConversions.conversion(oldname, i));
|
|
}
|
|
|
|
return block;
|
|
}
|
|
} |