1
0
Fork 0
tcr/common/src/main/java/common/init/BlockRegistry.java
2025-09-10 10:11:50 +02:00

656 lines
44 KiB
Java
Executable file

package common.init;
import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import common.block.*;
import common.block.artificial.*;
import common.block.foliage.*;
import common.block.liquid.*;
import common.block.natural.*;
import common.block.tech.*;
import common.collect.BiMap;
import common.collect.HashBiMap;
import common.collect.Lists;
import common.collect.Maps;
import common.item.CheatTab;
import common.log.Log;
import common.model.TextureAnimation;
import common.properties.Property;
import common.util.PortalType;
import common.util.Color;
import common.util.Equipment;
import common.util.Util;
import common.world.State;
public abstract class BlockRegistry {
private static final Map<String, Block> BLOCK_MAP = HashBiMap.<String, Block>create();
private static final List<Block> BLOCKS = Lists.newArrayList();
private static final Map<Block, String> BLOCK_NAMES = ((BiMap)BLOCK_MAP).inverse();
private static final Map<String, State> STATE_MAP = Maps.newHashMap();
private static final List<State> STATES = Lists.newArrayList();
private static final Map<State, String> STATE_NAMES = Maps.newHashMap();
private static final IdentityHashMap<State, Integer> STATE_IDS = new IdentityHashMap(512);
private static Block air;
private static Block register(String name, Block block) {
if(BLOCK_MAP.containsKey(name))
throw new IllegalArgumentException("Block " + name + " ist bereits registriert");
BLOCKS.add(block);
BLOCK_MAP.put(name, block);
return block;
}
public static Set<String> getKeys() {
return Collections.<String>unmodifiableSet(BLOCK_MAP.keySet());
}
public static Block byName(String name) {
Block block = BLOCK_MAP.get(name);
return block == null ? air : block;
}
public static Block byNameExact(String name) {
return BLOCK_MAP.get(name);
}
public static String getName(Block block) {
return BLOCK_NAMES.get(block);
}
public static Iterable<Block> blocks() {
return BLOCKS;
}
public static State byName(String name, State def) {
if(name == null)
return def;
State state = STATE_MAP.get(name);
if(state != null)
return state;
int idx = name.indexOf(',');
Block block = BlockRegistry.byNameExact(idx >= 0 ? name.substring(0, idx) : name);
if(block == null)
return def;
state = block.getState();
if(idx < 0)
return state;
String[] tok = name.substring(idx + 1).split(",");
for(String str : tok) {
idx = str.indexOf('=');
if(idx <= 0 || idx == str.length() - 1)
continue;
String key = str.substring(0, idx);
String value = str.substring(idx + 1);
for(Property prop : block.getSavedProperties()) {
if(prop.getName().equals(key)) {
for(Object obj : prop.getStates()) {
if(prop.getName((Comparable)obj).equals(value))
state = state.withProperty(prop, (Comparable)obj);
}
}
}
}
return state;
}
public static String getName(State state) {
return STATE_NAMES.get(state);
}
public static int getId(State state) {
Integer id = STATE_IDS.get(state);
return id == null ? -1 : id.intValue();
}
public static State byId(int id) {
return id >= 0 && id < STATES.size() ? STATES.get(id) : null;
}
public static Iterable<State> states() {
return STATES;
}
private static void registerFluid(String name, String display, LiquidType type, int light, int rate,
float radiation, Object still, Object flowing) {
BlockDynamicLiquid dy = (BlockDynamicLiquid)(new BlockDynamicLiquid(type.material, rate, flowing)).setHardness(100.0F)
.setOpacity(3).setLight(light).setDisplay(display)
.setRadiation(radiation);
BlockStaticLiquid st = (BlockStaticLiquid)(new BlockStaticLiquid(type.material, rate, still, dy)).setHardness(100.0F)
.setOpacity(3).setLight(light).setDisplay(display)
.setRadiation(radiation);
register("flowing_" + name, dy);
register(name, st);
}
static void register() {
register("air", air = (new BlockAir()).setDisplay("Luft"));
Block stone = register("stone", (new BlockStone()).setHardness(1.5F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Stein"));
Block bedrock = register("bedrock", (new BlockBedrock()).setHardness(1000.0F).setResistance(100000.0F).setSound(SoundType.STONE)
.setDisplay("Grundgestein").setTab(CheatTab.ROCK).setMiningTool(Equipment.PICKAXE, 6));
Block rock = register("rock", (new Block(Material.SOLID)).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE).setDisplay("Felsen").setTab(CheatTab.ROCK));
Block smooth_rock = register("smooth_rock", (new Block(Material.SOLID)).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE).setDisplay("Glatter Felsen").setTab(CheatTab.ROCK));
Block hellrock = register("hellrock", (new BlockHellRock()).setHardness(0.4F).setSound(SoundType.STONE).setDisplay("Höllenstein"));
Block cell_rock = register("cell_rock", (new Block(Material.LOOSE)).setHardness(1.0F).setResistance(3.0F)
.setSound(SoundType.SLIME).setDisplay("Zellstein").setTab(CheatTab.ROCK));
Block moon_rock = register("moon_rock", (new Block(Material.SOLID)).setHardness(2.5F).setResistance(10.0F)
.setSound(SoundType.STONE).setDisplay("Mondgestein").setTab(CheatTab.ROCK));
Block cobblestone = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Bruchstein").setTab(CheatTab.ROCK);
register("cobblestone", cobblestone);
Block mossy_cobblestone = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Bemooster Bruchstein").setTab(CheatTab.ROCK);
register("mossy_cobblestone", mossy_cobblestone);
Block sandstone = (new BlockSandStone("normal")).setSound(SoundType.STONE).setHardness(0.8F).setDisplay("Sandstein");
register("sandstone", sandstone);
Block smooth_sandstone;
register("smooth_sandstone", (smooth_sandstone = new BlockSandStone("smooth")).setSound(SoundType.STONE).setHardness(0.8F).setDisplay("Glatter Sandstein"));
Block obsidian = register("obsidian", (new BlockObsidian()).setHardness(50.0F).setResistance(2000.0F).setSound(SoundType.STONE)
.setDisplay("Obsidian").setMiningTool(Equipment.PICKAXE, 3));
Block clay = register("clay", (new BlockClay()).setHardness(0.6F).setSound(SoundType.GRAVEL).setDisplay("Ton").setMiningTool(Equipment.SHOVEL));
Block hardened_clay = register("hardened_clay", (new BlockHardenedClay()).setHardness(1.25F).setResistance(7.0F).setSound(SoundType.STONE).setDisplay("Gebrannter Ton"));
Block[] colored_clay = new Block[Color.values().length];
for(Color color : Color.values()) {
colored_clay[color.ordinal()] = register(color.getName() + "_clay", (new BlockColoredClay(color)).setHardness(1.25F).setResistance(7.0F)
.setSound(SoundType.STONE).setDisplay(color.getDisplay() + " gefärbter Ton"));
}
Block cyber;
register("cyber", cyber = new BlockCyber());
register("sand", (new BlockFalling(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.SAND).setDisplay("Sand").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
register("red_sand", (new BlockFalling(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.SAND).setDisplay("Roter Sand").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
register("gravel", (new BlockGravel()).setHardness(0.6F).setSound(SoundType.GRAVEL).setDisplay("Kies").setMiningTool(Equipment.SHOVEL));
register("ash", (new BlockFalling(Material.LOOSE)).setHardness(0.2F).setSound(SoundType.SAND).setDisplay("Asche")
.setTab(CheatTab.NATURE).setMiningTool(Equipment.SHOVEL));
register("snow_layer", (new BlockSnow()).setHardness(0.1F).setSound(SoundType.SNOW).setDisplay("Schnee").setOpacity(0).setMiningTool(Equipment.SHOVEL));
register("snow", (new BlockSnowBlock()).setHardness(0.2F).setSound(SoundType.SNOW).setDisplay("Schnee").setMiningTool(Equipment.SHOVEL));
register("ice", (new BlockIce()).setHardness(0.5F).setOpacity(3).setSound(SoundType.GLASS).setDisplay("Eis").setMiningTool(Equipment.PICKAXE, 0));
register("packed_ice", (new BlockPackedIce()).setHardness(0.5F).setSound(SoundType.GLASS).setDisplay("Packeis").setMiningTool(Equipment.PICKAXE, 0));
register("soul_sand", (new BlockSoulSand()).setHardness(0.5F).setSound(SoundType.SAND).setDisplay("Seelensand").setMiningTool(Equipment.SHOVEL));
register("glowstone", (new BlockGlowstone(Material.TRANSLUCENT)).setHardness(0.3F).setSound(SoundType.GLASS).setLight(0xffff3f)
.setDisplay("Glowstone"));
Block blackened_stone = register("blackened_stone", (new BlockBlackenedStone()).setHardness(1.5F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Schwarzstein"));
Block blackened_cobble = register("blackened_cobble", (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Schwarzbruchstein").setTab(CheatTab.ROCK));
registerFluid("water", "Wasser", LiquidType.WATER, 0, 5, 0.0f, TextureAnimation.WATER_STILL, TextureAnimation.WATER_FLOW);
registerFluid("lava", "Lava", LiquidType.LAVA, 0xffcfaf, -30, 0.0f, 2, 3);
registerFluid("magma", "Magma", LiquidType.HOT, 0xffaf8f, 40, 0.0f, TextureAnimation.MAGMA_STILL, TextureAnimation.MAGMA_FLOW);
registerFluid("plasma", "Plasma", LiquidType.HOT, 0xff7f00, 15, 0.0f, 2, 2);
registerFluid("mercury", "Quecksilber", LiquidType.COLD, 0, 40, 0.0f, 8, 4);
registerFluid("hydrogen", "Wasserstoff", LiquidType.COLD, 0, 50, 0.0f, 8, 4);
registerFluid("acid", "Säure", LiquidType.HOT, 0, 5, 0.0f, 1, 1);
registerFluid("slime", "Schleim", LiquidType.COLD, 0, 50, 0.0f, 8, 4);
registerFluid("goo", "Klebrige Masse", LiquidType.COLD, 0, 60, 0.0f, 10, 5);
registerFluid("nukage", "Radioaktive Masse", LiquidType.COLD, 0x00ff00, 10, 4.0f, 2, 2);
registerFluid("blood", "Blut", LiquidType.COLD, 0, 10, 0.0f, 2, 1);
registerFluid("spring_water", "Klares Wasser", LiquidType.COLD, 0, 5, 0.0f, 1, 1);
registerFluid("swamp_water", "Sumpfwasser", LiquidType.COLD, 0, 5, 0.0f, TextureAnimation.SWAMP_WATER_STILL, TextureAnimation.SWAMP_WATER_FLOW);
registerFluid("milk", "Milch", LiquidType.COLD, 0, 5, 0.0f, 1, 1);
for(MetalType metal : MetalType.values()) {
// String loc = metal.name.substring(0, 1).toUpperCase() + metal.name.substring(1);
register(metal.name + "_ore", (new BlockMetalOre(metal)).setHardness(3.0F).setResistance(5.0F)
.setDisplay(metal.display + "erz").setMiningTool(Equipment.PICKAXE, 1));
}
for(OreType ore : OreType.values()) {
// String loc = ore.name.substring(0, 1).toUpperCase() + ore.name.substring(1);
register(ore.name + "_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSound(SoundType.STONE)
.setDisplay(ore.display + "erz").setMiningTool(Equipment.PICKAXE, ore.material.getHarvestLevel() - 1));
}
for(MineralType mineral : MineralType.values()) {
register(mineral.name + "_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setSound(SoundType.STONE)
.setDisplay(mineral.displayOre).setMiningTool(Equipment.PICKAXE, 1));
}
Block dirt;
register("dirt", (dirt = new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
Block grass;
register("grass", (grass = new BlockGrass()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Gras").setMiningTool(Equipment.SHOVEL));
Block coarse_dirt;
register("coarse_dirt", (coarse_dirt = new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Grobe Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
Block podzol;
register("podzol", (podzol = new BlockPodzol()).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Podsol").setMiningTool(Equipment.SHOVEL));
Block mycelium;
register("mycelium", (mycelium = new BlockMycelium()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Myzel").setMiningTool(Equipment.SHOVEL));
Block swamp;
register("swamp", (swamp = new BlockSwamp()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Sumpf").setMiningTool(Equipment.SHOVEL));
Block tian;
register("tian", (tian = new Block(Material.SOLID)).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE)
.setDisplay("Tian").setTab(CheatTab.NATURE));
Block tian_soil;
register("tian_soil", (tian_soil = new BlockTianSoil()).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE)
.setDisplay("Tianerde").setTab(CheatTab.NATURE));
Block blackened_dirt;
register("blackened_dirt", (blackened_dirt = new BlockBlackenedDirt()).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Schwarzerde").setMiningTool(Equipment.SHOVEL));
Block blackened_soil;
register("blackened_soil", (blackened_soil = new BlockBlackenedSoil()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Schwarzgrund").setMiningTool(Equipment.SHOVEL));
Block slime_block;
register("slime_block", (slime_block = new BlockSlime()).setDisplay("Schleimblock").setSound(SoundType.SLIME));
Block cheese;
register("cheese", (cheese = new BlockTreasure(Material.SOFT)).setHardness(1.5F).setResistance(5.0F)
.setSound(SoundType.CLOTH).setDisplay("Käse").setTab(CheatTab.NATURE));
for(BlockTallGrass.EnumType type : BlockTallGrass.EnumType.values()) {
register(type.getName(), (new BlockTallGrass(type)).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay(type.getDisplay()).setMiningTool(Equipment.SHEARS));
}
register("deadbush", (new BlockDeadBush()).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay("Toter Busch"));
for(BlockFlower.EnumFlowerType type : BlockFlower.EnumFlowerType.values()) {
register(type.getName(), (new BlockFlower(type)).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay(type.getDisplay()));
}
for(BlockDoublePlant.EnumPlantType type : BlockDoublePlant.EnumPlantType.values()) {
register(type.getName(), new BlockDoublePlant(type).setDisplay(type.getDisplay()));
}
Block cactus = (new BlockCactus()).setHardness(0.4F).setSound(SoundType.CLOTH).setDisplay("Kaktus");
register("cactus", cactus);
register("reeds", (new BlockReed()).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay("Zuckerrohr").setTab(CheatTab.PLANTS));
register("vine", (new BlockVine(false)).setHardness(0.2F).setSound(SoundType.GRASS).setDisplay("Ranken").setMiningTool(Equipment.SHEARS));
register("swamp_vine", (new BlockVine(true)).setHardness(0.2F).setSound(SoundType.GRASS).setDisplay("Sumpfranken").setMiningTool(Equipment.SHEARS));
register("waterlily", (new BlockLilyPad()).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay("Seerosenblatt"));
Block brown_mushroom = (new BlockMushroom()).setHardness(0.0F).setSound(SoundType.GRASS).setLight(0x1f1f1f)
.setDisplay("Pilz");
register("brown_mushroom", brown_mushroom);
register("brown_mushroom_block", (new BlockHugeMushroom(brown_mushroom)).setHardness(0.2F)
.setSound(SoundType.WOOD).setDisplay("Pilzblock").setTab(CheatTab.PLANTS));
Block red_mushrooom = (new BlockMushroom()).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay("Pilz");
register("red_mushroom", red_mushrooom);
register("red_mushroom_block", (new BlockHugeMushroom(red_mushrooom)).setHardness(0.2F)
.setSound(SoundType.WOOD).setDisplay("Pilzblock").setTab(CheatTab.PLANTS));
register("blue_mushroom", (new BlockBlueShroom()).setHardness(0.0F).setSound(SoundType.GRASS).setLight(0x00007f)
.setDisplay("Tianpilz"));
Block pumpkin = (new BlockPumpkin()).setHardness(1.0F).setSound(SoundType.WOOD).setDisplay("Kürbis");
register("pumpkin", pumpkin);
register("pumpkin_stem", (new BlockStem(pumpkin)).setHardness(0.0F).setSound(SoundType.WOOD).setDisplay("Kürbisstamm"));
Block melon = (new BlockMelon()).setHardness(1.0F).setSound(SoundType.WOOD).setDisplay("Melone");
register("melon_block", melon);
register("melon_stem", (new BlockStem(melon)).setHardness(0.0F).setSound(SoundType.WOOD).setDisplay("Melonenstamm"));
register("dry_leaves", (new BlockDryLeaves()).setDisplay("Vertrocknetes Laub"));
for(WoodType wood : WoodType.values()) {
Block log;
register(wood.getName() + "_log", (log = new BlockLog()).setDisplay(wood.getDisplay() + "holz"));
for(LeavesType type : LeavesType.values()) {
register(wood.getName() + "_leaves_" + type.getName(), (new BlockLeaves(wood, type)).setDisplay(wood.getDisplay() + "laub (" + type.getDisplay() + ")"));
}
register(wood.getName() + "_sapling", (new BlockSapling(wood)).setHardness(0.0F).setSound(SoundType.GRASS)
.setDisplay(wood.getDisplay() + "setzling"));
register(wood.getName() + "_trunk", (new BlockSlab(log, wood.getName() + "_log_top", wood.getName() + "_log_top")).setDisplay(wood.getDisplay() + "holzscheibe"));
Block planks = (new Block(Material.WOOD)).setHardness(2.0F).setResistance(5.0F).setSound(SoundType.WOOD)
.setDisplay(wood.getDisplay() + "holzbretter").setTab(CheatTab.WOOD).setFlammable(5, 20);
register(wood.getName() + "_planks", planks);
register(wood.getName() + "_stairs", (new BlockStairs(planks))
.setDisplay(wood.getDisplay() + "holztreppe").setFlammable(5, 20));
register(wood.getName() + "_slab", (new BlockSlab(planks)).setDisplay(wood.getDisplay() + "holzstufe").setFlammable(5, 20));
register(wood.getName() + "_fence", (new BlockFence(Material.WOOD, wood.getName() + "_planks"))
.setHardness(2.0F).setResistance(5.0F).setSound(SoundType.WOOD).setDisplay(wood.getDisplay() + "holzzaun").setFlammable(5, 20));
register(wood.getName() + "_fence_gate", (new BlockFenceGate(wood)).setHardness(2.0F).setResistance(5.0F)
.setSound(SoundType.WOOD).setDisplay(wood.getDisplay() + "holzzauntor").setFlammable(5, 20));
register(wood.getName() + "_door", (new BlockDoor(Material.WOOD)).setHardness(3.0F).setSound(SoundType.WOOD)
.setDisplay(wood.getDisplay() + "holztür").setFlammable(5, 20));
}
register("web", (new BlockWeb()).setOpacity(1).setHardness(4.0F).setDisplay("Spinnennetz"));
register("fire", (new BlockFire()).setHardness(0.0F).setLight(0xffffbf).setSound(SoundType.CLOTH).setDisplay("Feuer"));
register("black_fire", (new BlockBlackFire()).setHardness(0.0F).setLight(0x7f7f7f).setSound(SoundType.CLOTH).setDisplay("Dunkles Feuer"));
register("soul_fire", (new BlockSoulFire()).setHardness(0.0F).setLight(0x0000ff).setSound(SoundType.CLOTH).setDisplay("Feuer der Seelen"));
register("glass", (new BlockGlass()).setHardness(0.3F).setSound(SoundType.GLASS).setDisplay("Glas"));
for(Color color : Color.values()) {
register(color.getName() + "_glass", (new BlockStainedGlass(color)).setHardness(0.3F).setSound(SoundType.GLASS).setDisplay(color.getDisplay() + " gefärbtes Glas"));
}
register("glass_pane", (new BlockPane(Material.TRANSLUCENT)).setHardness(0.3F).setSound(SoundType.GLASS).setDisplay("Glasscheibe"));
for(Color color : Color.values()) {
register(color.getName() + "_glass_pane", (new BlockStainedGlassPane(color)).setHardness(0.3F).setSound(SoundType.GLASS).setDisplay(color.getDisplay() + " gefärbte Glasscheibe"));
}
for(Color color : Color.values()) {
Block block = register(color.getName() + "_wool", (new BlockWool(color)).setHardness(0.8F).setSound(SoundType.CLOTH).setDisplay(color.getSubject(-1) + " Wolle").setMiningTool(Equipment.SHEARS));
register(color.getName() + "_wool_slab", (new BlockSlab(block)).setDisplay(color.getSubject(-1) + " Wollstufe"));
register(color.getName() + "_wool_stairs", (new BlockStairs(block)).setDisplay(color.getSubject(-1) + " Wolltreppe"));
}
for(Color color : Color.values()) {
register(color.getName() + "_carpet", (new BlockCarpet(color)).setHardness(0.1F).setSound(SoundType.CLOTH).setDisplay(color.getSubject(1) + " Teppich").setOpacity(0));
}
for(Color color : BlockBed.COLORS) {
register(color.getName() + "_bed", (new BlockBed(color)).setSound(SoundType.WOOD).setHardness(0.2F).setDisplay(color.getSubject(0) + " Bett"));
}
register("ladder", (new BlockLadder()).setHardness(0.4F).setSound(SoundType.WOOD).setDisplay("Leiter").setMiningTool(Equipment.AXE));
register("bookshelf", (new BlockBookshelf()).setHardness(1.5F).setSound(SoundType.WOOD).setDisplay("Bücherregal"));
register("cake", (new BlockCake()).setHardness(0.5F).setSound(SoundType.CLOTH).setDisplay("Kuchen").setTab(CheatTab.DECORATION));
register("dragon_egg", (new BlockDragonEgg()).setHardness(3.0F).setResistance(15.0F).setSound(SoundType.STONE)
.setLight(0x1f001f).setDisplay("Drachenei").setTab(CheatTab.DECORATION));
register("flowerpot", (new BlockFlowerPot(null)).setHardness(0.0F).setSound(SoundType.STONE).setDisplay("Blumentopf").setTab(CheatTab.DECORATION));
register("flowerpot_cactus", (new BlockFlowerPot(cactus)).setHardness(0.0F).setSound(SoundType.STONE).setDisplay("Blumentopf mit " + cactus.getDisplay()));
for(BlockFlower.EnumFlowerType type : BlockFlower.EnumFlowerType.values()) {
register("flowerpot_" + type.getName(), (new BlockFlowerPot(BlockFlower.getByType(type))).setHardness(0.0F).setSound(SoundType.STONE).setDisplay("Blumentopf mit " + type.getDisplay()));
}
register("sponge", (new Block(Material.LOOSE)).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Schwamm")
.setTab(CheatTab.DECORATION));
register("skull", (new BlockSkull()).setHardness(1.0F).setSound(SoundType.STONE).setDisplay("Schädel").setTab(CheatTab.DECORATION));
register("hay_block", (new BlockHay()).setHardness(0.5F).setSound(SoundType.GRASS).setDisplay("Strohballen")
.setTab(CheatTab.DECORATION));
register("sign", (new BlockStandingSign()).setHardness(1.0F).setSound(SoundType.WOOD).setDisplay("Schild"));
register("wall_sign", (new BlockWallSign()).setHardness(1.0F).setSound(SoundType.WOOD).setDisplay("Schild"));
for(int density : new int[] {1, 2, 4}) {
BlockInactiveDisplay display = (BlockInactiveDisplay)new BlockInactiveDisplay(density).setHardness(1.0F).setSound(SoundType.STONE).setDisplay("Displaymodul (" + (density * 16) +
"x" + (density * 16) + ")");
register("display" + (density == 1 ? "" : density), display);
register("display" + (density == 1 ? "" : density) + "_on", new BlockActiveDisplay(display).setHardness(1.0F).setSound(SoundType.STONE).setDisplay("Displaymodul (" + (density * 16) +
"x" + (density * 16) + ")"));
}
for(PortalType portal : PortalType.values()) {
if(portal != PortalType.FLOOR && portal != PortalType.VOID)
register(portal.getName() + "_portal", (new BlockPortal(portal)).setHardness(0.0F).setSound(SoundType.GLASS).setLight(0x1f1f1f).setDisplay(portal.getDisplay()));
}
register(PortalType.FLOOR.getName() + "_portal", (new BlockFloorPortal(Material.PORTAL)).setHardness(0.0F).setDisplay(PortalType.FLOOR.getDisplay()));
register("portal_frame", (new BlockPortalFrame()).setSound(SoundType.GLASS).setLight(0x1f002f).setHardness(5.0F)
.setDisplay("Portalrahmen").setResistance(2000.0F).setTab(CheatTab.TECHNOLOGY));
register("farmland", (new BlockFarmland()).setHardness(0.6F).setSound(SoundType.GRAVEL).setDisplay("Ackerboden").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.PLANTS));
register("wheats", (new BlockCrops()).setDisplay("Getreide"));
register("carrots", (new BlockCarrot()).setDisplay("Karotten"));
register("potatoes", (new BlockPotato()).setDisplay("Kartoffeln"));
register("soul_grass", (new BlockSoulGrass()).setDisplay("Seelengras"));
for(MetalType metal : MetalType.values()) {
// String loc = metal.name.substring(0, 1).toUpperCase() + metal.name.substring(1);
register(metal.name + "_block", (new BlockMetalBlock(metal)).setHardness(5.0F).setResistance(10.0F)
.setDisplay(metal.display + "block").setMiningTool(Equipment.PICKAXE, 1));
}
for(OreType ore : OreType.values()) {
// String loc = ore.name.substring(0, 1).toUpperCase() + ore.name.substring(1);
for(int z = 0; z <= ore.getCompressability(); z++) {
register(ore.name + "_block" + (z == 0 ? "" : "_compressed" + (z == 1 ? "" : "_" + z)), (new BlockCompressable(ore.getFuel(), z))
.setDisplay(Util.getCompressionPrefix("Verdichteter", z) + ore.display + "block").setTab(CheatTab.GEMS).setMiningTool(Equipment.PICKAXE, ore.material.getHarvestLevel() - 1));
}
}
for(MineralType mineral : MineralType.values()) {
Block block = (new BlockQuartz(mineral.name, false)).setSound(SoundType.STONE).setHardness(0.8F).setDisplay(mineral.displayBlock).setMiningTool(Equipment.PICKAXE, 1);
register(mineral.name + "_block", block);
register(mineral.name + "_slab", (new BlockSlab(block, mineral.name + "_bottom", mineral.name + "_top")).setDisplay(mineral.displaySlab).setMiningTool(Equipment.PICKAXE, 1));
register(mineral.name + "_stairs", (new BlockStairs(block, mineral.name + "_bottom", mineral.name + "_top")).setDisplay(mineral.displayStairs).setMiningTool(Equipment.PICKAXE, 1));
Block ornaments;
register(mineral.name + "_ornaments", (ornaments = new BlockQuartz(mineral.name, true)).setSound(SoundType.STONE).setHardness(0.8F).setDisplay(mineral.displayCarved).setMiningTool(Equipment.PICKAXE, 1));
register(mineral.name + "_ornaments_slab", (new BlockSlab(ornaments, mineral.name + "_carved", mineral.name + "_carved_top")).setDisplay(mineral.displayCarvedSlab).setMiningTool(Equipment.PICKAXE, 1));
register(mineral.name + "_ornaments_stairs", (new BlockStairs(ornaments, mineral.name + "_carved", mineral.name + "_carved_top")).setDisplay(mineral.displayCarvedStairs).setMiningTool(Equipment.PICKAXE, 1));
register(mineral.name + "_pillar", (new BlockQuartzPillar(mineral.name)).setSound(SoundType.STONE).setHardness(0.8F).setDisplay(mineral.displayPillar).setMiningTool(Equipment.PICKAXE, 1));
}
register("stone_slab", (new BlockSlab(stone)).setDisplay("Steinstufe"));
register("stone_stairs", (new BlockStairs(stone)).setDisplay("Steintreppe"));
register("bedrock_slab", (new BlockSlab(bedrock)).setDisplay("Grundgesteinstufe"));
register("bedrock_stairs", (new BlockStairs(bedrock)).setDisplay("Grundgesteintreppe"));
register("rock_slab", (new BlockSlab(rock)).setDisplay("Felsenstufe"));
register("rock_stairs", (new BlockStairs(rock)).setDisplay("Felsentreppe"));
register("smooth_rock_slab", (new BlockSlab(smooth_rock)).setDisplay("Glatte Felsenstufe"));
register("smooth_rock_stairs", (new BlockStairs(smooth_rock)).setDisplay("Glatte Felsentreppe"));
register("hellrock_slab", (new BlockSlab(hellrock)).setDisplay("Höllensteinstufe"));
register("hellrock_stairs", (new BlockStairs(hellrock)).setDisplay("Höllensteintreppe"));
register("cell_rock_slab", (new BlockSlab(cell_rock)).setDisplay("Zellsteinstufe"));
register("cell_rock_stairs", (new BlockStairs(cell_rock)).setDisplay("Zellsteintreppe"));
register("moon_rock_slab", (new BlockSlab(moon_rock)).setDisplay("Mondgesteinstufe"));
register("moon_rock_stairs", (new BlockStairs(moon_rock)).setDisplay("Mondgesteintreppe"));
register("cobblestone_slab", (new BlockSlab(cobblestone)).setDisplay("Bruchsteinstufe"));
register("cobblestone_stairs", (new BlockStairs(cobblestone)).setDisplay("Bruchsteintreppe"));
register("cobblestone_wall", (new BlockWall(cobblestone)).setDisplay("Bruchsteinmauer"));
register("mossy_cobblestone_slab", (new BlockSlab(mossy_cobblestone)).setDisplay("Bemooste Bruchsteinstufe"));
register("mossy_cobblestone_stairs", (new BlockStairs(mossy_cobblestone)).setDisplay("Bemooste Bruchsteintreppe"));
register("mossy_cobblestone_wall", (new BlockWall(mossy_cobblestone)).setDisplay("Bemooste Bruchsteinmauer"));
register("sandstone_slab", (new BlockSlab(sandstone, "sandstone_bottom", "sandstone_all")).setDisplay("Sandsteinstufe"));
register("sandstone_stairs", (new BlockStairs(sandstone, "sandstone_bottom", "sandstone_all")).setDisplay("Sandsteintreppe"));
register("smooth_sandstone_slab", (new BlockSlab(smooth_sandstone, "sandstone_bottom", "sandstone_all")).setDisplay("Glatte Sandsteinstufe"));
register("smooth_sandstone_stairs", (new BlockStairs(smooth_sandstone, "sandstone_bottom", "sandstone_all")).setDisplay("Glatte Sandsteintreppe"));
register("obsidian_slab", (new BlockSlab(obsidian)).setDisplay("Obsidianstufe"));
register("obsidian_stairs", (new BlockStairs(obsidian)).setDisplay("Obsidiantreppe"));
register("clay_slab", (new BlockSlab(clay)).setDisplay("Tonstufe"));
register("clay_stairs", (new BlockStairs(clay)).setDisplay("Tontreppe"));
register("hardened_clay_slab", (new BlockSlab(hardened_clay)).setDisplay("Gebrannte Tonstufe"));
register("hardened_clay_stairs", (new BlockStairs(hardened_clay)).setDisplay("Gebrannte Tontreppe"));
for(Color color : Color.values()) {
Block block = colored_clay[color.ordinal()];
register(color.getName() + "_clay_slab", (new BlockSlab(block)).setDisplay(color.getDisplay() + " gefärbte Tonstufe"));
register(color.getName() + "_clay_stairs", (new BlockStairs(block)).setDisplay(color.getDisplay() + " gefärbte Tontreppe"));
}
register("cyber_slab", (new BlockSlab(cyber)).setDisplay("CYBERSTUFE"));
register("cyber_stairs", (new BlockStairs(cyber)).setDisplay("CYBERTREPPE"));
register("blackened_stone_slab", (new BlockSlab(blackened_stone)).setDisplay("Schwarzsteinstufe"));
register("blackened_stone_stairs", (new BlockStairs(blackened_stone)).setDisplay("Schwarzsteintreppe"));
register("blackened_cobble_slab", (new BlockSlab(blackened_cobble)).setDisplay("Schwarzbruchsteinstufe"));
register("blackened_cobble_stairs", (new BlockStairs(blackened_cobble)).setDisplay("Schwarzbruchsteintreppe"));
register("dirt_slab", (new BlockSlab(dirt)).setDisplay("Erdstufe"));
register("dirt_stairs", (new BlockStairs(dirt)).setDisplay("Erdtreppe"));
register("grass_slab", (new BlockSlab(grass, "dirt", "grass_top", "dirt", "grass_side")).setDisplay("Grasstufe"));
register("coarse_dirt_slab", (new BlockSlab(coarse_dirt)).setDisplay("Grobe Erdstufe"));
register("coarse_dirt_stairs", (new BlockStairs(coarse_dirt)).setDisplay("Grobe Erdtreppe"));
register("podzol_slab", (new BlockSlab(podzol, "dirt", "podzol_top", "dirt", "podzol_side")).setDisplay("Podsolstufe"));
register("mycelium_slab", (new BlockSlab(mycelium, "dirt", "mycelium_top", "dirt", "mycelium_side")).setDisplay("Myzelstufe"));
register("swamp_slab", (new BlockSlab(swamp, "dirt", "swamp_top", "dirt", "swamp_side")).setDisplay("Sumpfstufe"));
register("tian_slab", (new BlockSlab(tian)).setDisplay("Tianstufe"));
register("tian_stairs", (new BlockStairs(tian)).setDisplay("Tiantreppe"));
register("tian_soil_slab", (new BlockSlab(tian_soil, "tian", "tian_soil_top", "tian", "tian_soil_side")).setDisplay("Tianerdestufe"));
register("blackened_dirt_slab", (new BlockSlab(blackened_dirt)).setDisplay("Schwarzerdestufe"));
register("blackened_dirt_stairs", (new BlockStairs(blackened_dirt)).setDisplay("Schwarzerdetreppe"));
register("blackened_soil_slab", (new BlockSlab(blackened_soil, "blackened_dirt", "blackened_soil_top", "blackened_dirt", "blackened_soil_side")).setDisplay("Schwarzgrasstufe"));
register("slime_slab", (new BlockSlab(slime_block)).setDisplay("Schleimstufe"));
register("slime_stairs", (new BlockStairs(slime_block)).setDisplay("Schleimtreppe"));
register("cheese_slab", (new BlockSlab(cheese)).setDisplay("Käsestufe"));
register("cheese_stairs", (new BlockStairs(cheese)).setDisplay("Käsetreppe"));
register("iron_bars", (new BlockPane(Material.SOLID)).setHardness(5.0F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Eisengitter"));
Block brick_block = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Ziegelsteine").setTab(CheatTab.BLOCKS);
register("brick_block", brick_block);
register("brick_slab", (new BlockSlab(brick_block)).setDisplay("Ziegelstufe"));
register("brick_stairs", (new BlockStairs(brick_block)).setDisplay("Ziegeltreppe"));
Block stonebrick = (new Block(Material.SOLID)).setHardness(1.5F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Steinziegel").setTab(CheatTab.BLOCKS);
register("stonebrick", stonebrick);
register("stonebrick_slab", (new BlockSlab(stonebrick)).setDisplay("Steinziegelstufe"));
register("stonebrick_stairs", (new BlockStairs(stonebrick)).setDisplay("Steinziegeltreppe"));
Block mossy_stonebrick;
register("mossy_stonebrick", (mossy_stonebrick = new Block(Material.SOLID)).setHardness(1.5F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Bemooste Steinziegel").setTab(CheatTab.BLOCKS));
register("mossy_stonebrick_slab", (new BlockSlab(mossy_stonebrick)).setDisplay("Bemooste Steinziegelstufe"));
register("mossy_stonebrick_stairs", (new BlockStairs(mossy_stonebrick)).setDisplay("Bemooste Steinziegeltreppe"));
Block cracked_stonebrick;
register("cracked_stonebrick", (cracked_stonebrick = new Block(Material.SOLID)).setHardness(1.5F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Rissige Steinziegel").setTab(CheatTab.BLOCKS));
register("cracked_stonebrick_slab", (new BlockSlab(cracked_stonebrick)).setDisplay("Rissige Steinziegelstufe"));
register("cracked_stonebrick_stairs", (new BlockStairs(cracked_stonebrick)).setDisplay("Rissige Steinziegeltreppe"));
register("carved_stonebrick", (new Block(Material.SOLID)).setHardness(1.5F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Gemeißelte Steinziegel").setTab(CheatTab.BLOCKS));
Block blood_brick = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Blutrote Ziegel").setTab(CheatTab.BLOCKS);
register("blood_brick", blood_brick);
register("blood_brick_slab", (new BlockSlab(blood_brick)).setDisplay("Blutrote Ziegelstufe"));
register("blood_brick_fence", (new BlockFence(Material.SOLID, "blood_brick")).setHardness(2.0F).setResistance(10.0F)
.setSound(SoundType.STONE).setDisplay("Blutroter Ziegelzaun"));
register("blood_brick_stairs", (new BlockStairs(blood_brick)).setDisplay("Blutrote Ziegeltreppe"));
Block black_brick = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Schwarze Ziegel").setTab(CheatTab.BLOCKS);
register("black_brick", black_brick);
register("black_brick_slab", (new BlockSlab(black_brick)).setDisplay("Schwarze Ziegelstufe"));
register("black_brick_stairs", (new BlockStairs(black_brick)).setDisplay("Schwarze Ziegeltreppe"));
register("black_brick_fence", (new BlockFence(Material.SOLID, "black_brick")).setHardness(2.0F).setResistance(10.0F)
.setSound(SoundType.STONE).setDisplay("Schwarzer Ziegelzaun"));
Block concrete = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Beton").setTab(CheatTab.BLOCKS);
register("concrete", concrete);
register("concrete_slab", (new BlockSlab(concrete)).setDisplay("Betonstufe"));
register("concrete_stairs", (new BlockStairs(concrete)).setDisplay("Betontreppe"));
for(DecoType deco : DecoType.values()) {
Block block = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F)
.setSound(SoundType.STONE).setDisplay(deco.display).setTab(CheatTab.BLOCKS);
register(deco.name, block);
register(deco.name + "_slab", (new BlockSlab(block)).setDisplay(deco.display + " - Stufe"));
register(deco.name + "_stairs", (new BlockStairs(block)).setDisplay(deco.display + " - Treppe"));
}
register("iron_door", (new BlockDoor(Material.SOLID)).setHardness(5.0F).setSound(SoundType.STONE).setDisplay("Eisentür"));
register("trapdoor", (new BlockTrapDoor(Material.WOOD)).setHardness(3.0F).setSound(SoundType.WOOD).setDisplay("Holzfalltür").setFlammable(5, 20));
register("iron_trapdoor", (new BlockTrapDoor(Material.SOLID)).setHardness(5.0F).setSound(SoundType.STONE).setDisplay("Eisenfalltür"));
register("core", new BlockCore().setHardness(1.5F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Chunk-Lade-Kern"));
register("mob_spawner", (new BlockMobSpawner()).setHardness(3.0F).setResistance(8.0F).setSound(SoundType.STONE).setDisplay("Mob-Spawner"));
register("workbench", (new BlockWorkbench(1)).setHardness(2.5F).setSound(SoundType.WOOD).setDisplay("Werkbank"));
register("construction_table", (new BlockWorkbench(2)).setHardness(2.5F).setSound(SoundType.WOOD).setDisplay("Konstruktionstisch"));
register("assembly_unit", (new BlockWorkbench(3)).setHardness(2.5F).setSound(SoundType.WOOD).setDisplay("Fertigungseinheit"));
BlockFurnace stone_furnace = (BlockFurnace)register("stone_furnace", new BlockFurnace(200, 100).setDisplay("Steinofen"));
register("lit_stone_furnace", new BlockFurnace(stone_furnace));
BlockFurnace iron_furnace = (BlockFurnace)register("iron_furnace", new BlockFurnace(150, 100).setDisplay("Eiserner Ofen"));
register("lit_iron_furnace", new BlockFurnace(iron_furnace));
BlockFurnace titanium_furnace = (BlockFurnace)register("titanium_furnace", new BlockFurnace(100, 100).setDisplay("Titanofen"));
register("lit_titanium_furnace", new BlockFurnace(titanium_furnace));
BlockFurnace neptunium_furnace = (BlockFurnace)register("neptunium_furnace", new BlockFurnace(50, 70).setDisplay("Neptuniumofen"));
register("lit_neptunium_furnace", new BlockFurnace(neptunium_furnace));
BlockFurnace plutonium_furnace = (BlockFurnace)register("plutonium_furnace", new BlockFurnace(20, 50).setDisplay("Plutoniumofen"));
register("lit_plutonium_furnace", new BlockFurnace(plutonium_furnace));
BlockFurnace hell_furnace = (BlockFurnace)register("hell_furnace", new BlockFurnace(180, 120).setDisplay("Höllensteinofen"));
register("lit_hell_furnace", new BlockFurnace(hell_furnace));
BlockFurnace ardite_furnace = (BlockFurnace)register("ardite_furnace", new BlockFurnace(120, 140).setDisplay("Arditofen"));
register("lit_ardite_furnace", new BlockFurnace(ardite_furnace));
BlockFurnace black_metal_furnace = (BlockFurnace)register("black_metal_furnace", new BlockFurnace(80, 200).setDisplay("Schwarzmetallofen"));
register("lit_black_metal_furnace", new BlockFurnace(black_metal_furnace));
for(int z = 0; z < BlockAnvil.ANVILS.length; z++) {
register("anvil" + (z == 0 ? "" : "_damaged_" + z), (new BlockAnvil(z)).setHardness(5.0F).setSound(SoundType.STONE).setResistance(2000.0F).setDisplay((z == 0 ? "" : (z == 1 ? "Leicht beschädigter " : "Stark beschädigter ")) + "Amboss"));
}
register("enchanting_table", (new BlockEnchantmentTable()).setHardness(5.0F).setResistance(2000.0F).setDisplay("Zaubertisch"));
register("brewing_stand", (new BlockBrewingStand()).setHardness(0.5F).setLight(0x1f1f18).setDisplay("Braustand").setTab(CheatTab.TECHNOLOGY));
register("cauldron", (new BlockCauldron()).setHardness(2.0F).setDisplay("Kessel").setTab(CheatTab.TECHNOLOGY));
register("effect_generator", (new BlockEffectGenerator()).setDisplay("Effektgenerator").setLight(0xffffff));
register("wood_chest", new BlockChest(22).setDisplay("Holztruhe"));
register("stone_chest", new BlockChest(48).setDisplay("Steintruhe"));
register("iron_chest", new BlockChest(90).setDisplay("Eisentruhe"));
register("platinum_chest", new BlockChest(150).setDisplay("Platintruhe"));
register("silver_chest", new BlockChest(240).setDisplay("Silbertruhe"));
register("thetium_chest", new BlockChest(384).setDisplay("Thetiumtruhe"));
register("black_metal_chest", new BlockChest(480).setDisplay("Schwarzmetalltruhe"));
register("nichun_chest", new BlockChest(550).setDisplay("Nichuntruhe"));
register("warp_chest", (new BlockWarpChest()).setHardness(22.5F).setResistance(1000.0F).setSound(SoundType.STONE)
.setDisplay("Warptruhe").setLight(0x7f00af));
for(int z = 0; z < BlockTNT.TNTS.length; z++) {
register("tnt" + (z == 0 ? "" : "_" + z), (new BlockTNT(z)).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay("TNT" + Util.getTierSuffix(z)));
}
register("nuke", (new BlockNuke()).setHardness(0.0F).setSound(SoundType.GRASS).setDisplay("T-17"));
register("piston", (new BlockPistonBase(false)).setDisplay("Kolben"));
register("sticky_piston", (new BlockPistonBase(true)).setDisplay("Klebriger Kolben"));
register("piston_head", (new BlockPistonHead(false)).setDisplay("Kolben"));
register("sticky_piston_head", (new BlockPistonHead(true)).setDisplay("Klebriger Kolben"));
register("dispenser", (new BlockDispenser(false)).setHardness(3.5F).setSound(SoundType.STONE).setDisplay("Werfer"));
register("dropper", (new BlockDispenser(true)).setHardness(3.5F).setSound(SoundType.STONE).setDisplay("Spender"));
register("pipe", (new BlockItemPipe()).setHardness(3.0F).setResistance(8.0F).setSound(SoundType.STONE).setDisplay("Rohr"));
register("suction_pipe", (new BlockSuctionPipe()).setHardness(3.0F).setResistance(8.0F).setSound(SoundType.STONE).setDisplay("Saugrohr"));
register("tian_reactor", (new BlockTianReactor()).setHardness(3.0F).setResistance(8.0F).setSound(SoundType.STONE).setDisplay("Tianreaktor"));
register("rail", (new BlockRail()).setHardness(0.7F).setSound(SoundType.STONE).setDisplay("Schiene").setMiningTool(Equipment.PICKAXE, 0));
register("lever", (new BlockLever()).setHardness(0.5F).setSound(SoundType.WOOD).setDisplay("Hebel"));
register("stone_pressure_plate", (new BlockPressurePlate(Material.SOLID, BlockPressurePlate.Sensitivity.MOBS)).setHardness(0.5F)
.setSound(SoundType.STONE).setDisplay("Steindruckplatte"));
register("wooden_pressure_plate", (new BlockPressurePlate(Material.WOOD, BlockPressurePlate.Sensitivity.EVERYTHING))
.setHardness(0.5F).setSound(SoundType.WOOD).setDisplay("Holzdruckplatte"));
register("light_weighted_pressure_plate", (new BlockPressurePlateWeighted(Material.SOLID, 15)).setHardness(0.5F)
.setSound(SoundType.WOOD).setDisplay("Wägeplatte (niedrige Gewichte)"));
register("heavy_weighted_pressure_plate", (new BlockPressurePlateWeighted(Material.SOLID, 150)).setHardness(0.5F)
.setSound(SoundType.WOOD).setDisplay("Wägeplatte (hohe Gewichte)"));
register("stone_button", (new BlockButton(false, 20, "stone")).setHardness(0.5F).setSound(SoundType.STONE).setDisplay("Knopf"));
register("wooden_button", (new BlockButton(true, 30, "oak_planks")).setHardness(0.5F).setSound(SoundType.WOOD).setDisplay("Knopf"));
register("red_button", (new BlockButton(true, 10, "red_button")).setHardness(0.5F).setSound(SoundType.STONE).setDisplay("Knopf"));
register("wire", (new BlockWire()).setHardness(0.0F).setSound(SoundType.STONE).setDisplay("Kabel").setTab(CheatTab.TECHNOLOGY));
BlockUnlitTorch torch;
register("torch", (torch = new BlockUnlitTorch(0xffffffff)).setHardness(0.0F).setSound(SoundType.WOOD).setDisplay("Fackel"));
register("lit_torch", (new BlockLitTorch(torch)).setHardness(0.0F).setLight(0xefef9f).setSound(SoundType.WOOD).setDisplay("Fackel"));
BlockUnlitTorch tian_torch;
register("tian_torch", (tian_torch = new BlockUnlitTorch(0x7f00ff)).setHardness(0.0F).setSound(SoundType.WOOD).setDisplay("Tian-Fackel"));
register("lit_tian_torch", (new BlockLitTorch(tian_torch)).setHardness(0.0F).setLight(0xaf00ff).setSound(SoundType.WOOD)
.setDisplay("Tian-Fackel"));
BlockUnlitTorch soul_torch;
register("soul_torch", (soul_torch = new BlockUnlitTorch(0x1f1fff)).setHardness(0.0F).setSound(SoundType.WOOD).setDisplay("Seelenfackel"));
register("lit_soul_torch", (new BlockLitTorch(soul_torch)).setHardness(0.0F).setLight(0x0000af).setSound(SoundType.WOOD)
.setDisplay("Seelenfackel"));
register("lamp", (new BlockToggleableLight(false)).setHardness(0.3F).setSound(SoundType.GLASS)
.setDisplay("Lampe").setTab(CheatTab.TECHNOLOGY));
register("lit_lamp", (new BlockToggleableLight(true)).setHardness(0.3F).setSound(SoundType.GLASS).setDisplay("Lampe"));
register("hook", (new BlockHook()).setDisplay("Haken"));
register("string", (new BlockString()).setDisplay("Seil").setTab(CheatTab.TECHNOLOGY));
for(Block block : BLOCKS) {
for(State state : block.getSavedStates()) {
String name = state.getId();
STATE_MAP.put(name, state);
int id = STATES.size();
STATES.add(state);
for(State sub : block.getValidStates()) {
if(sub.getId().equals(name)) {
STATE_NAMES.put(sub, name);
STATE_IDS.put(sub, id);
}
}
}
}
Log.SYSTEM.debug("%d Blöcke registriert", BLOCK_MAP.size());
Log.SYSTEM.debug("%d Blockzustände registriert", STATE_MAP.size());
}
}