diff --git a/common/src/main/java/common/block/Block.java b/common/src/main/java/common/block/Block.java index 6ef114dc..785aa3f4 100755 --- a/common/src/main/java/common/block/Block.java +++ b/common/src/main/java/common/block/Block.java @@ -27,6 +27,7 @@ import common.entity.types.EntityLiving; import common.init.ItemRegistry; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; import common.item.ItemStack; import common.model.BlockLayer; import common.model.Model; @@ -167,6 +168,7 @@ public class Block { protected boolean shovelHarvest; protected boolean ticked; protected boolean hasTile; + protected boolean flatItemTexture; protected int lightOpacity; protected int lightValue; protected int miningLevel; @@ -318,6 +320,11 @@ public class Block { return this; } + protected Block setFlatItemTexture() { + this.flatItemTexture = true; + return this; + } + public Block setDisplay(String name) { this.display = name; return this; @@ -1012,4 +1019,8 @@ public class Block { public String getFallbackTexture() { return null; } + + public Item getItemToRegister() { + return new ItemBlock(this, this.flatItemTexture ? "" : null); + } } diff --git a/common/src/main/java/common/block/BlockAir.java b/common/src/main/java/common/block/BlockAir.java index 5a843f55..1fda2ec1 100755 --- a/common/src/main/java/common/block/BlockAir.java +++ b/common/src/main/java/common/block/BlockAir.java @@ -1,5 +1,6 @@ package common.block; +import common.item.Item; import common.util.BlockPos; import common.util.BoundingBox; import common.world.State; @@ -36,4 +37,8 @@ public final class BlockAir extends Block { public boolean getSumBrightness() { return false; } + + public Item getItemToRegister() { + return null; + } } diff --git a/common/src/main/java/common/block/artificial/BlockBed.java b/common/src/main/java/common/block/artificial/BlockBed.java index 22a5317b..8b236974 100755 --- a/common/src/main/java/common/block/artificial/BlockBed.java +++ b/common/src/main/java/common/block/artificial/BlockBed.java @@ -8,6 +8,8 @@ import common.color.TextColor; import common.entity.npc.EntityNPC; import common.init.ItemRegistry; import common.item.Item; +import common.item.ItemBed; +import common.item.ItemBlock; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -206,4 +208,8 @@ public class BlockBed extends Block implements Rotatable { .add(0, 3, 0, 16, 3, 16) .d("oak_planks").noCull().rotate(ModelRotation.getNorthRot(state.getValue(FACING).getOpposite())); } + + public Item getItemToRegister() { + return new ItemBed(this).setDisplay(this.color.getSubject(0) + " Bett"); + } } diff --git a/common/src/main/java/common/block/artificial/BlockCake.java b/common/src/main/java/common/block/artificial/BlockCake.java index 9907df78..3f5ea7fa 100755 --- a/common/src/main/java/common/block/artificial/BlockCake.java +++ b/common/src/main/java/common/block/artificial/BlockCake.java @@ -3,8 +3,11 @@ package common.block.artificial; import common.block.Block; import common.block.Material; import common.entity.npc.EntityNPC; +import common.init.Blocks; import common.init.Items; +import common.item.CheatTab; import common.item.Item; +import common.item.ItemSmallBlock; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -246,4 +249,8 @@ public class BlockCake extends Block public Model getModel(ModelProvider provider, String name, State state) { return cake_slices[state.getValue(BITES)]; } + + public Item getItemToRegister() { + return new ItemSmallBlock(this).setMaxAmount(1).setDisplay("Kuchen").setTab(CheatTab.DECORATION); + } } diff --git a/common/src/main/java/common/block/artificial/BlockDoor.java b/common/src/main/java/common/block/artificial/BlockDoor.java index 08ad3d34..46a5e3de 100755 --- a/common/src/main/java/common/block/artificial/BlockDoor.java +++ b/common/src/main/java/common/block/artificial/BlockDoor.java @@ -10,6 +10,8 @@ import common.entity.npc.EntityNPC; import common.init.Blocks; import common.init.Items; import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemDoor; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -502,6 +504,10 @@ public class BlockDoor extends Block implements Rotatable public Property[] getIgnoredProperties() { return new Property[] {POWERED}; } + + public Item getItemToRegister() { + return new ItemDoor(this); + } public static enum EnumDoorHalf implements Identifyable { diff --git a/common/src/main/java/common/block/artificial/BlockFence.java b/common/src/main/java/common/block/artificial/BlockFence.java index cc7b7fb1..4774aac3 100755 --- a/common/src/main/java/common/block/artificial/BlockFence.java +++ b/common/src/main/java/common/block/artificial/BlockFence.java @@ -8,6 +8,9 @@ import common.collect.Lists; import common.entity.Entity; import common.entity.npc.EntityNPC; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemFence; import common.item.ItemLead; import common.model.Model; import common.model.ModelProvider; @@ -379,4 +382,8 @@ public class BlockFence extends Block .e().uv(7, 7, 9, 10) .rotate(!w ? ModelRotation.X0_Y0 : (!e ? ModelRotation.X0_Y180 : (!s ? ModelRotation.X0_Y270 : ModelRotation.X0_Y90))); } + + public Item getItemToRegister() { + return new ItemFence(this); + } } diff --git a/common/src/main/java/common/block/artificial/BlockFloorPortal.java b/common/src/main/java/common/block/artificial/BlockFloorPortal.java index ff405826..cbd1d23c 100755 --- a/common/src/main/java/common/block/artificial/BlockFloorPortal.java +++ b/common/src/main/java/common/block/artificial/BlockFloorPortal.java @@ -158,4 +158,8 @@ public class BlockFloorPortal extends Block public String getFallbackTexture() { return "obsidian"; } + + public Item getItemToRegister() { + return null; + } } diff --git a/common/src/main/java/common/block/artificial/BlockFlowerPot.java b/common/src/main/java/common/block/artificial/BlockFlowerPot.java index 5276b3b9..468b4938 100755 --- a/common/src/main/java/common/block/artificial/BlockFlowerPot.java +++ b/common/src/main/java/common/block/artificial/BlockFlowerPot.java @@ -11,8 +11,10 @@ import common.init.BlockRegistry; import common.init.Blocks; import common.init.ItemRegistry; import common.init.Items; +import common.item.CheatTab; import common.item.Item; import common.item.ItemBlock; +import common.item.ItemSmallBlock; import common.item.ItemStack; import common.model.BlockLayer; import common.model.Model; @@ -156,7 +158,7 @@ public class BlockFlowerPot extends Block } else { - worldIn.setState(pos, BlockRegistry.getRegisteredBlock("flowerpot_" + BlockRegistry.getNameFromBlock(this.content)).getState(), 2); + worldIn.setState(pos, BlockRegistry.getRegisteredBlock("flowerpot_" + BlockRegistry.getNameFromBlock(block)).getState(), 2); // tileentityflowerpot.setFlowerPotData(itemstack.getItem(), itemstack.getMetadata()); // tileentityflowerpot.markDirty(); // worldIn.markBlockForUpdate(pos); @@ -267,4 +269,8 @@ public class BlockFlowerPot extends Block .e(plant).uv(0, 0, 16, 16).noCull(); } } + + public Item getItemToRegister() { + return this.content == null ? new ItemSmallBlock(this).setDisplay("Blumentopf").setTab(CheatTab.DECORATION) : null; + } } diff --git a/common/src/main/java/common/block/artificial/BlockLadder.java b/common/src/main/java/common/block/artificial/BlockLadder.java index d2b49b1f..d59bceaa 100755 --- a/common/src/main/java/common/block/artificial/BlockLadder.java +++ b/common/src/main/java/common/block/artificial/BlockLadder.java @@ -24,6 +24,7 @@ public class BlockLadder extends Block implements Rotatable super(Material.SMALL); this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.NORTH)); this.setTab(CheatTab.WOOD); + this.setFlatItemTexture(); } public BoundingBox getCollisionBoundingBox(World worldIn, BlockPos pos, State state) diff --git a/common/src/main/java/common/block/artificial/BlockMetalBlock.java b/common/src/main/java/common/block/artificial/BlockMetalBlock.java new file mode 100644 index 00000000..f609b967 --- /dev/null +++ b/common/src/main/java/common/block/artificial/BlockMetalBlock.java @@ -0,0 +1,26 @@ +package common.block.artificial; + +import common.block.Block; +import common.block.Material; +import common.block.SoundType; +import common.init.MetalType; +import common.item.CheatTab; +import common.item.Item; +import common.item.ItemMetalBlock; + +public class BlockMetalBlock extends Block { + private final MetalType metal; + + public BlockMetalBlock(MetalType metal) { + super(Material.SOLID); + this.metal = metal; + this.setStepSound(SoundType.STONE); + this.setLightLevel(metal.radioactivity > 0.0F ? 0.25F : 0.0F); + this.setRadiation(metal.radioactivity * 2.0f); + this.setTab(CheatTab.GEMS); + } + + public Item getItemToRegister() { + return new ItemMetalBlock(this, this.metal, false); + } +} diff --git a/common/src/main/java/common/block/artificial/BlockPane.java b/common/src/main/java/common/block/artificial/BlockPane.java index 857376d6..897ef456 100755 --- a/common/src/main/java/common/block/artificial/BlockPane.java +++ b/common/src/main/java/common/block/artificial/BlockPane.java @@ -8,6 +8,7 @@ import common.entity.Entity; import common.init.Blocks; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -36,6 +37,7 @@ public class BlockPane extends Block this.setDefaultState(this.getBaseState().withProperty(NORTH, Boolean.valueOf(false)).withProperty(EAST, Boolean.valueOf(false)).withProperty(SOUTH, Boolean.valueOf(false)).withProperty(WEST, Boolean.valueOf(false))); this.canDrop = canDrop; this.setTab(CheatTab.BLOCKS); + this.setFlatItemTexture(); } /** @@ -498,4 +500,8 @@ public class BlockPane extends Block .e(edge).uv(7, 0, 9, 16); } } + + public Item getItemToRegister() { + return this.canDrop ? super.getItemToRegister() : new ItemBlock(this, "glass", false); + } } diff --git a/common/src/main/java/common/block/artificial/BlockPortal.java b/common/src/main/java/common/block/artificial/BlockPortal.java index 13f1d105..330efeec 100755 --- a/common/src/main/java/common/block/artificial/BlockPortal.java +++ b/common/src/main/java/common/block/artificial/BlockPortal.java @@ -295,6 +295,10 @@ public class BlockPortal extends Block public void getAnimatedTextures(Map map) { map.put("portal", 1); } + + public Item getItemToRegister() { + return null; + } // public BlockPattern.PatternHelper func_181089_f(World p_181089_1_, BlockPos p_181089_2_) // { diff --git a/common/src/main/java/common/block/artificial/BlockSkull.java b/common/src/main/java/common/block/artificial/BlockSkull.java index 1b68aedf..b0ddae8c 100755 --- a/common/src/main/java/common/block/artificial/BlockSkull.java +++ b/common/src/main/java/common/block/artificial/BlockSkull.java @@ -5,8 +5,11 @@ import common.block.Rotatable; import common.block.Material; import common.entity.Entity; import common.entity.types.EntityLiving; +import common.init.Blocks; import common.init.Items; +import common.item.CheatTab; import common.item.Item; +import common.item.ItemSmallBlock; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -73,4 +76,8 @@ public class BlockSkull extends Block implements Rotatable { world.destroyBlock(pos, true); return true; } + + public Item getItemToRegister() { + return new ItemSmallBlock(this).setDisplay("Schädel").setTab(CheatTab.DECORATION); + } } diff --git a/common/src/main/java/common/block/artificial/BlockSlab.java b/common/src/main/java/common/block/artificial/BlockSlab.java index f23ea139..c8cad9a1 100755 --- a/common/src/main/java/common/block/artificial/BlockSlab.java +++ b/common/src/main/java/common/block/artificial/BlockSlab.java @@ -10,6 +10,8 @@ import common.entity.Entity; import common.entity.types.EntityLiving; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemSlab; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -268,6 +270,10 @@ public class BlockSlab extends Block implements Directional public boolean getSumBrightness() { return true; } + + public Item getItemToRegister() { + return new ItemSlab(this); + } /* public Model getModel(String name, IBlockState state) { diff --git a/common/src/main/java/common/block/artificial/BlockStainedGlassPane.java b/common/src/main/java/common/block/artificial/BlockStainedGlassPane.java index 2b103321..5e61dfd3 100755 --- a/common/src/main/java/common/block/artificial/BlockStainedGlassPane.java +++ b/common/src/main/java/common/block/artificial/BlockStainedGlassPane.java @@ -3,6 +3,8 @@ package common.block.artificial; import common.block.Material; import common.color.DyeColor; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; import common.model.BlockLayer; import common.properties.Property; import common.world.State; @@ -47,4 +49,8 @@ public class BlockStainedGlassPane extends BlockPane protected String getPaneEdge(State state) { return this.color.getName() + "_glass_pane"; } + + public Item getItemToRegister() { + return new ItemBlock(this, ""); + } } diff --git a/common/src/main/java/common/block/artificial/BlockWall.java b/common/src/main/java/common/block/artificial/BlockWall.java index 40432a4a..1536bf8d 100755 --- a/common/src/main/java/common/block/artificial/BlockWall.java +++ b/common/src/main/java/common/block/artificial/BlockWall.java @@ -7,6 +7,9 @@ import common.block.Material; import common.collect.Lists; import common.init.Blocks; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemWall; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -293,4 +296,8 @@ public class BlockWall extends Block .e().uv(5, 3, 11, 16) .rotate(!w ? ModelRotation.X0_Y0 : (!e ? ModelRotation.X0_Y180 : (!s ? ModelRotation.X0_Y270 : ModelRotation.X0_Y90))); } + + public Item getItemToRegister() { + return new ItemWall(this); + } } diff --git a/common/src/main/java/common/block/foliage/BlockBush.java b/common/src/main/java/common/block/foliage/BlockBush.java index acc0c1b9..d2bd545c 100755 --- a/common/src/main/java/common/block/foliage/BlockBush.java +++ b/common/src/main/java/common/block/foliage/BlockBush.java @@ -26,6 +26,7 @@ public class BlockBush extends Block float f = 0.2F; this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f * 3.0F, 0.5F + f); this.setTab(CheatTab.PLANTS); + this.setFlatItemTexture(); } public boolean canPlaceBlockAt(World worldIn, BlockPos pos) diff --git a/common/src/main/java/common/block/foliage/BlockCarrot.java b/common/src/main/java/common/block/foliage/BlockCarrot.java index e35b94b1..28cbc67c 100755 --- a/common/src/main/java/common/block/foliage/BlockCarrot.java +++ b/common/src/main/java/common/block/foliage/BlockCarrot.java @@ -1,7 +1,9 @@ package common.block.foliage; +import common.init.Blocks; import common.init.Items; import common.item.Item; +import common.item.ItemSeedFood; import common.model.Model; import common.model.ModelProvider; import common.world.State; @@ -22,4 +24,8 @@ public class BlockCarrot extends BlockCrops int age = state.getValue(AGE); return crop(provider, name + "_" + (age == 6 ? 2 : (age / 2))); } + + public Item getItemToRegister() { + return new ItemSeedFood(3, this, Blocks.farmland).setDisplay("Karotte").setMaxAmount(128); + } } diff --git a/common/src/main/java/common/block/foliage/BlockCocoa.java b/common/src/main/java/common/block/foliage/BlockCocoa.java index 2e14b7aa..d31fc391 100755 --- a/common/src/main/java/common/block/foliage/BlockCocoa.java +++ b/common/src/main/java/common/block/foliage/BlockCocoa.java @@ -270,4 +270,8 @@ public class BlockCocoa extends Block implements Rotatable, IGrowable } return model.rotate(ModelRotation.getNorthRot(state.getValue(FACING).getOpposite())); } + + public Item getItemToRegister() { + return null; + } } diff --git a/common/src/main/java/common/block/foliage/BlockCrops.java b/common/src/main/java/common/block/foliage/BlockCrops.java index 55749f46..e3480d9c 100755 --- a/common/src/main/java/common/block/foliage/BlockCrops.java +++ b/common/src/main/java/common/block/foliage/BlockCrops.java @@ -6,6 +6,7 @@ import common.init.Blocks; import common.init.Items; import common.item.CheatTab; import common.item.Item; +import common.item.ItemSeeds; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -241,4 +242,8 @@ public class BlockCrops extends BlockBush implements IGrowable .n().uv(0, 0, 16, 16).noCull() .s().uv(0, 0, 16, 16).noCull(); } + + public Item getItemToRegister() { + return new ItemSeeds(this, Blocks.farmland).setDisplay("Weizenkörner").setMaxAmount(256); + } } diff --git a/common/src/main/java/common/block/foliage/BlockDoublePlant.java b/common/src/main/java/common/block/foliage/BlockDoublePlant.java index d645cd3b..cb08f503 100755 --- a/common/src/main/java/common/block/foliage/BlockDoublePlant.java +++ b/common/src/main/java/common/block/foliage/BlockDoublePlant.java @@ -11,8 +11,10 @@ import common.init.Blocks; import common.init.ItemRegistry; import common.init.Items; import common.item.Item; +import common.item.ItemDoublePlant; import common.item.ItemShears; import common.item.ItemStack; +import common.item.ItemTNT; import common.model.Model; import common.model.ModelProvider; import common.properties.Property; @@ -299,6 +301,10 @@ public class BlockDoublePlant extends BlockBush implements Rotatable, IGrowable public Property[] getIgnoredProperties() { return new Property[] {FACING}; } + + public Item getItemToRegister() { + return new ItemDoublePlant(this); + } public static enum EnumBlockHalf implements Identifyable { diff --git a/common/src/main/java/common/block/foliage/BlockGrass.java b/common/src/main/java/common/block/foliage/BlockGrass.java index dfe3d458..b247a0d8 100755 --- a/common/src/main/java/common/block/foliage/BlockGrass.java +++ b/common/src/main/java/common/block/foliage/BlockGrass.java @@ -7,6 +7,8 @@ import common.color.Colorizer; import common.init.Blocks; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemColored; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -143,4 +145,8 @@ public class BlockGrass extends Block implements IGrowable return provider.getModel("dirt").add().d().u("grass_top").tint().nswe("grass_side") .add().nswe("grass_side_overlay").tint(); } + + public Item getItemToRegister() { + return new ItemColored(this); + } } diff --git a/common/src/main/java/common/block/foliage/BlockHugeMushroom.java b/common/src/main/java/common/block/foliage/BlockHugeMushroom.java index ef8281ec..1d9a8d5f 100755 --- a/common/src/main/java/common/block/foliage/BlockHugeMushroom.java +++ b/common/src/main/java/common/block/foliage/BlockHugeMushroom.java @@ -5,6 +5,7 @@ import common.block.Material; import common.entity.types.EntityLiving; import common.init.ItemRegistry; import common.item.Item; +import common.item.ItemBlock; import common.model.Model; import common.model.ModelProvider; import common.properties.Property; @@ -141,6 +142,10 @@ public class BlockHugeMushroom extends Block .w(name + "_cap").e(name + "_inside"); } } + + public Item getItemToRegister() { + return new ItemBlock(this, 14); + } public static enum EnumType implements Identifyable { diff --git a/common/src/main/java/common/block/foliage/BlockLeaves.java b/common/src/main/java/common/block/foliage/BlockLeaves.java index 3db57239..78ca6df8 100755 --- a/common/src/main/java/common/block/foliage/BlockLeaves.java +++ b/common/src/main/java/common/block/foliage/BlockLeaves.java @@ -13,6 +13,8 @@ import common.init.ItemRegistry; import common.init.WoodType; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemColored; import common.item.ItemShears; import common.item.ItemStack; import common.model.Model; @@ -334,4 +336,8 @@ public class BlockLeaves extends BlockLeavesBase public Property[] getIgnoredProperties() { return new Property[] {DECAY}; } + + public Item getItemToRegister() { + return new ItemColored(this, 8); + } } diff --git a/common/src/main/java/common/block/foliage/BlockLilyPad.java b/common/src/main/java/common/block/foliage/BlockLilyPad.java index 4187d83d..68fbec9b 100755 --- a/common/src/main/java/common/block/foliage/BlockLilyPad.java +++ b/common/src/main/java/common/block/foliage/BlockLilyPad.java @@ -11,6 +11,9 @@ import common.entity.item.EntityBoat; import common.entity.types.EntityLiving; import common.init.Blocks; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemLilyPad; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -112,4 +115,8 @@ public class BlockLilyPad extends BlockBush implements Rotatable .u().uv(16, 0, 0, 16).tint().noCull() .rotate(ModelRotation.getNorthRot(state.getValue(FACING))); } + + public Item getItemToRegister() { + return new ItemLilyPad(this); + } } diff --git a/common/src/main/java/common/block/foliage/BlockPotato.java b/common/src/main/java/common/block/foliage/BlockPotato.java index 2083b27c..08c289ce 100755 --- a/common/src/main/java/common/block/foliage/BlockPotato.java +++ b/common/src/main/java/common/block/foliage/BlockPotato.java @@ -1,7 +1,9 @@ package common.block.foliage; +import common.init.Blocks; import common.init.Items; import common.item.Item; +import common.item.ItemSeedFood; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -41,4 +43,8 @@ public class BlockPotato extends BlockCrops int age = state.getValue(AGE); return crop(provider, name + "_" + (age == 6 ? 2 : (age / 2))); } + + public Item getItemToRegister() { + return new ItemSeedFood(1, this, Blocks.farmland).setDisplay("Kartoffel").setMaxAmount(128); + } } diff --git a/common/src/main/java/common/block/foliage/BlockReed.java b/common/src/main/java/common/block/foliage/BlockReed.java index d64b79cf..c5a9eef8 100755 --- a/common/src/main/java/common/block/foliage/BlockReed.java +++ b/common/src/main/java/common/block/foliage/BlockReed.java @@ -4,7 +4,9 @@ import common.block.Block; import common.block.Material; import common.init.Blocks; import common.init.Items; +import common.item.CheatTab; import common.item.Item; +import common.item.ItemSmallBlock; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -191,4 +193,8 @@ public class BlockReed extends Block public Property[] getIgnoredProperties() { return new Property[] {AGE}; } + + public Item getItemToRegister() { + return new ItemSmallBlock(this).setDisplay("Zuckerrohr").setTab(CheatTab.PLANTS).setMaxAmount(128); + } } diff --git a/common/src/main/java/common/block/foliage/BlockStem.java b/common/src/main/java/common/block/foliage/BlockStem.java index fce5dbae..5b8afb87 100755 --- a/common/src/main/java/common/block/foliage/BlockStem.java +++ b/common/src/main/java/common/block/foliage/BlockStem.java @@ -6,6 +6,7 @@ import common.init.Blocks; import common.init.Items; import common.item.CheatTab; import common.item.Item; +import common.item.ItemSeeds; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -26,11 +27,13 @@ public class BlockStem extends BlockBush implements DirectionalUp, IGrowable public static final PropertyInteger AGE = PropertyInteger.create("age", 0, 7); private final Block crop; + private final String itemName; - public BlockStem(Block crop) + public BlockStem(Block crop, String itemName) { this.setDefaultState(this.getBaseState().withProperty(AGE, Integer.valueOf(0)).withProperty(FACING, Facing.UP)); this.crop = crop; + this.itemName = itemName; this.setTickRandomly(); float f = 0.125F; this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f); @@ -317,4 +320,8 @@ public class BlockStem extends BlockBush implements DirectionalUp, IGrowable .rotate(ModelRotation.getEastRot(state.getValue(FACING).getOpposite(), false)); } } + + public Item getItemToRegister() { + return new ItemSeeds(this, Blocks.farmland).setDisplay(this.itemName).setMaxAmount(256); + } } diff --git a/common/src/main/java/common/block/foliage/BlockTallGrass.java b/common/src/main/java/common/block/foliage/BlockTallGrass.java index 963235ba..8bfdf66e 100755 --- a/common/src/main/java/common/block/foliage/BlockTallGrass.java +++ b/common/src/main/java/common/block/foliage/BlockTallGrass.java @@ -6,8 +6,10 @@ import common.entity.npc.EntityNPC; import common.init.Blocks; import common.init.Items; import common.item.Item; +import common.item.ItemColored; import common.item.ItemShears; import common.item.ItemStack; +import common.item.ItemTNT; import common.model.Model; import common.model.ModelProvider; import common.rng.Random; @@ -147,6 +149,10 @@ public class BlockTallGrass extends BlockBush implements IGrowable else return provider.getModel("deadbush").cross(); } + + public Item getItemToRegister() { + return new ItemColored(this, ""); + } public static enum EnumType implements Identifyable { diff --git a/common/src/main/java/common/block/foliage/BlockVine.java b/common/src/main/java/common/block/foliage/BlockVine.java index 3e4b1f23..dacf7836 100755 --- a/common/src/main/java/common/block/foliage/BlockVine.java +++ b/common/src/main/java/common/block/foliage/BlockVine.java @@ -8,6 +8,8 @@ import common.entity.types.EntityLiving; import common.init.Blocks; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemColored; import common.item.ItemShears; import common.item.ItemStack; import common.model.BlockLayer; @@ -591,4 +593,8 @@ public class BlockVine extends Block return model; } } + + public Item getItemToRegister() { + return new ItemColored(this, ""); + } } diff --git a/common/src/main/java/common/block/foliage/BlockWart.java b/common/src/main/java/common/block/foliage/BlockWart.java index d1649800..ada2e453 100755 --- a/common/src/main/java/common/block/foliage/BlockWart.java +++ b/common/src/main/java/common/block/foliage/BlockWart.java @@ -6,6 +6,7 @@ import common.init.Blocks; import common.init.Items; import common.item.CheatTab; import common.item.Item; +import common.item.ItemSeeds; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -132,4 +133,8 @@ public class BlockWart extends BlockBush int age = state.getValue(AGE); return BlockCrops.crop(provider, name + "_" + (age >= 2 ? age - 1 : age)); } + + public Item getItemToRegister() { + return new ItemSeeds(this, Blocks.soul_sand).setDisplay("Seelenwarze").setPotionEffect("+4").setMaxAmount(128); + } } diff --git a/common/src/main/java/common/block/liquid/BlockLiquid.java b/common/src/main/java/common/block/liquid/BlockLiquid.java index 581408a4..7ba18f33 100755 --- a/common/src/main/java/common/block/liquid/BlockLiquid.java +++ b/common/src/main/java/common/block/liquid/BlockLiquid.java @@ -403,4 +403,8 @@ public abstract class BlockLiquid extends Block { return true; } + + public Item getItemToRegister() { + return null; + } } diff --git a/common/src/main/java/common/block/natural/BlockFire.java b/common/src/main/java/common/block/natural/BlockFire.java index 5d2c4833..79afea31 100755 --- a/common/src/main/java/common/block/natural/BlockFire.java +++ b/common/src/main/java/common/block/natural/BlockFire.java @@ -6,6 +6,7 @@ import common.block.Block; import common.block.Material; import common.init.Blocks; import common.init.SoundEvent; +import common.item.Item; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -1151,4 +1152,8 @@ public class BlockFire extends Block public boolean canExtinguish() { return true; } + + public Item getItemToRegister() { + return null; + } } diff --git a/common/src/main/java/common/block/natural/BlockMetalOre.java b/common/src/main/java/common/block/natural/BlockMetalOre.java new file mode 100644 index 00000000..fef681a9 --- /dev/null +++ b/common/src/main/java/common/block/natural/BlockMetalOre.java @@ -0,0 +1,21 @@ +package common.block.natural; + +import common.block.SoundType; +import common.init.MetalType; +import common.item.Item; +import common.item.ItemMetalBlock; + +public class BlockMetalOre extends BlockOre { + private final MetalType metal; + + public BlockMetalOre(MetalType metal) { + this.metal = metal; + this.setStepSound(SoundType.STONE); + this.setLightLevel(metal.radioactivity > 0.0F ? 0.25F : 0.0F); + this.setRadiation(metal.radioactivity * 0.5f); + } + + public Item getItemToRegister() { + return new ItemMetalBlock(this, this.metal, true); + } +} diff --git a/common/src/main/java/common/block/natural/BlockRedstoneOre.java b/common/src/main/java/common/block/natural/BlockRedstoneOre.java index f42bba24..533845ad 100755 --- a/common/src/main/java/common/block/natural/BlockRedstoneOre.java +++ b/common/src/main/java/common/block/natural/BlockRedstoneOre.java @@ -194,4 +194,8 @@ public class BlockRedstoneOre extends Block public Model getModel(ModelProvider provider, String name, State state) { return provider.getModel("redstone_ore").add().all(); } + + public Item getItemToRegister() { + return this.isOn ? null : super.getItemToRegister(); + } } diff --git a/common/src/main/java/common/block/natural/BlockSnow.java b/common/src/main/java/common/block/natural/BlockSnow.java index f123225c..a5dada9b 100755 --- a/common/src/main/java/common/block/natural/BlockSnow.java +++ b/common/src/main/java/common/block/natural/BlockSnow.java @@ -7,6 +7,8 @@ import common.init.Blocks; import common.init.Items; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemSnow; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -188,4 +190,8 @@ public class BlockSnow extends Block return height == 16 ? provider.getModel("snow").add().all() : provider.getModel("snow").add(0, 0, 0, 16, height, 16).u().noCull().d().nswe().uv(0, 16 - height, 16, 16); } + + public Item getItemToRegister() { + return new ItemSnow(this); + } } diff --git a/common/src/main/java/common/block/natural/BlockWeb.java b/common/src/main/java/common/block/natural/BlockWeb.java index 4dbaf5d4..245183fb 100755 --- a/common/src/main/java/common/block/natural/BlockWeb.java +++ b/common/src/main/java/common/block/natural/BlockWeb.java @@ -21,6 +21,7 @@ public class BlockWeb extends Block { super(Material.FLUFF); this.setTab(CheatTab.DECORATION); + this.setFlatItemTexture(); } /** diff --git a/common/src/main/java/common/block/tech/BlockBasePressurePlate.java b/common/src/main/java/common/block/tech/BlockBasePressurePlate.java index a920fbe7..c792c8de 100755 --- a/common/src/main/java/common/block/tech/BlockBasePressurePlate.java +++ b/common/src/main/java/common/block/tech/BlockBasePressurePlate.java @@ -6,6 +6,9 @@ import common.block.artificial.BlockFence; import common.entity.Entity; import common.init.SoundEvent; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemPressurePlate; import common.model.Model; import common.model.ModelProvider; import common.rng.Random; @@ -258,6 +261,10 @@ public abstract class BlockBasePressurePlate extends Block .w().uv(1, 15, 15, 16).noCull() .e().uv(1, 15, 15, 16).noCull(); } + + public Item getItemToRegister() { + return new ItemPressurePlate(this); + } public abstract String getTexture(); diff --git a/common/src/main/java/common/block/tech/BlockBrewingStand.java b/common/src/main/java/common/block/tech/BlockBrewingStand.java index eb2280a3..303ea855 100755 --- a/common/src/main/java/common/block/tech/BlockBrewingStand.java +++ b/common/src/main/java/common/block/tech/BlockBrewingStand.java @@ -7,10 +7,13 @@ import common.block.Material; import common.entity.Entity; import common.entity.npc.EntityNPC; import common.entity.types.EntityLiving; +import common.init.Blocks; import common.init.Items; import common.inventory.Container; import common.inventory.InventoryHelper; +import common.item.CheatTab; import common.item.Item; +import common.item.ItemSmallBlock; import common.item.ItemStack; import common.model.BlockLayer; import common.model.Model; @@ -542,4 +545,8 @@ public class BlockBrewingStand extends BlockContainer return brewing_stand_bottles[(state.getValue(HAS_BOTTLE[0]) ? 1 : 0) | (state.getValue(HAS_BOTTLE[1]) ? 2 : 0) | (state.getValue(HAS_BOTTLE[2]) ? 4 : 0)]; } + + public Item getItemToRegister() { + return new ItemSmallBlock(this).setDisplay("Braustand").setTab(CheatTab.TECHNOLOGY); + } } diff --git a/common/src/main/java/common/block/tech/BlockButton.java b/common/src/main/java/common/block/tech/BlockButton.java index a170d068..45b94160 100755 --- a/common/src/main/java/common/block/tech/BlockButton.java +++ b/common/src/main/java/common/block/tech/BlockButton.java @@ -12,6 +12,9 @@ import common.entity.projectile.EntityArrow; import common.entity.types.EntityLiving; import common.init.SoundEvent; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemButton; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -435,4 +438,8 @@ public class BlockButton extends Block implements Directional .ns().uv(5, pressed ? 15 : 14, 11, 16).noCull().we().uv(6, pressed ? 15 : 14, 10, 16).noCull() .rotate(getRotation(state.getValue(FACING))); } + + public Item getItemToRegister() { + return new ItemButton(this); + } } diff --git a/common/src/main/java/common/block/tech/BlockCauldron.java b/common/src/main/java/common/block/tech/BlockCauldron.java index 4672cd56..a412266e 100755 --- a/common/src/main/java/common/block/tech/BlockCauldron.java +++ b/common/src/main/java/common/block/tech/BlockCauldron.java @@ -7,10 +7,13 @@ import common.block.Material; import common.entity.Entity; import common.entity.item.EntityItem; import common.entity.npc.EntityNPC; +import common.init.Blocks; import common.init.Items; +import common.item.CheatTab; import common.item.Item; import common.item.ItemArmor; import common.item.ItemBanner; +import common.item.ItemSmallBlock; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -669,4 +672,8 @@ public class BlockCauldron extends Block public Model getModel(ModelProvider provider, String name, State state) { return cauldron_levels[state.getValue(LEVEL)]; } + + public Item getItemToRegister() { + return new ItemSmallBlock(this).setDisplay("Kessel").setTab(CheatTab.TECHNOLOGY); + } } diff --git a/common/src/main/java/common/block/tech/BlockChest.java b/common/src/main/java/common/block/tech/BlockChest.java index e942df78..609d3653 100755 --- a/common/src/main/java/common/block/tech/BlockChest.java +++ b/common/src/main/java/common/block/tech/BlockChest.java @@ -16,6 +16,9 @@ import common.inventory.IInventory; import common.inventory.InventoryHelper; import common.inventory.InventoryLargeChest; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemChest; import common.item.ItemStack; import common.packet.SPacketSoundEffect; import common.properties.Property; @@ -638,4 +641,8 @@ public class BlockChest extends BlockContainer implements Rotatable public String getFallbackTexture() { return "oak_planks"; } + + public Item getItemToRegister() { + return new ItemChest(this); + } } diff --git a/common/src/main/java/common/block/tech/BlockDaylightDetector.java b/common/src/main/java/common/block/tech/BlockDaylightDetector.java index 82ee1bcc..159e5cd6 100755 --- a/common/src/main/java/common/block/tech/BlockDaylightDetector.java +++ b/common/src/main/java/common/block/tech/BlockDaylightDetector.java @@ -191,4 +191,8 @@ public class BlockDaylightDetector extends BlockContainer .w("daylight_detector_side").uv(0, 10, 16, 16) .e("daylight_detector_side").uv(0, 10, 16, 16); } + + public Item getItemToRegister() { + return this.inverted ? null : super.getItemToRegister(); + } } diff --git a/common/src/main/java/common/block/tech/BlockDispenser.java b/common/src/main/java/common/block/tech/BlockDispenser.java index 3e5eb74d..e6f2e559 100755 --- a/common/src/main/java/common/block/tech/BlockDispenser.java +++ b/common/src/main/java/common/block/tech/BlockDispenser.java @@ -10,6 +10,8 @@ import common.entity.types.EntityLiving; import common.inventory.Container; import common.inventory.InventoryHelper; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -319,4 +321,8 @@ public class BlockDispenser extends BlockContainer implements Directional public Property[] getIgnoredProperties() { return new Property[] {TRIGGERED}; } + + public Item getItemToRegister() { + return new ItemBlock(this, 2); + } } diff --git a/common/src/main/java/common/block/tech/BlockHopper.java b/common/src/main/java/common/block/tech/BlockHopper.java index fc9f09b8..4d92132d 100755 --- a/common/src/main/java/common/block/tech/BlockHopper.java +++ b/common/src/main/java/common/block/tech/BlockHopper.java @@ -11,6 +11,8 @@ import common.entity.types.EntityLiving; import common.inventory.Container; import common.inventory.InventoryHelper; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; import common.item.ItemStack; import common.model.BlockLayer; import common.model.Model; @@ -359,4 +361,8 @@ public class BlockHopper extends BlockContainer implements DirectionalDown public Property[] getIgnoredProperties() { return new Property[] {ENABLED}; } + + public Item getItemToRegister() { + return new ItemBlock(this, "hopper", true); + } } diff --git a/common/src/main/java/common/block/tech/BlockLever.java b/common/src/main/java/common/block/tech/BlockLever.java index 91e80f11..0718ac50 100755 --- a/common/src/main/java/common/block/tech/BlockLever.java +++ b/common/src/main/java/common/block/tech/BlockLever.java @@ -6,6 +6,8 @@ import common.entity.npc.EntityNPC; import common.entity.types.EntityLiving; import common.init.SoundEvent; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -315,6 +317,10 @@ public class BlockLever extends Block .e("lever").uv(7, 6, 9, 16).noCull() .rotate(getRotation(state.getValue(FACING))); } + + public Item getItemToRegister() { + return new ItemBlock(this, "lever", false); + } public static enum EnumOrientation implements Identifyable { diff --git a/common/src/main/java/common/block/tech/BlockNuke.java b/common/src/main/java/common/block/tech/BlockNuke.java index 1413eedc..8a1ef03c 100755 --- a/common/src/main/java/common/block/tech/BlockNuke.java +++ b/common/src/main/java/common/block/tech/BlockNuke.java @@ -2,10 +2,13 @@ package common.block.tech; import common.block.Block; import common.block.Material; +import common.color.TextColor; import common.entity.item.EntityNuke; import common.init.Blocks; import common.init.SoundEvent; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; import common.model.Model; import common.model.ModelProvider; import common.util.BlockPos; @@ -73,4 +76,8 @@ public class BlockNuke extends Block public Model getModel(ModelProvider provider, String name, State state) { return provider.getModel("nuke_side").add().nswe().d("nuke_bottom").u("nuke_top"); } + + public Item getItemToRegister() { + return new ItemBlock(this).setColor(TextColor.RED); + } } diff --git a/common/src/main/java/common/block/tech/BlockPistonBase.java b/common/src/main/java/common/block/tech/BlockPistonBase.java index 64f7c830..cbfbef52 100755 --- a/common/src/main/java/common/block/tech/BlockPistonBase.java +++ b/common/src/main/java/common/block/tech/BlockPistonBase.java @@ -13,6 +13,9 @@ import common.entity.types.EntityLiving; import common.init.Blocks; import common.init.SoundEvent; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemPiston; import common.item.ItemStack; import common.model.Model; import common.model.ModelProvider; @@ -726,4 +729,8 @@ public class BlockPistonBase extends Block implements Directional .rotate(ModelRotation.getNorthRot(state.getValue(FACING).getAxis() == Facing.Axis.Y ? state.getValue(FACING).getOpposite() : state.getValue(FACING))); } + + public Item getItemToRegister() { + return new ItemPiston(this); + } } diff --git a/common/src/main/java/common/block/tech/BlockPistonHead.java b/common/src/main/java/common/block/tech/BlockPistonHead.java index 0306e530..f4c0edc8 100755 --- a/common/src/main/java/common/block/tech/BlockPistonHead.java +++ b/common/src/main/java/common/block/tech/BlockPistonHead.java @@ -295,6 +295,10 @@ public class BlockPistonHead extends Block implements Directional .rotate(ModelRotation.getNorthRot(state.getValue(FACING).getAxis() == Facing.Axis.Y ? state.getValue(FACING).getOpposite() : state.getValue(FACING))); } + + public Item getItemToRegister() { + return null; + } public static enum EnumPistonType implements Identifyable { diff --git a/common/src/main/java/common/block/tech/BlockPistonMoving.java b/common/src/main/java/common/block/tech/BlockPistonMoving.java index 3b7b4ccf..e6d78feb 100755 --- a/common/src/main/java/common/block/tech/BlockPistonMoving.java +++ b/common/src/main/java/common/block/tech/BlockPistonMoving.java @@ -310,4 +310,8 @@ public class BlockPistonMoving extends BlockContainer { return new Property[] {FACING, TYPE}; } + + public Item getItemToRegister() { + return null; + } } diff --git a/common/src/main/java/common/block/tech/BlockRailBase.java b/common/src/main/java/common/block/tech/BlockRailBase.java index 0cd20bd4..e35f8cb1 100755 --- a/common/src/main/java/common/block/tech/BlockRailBase.java +++ b/common/src/main/java/common/block/tech/BlockRailBase.java @@ -44,6 +44,7 @@ public abstract class BlockRailBase extends Block this.isPowered = isPowered; this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); this.setTab(CheatTab.TECHNOLOGY); + this.setFlatItemTexture(); } public BoundingBox getCollisionBoundingBox(World worldIn, BlockPos pos, State state) diff --git a/common/src/main/java/common/block/tech/BlockRedstoneComparator.java b/common/src/main/java/common/block/tech/BlockRedstoneComparator.java index 3507eddf..1c8867d1 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneComparator.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneComparator.java @@ -7,7 +7,9 @@ import common.entity.types.EntityLiving; import common.init.Blocks; import common.init.Items; import common.init.SoundEvent; +import common.item.CheatTab; import common.item.Item; +import common.item.ItemSmallBlock; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -438,6 +440,10 @@ public class BlockRedstoneComparator extends BlockRedstoneDiode implements ITile .e("unlit_redstone_torch").uv(7, 6, 9, 8).noCull())) .rotate(ModelRotation.getNorthRot(state.getValue(FACING).getOpposite())); } + + public Item getItemToRegister() { + return this.isRepeaterPowered ? null : new ItemSmallBlock(this).setDisplay("Redstone-Komparator").setTab(CheatTab.TECHNOLOGY); + } public static enum Mode implements Identifyable { diff --git a/common/src/main/java/common/block/tech/BlockRedstoneLight.java b/common/src/main/java/common/block/tech/BlockRedstoneLight.java index dad8d50e..3a793f27 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneLight.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneLight.java @@ -92,4 +92,8 @@ public class BlockRedstoneLight extends Block public boolean isMagnetic() { return true; } + + public Item getItemToRegister() { + return this.isOn ? null : super.getItemToRegister(); + } } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java b/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java index b87d1a9d..78496d01 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneRepeater.java @@ -4,7 +4,9 @@ import common.block.Block; import common.entity.npc.EntityNPC; import common.init.Blocks; import common.init.Items; +import common.item.CheatTab; import common.item.Item; +import common.item.ItemSmallBlock; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; @@ -568,4 +570,8 @@ public class BlockRedstoneRepeater extends BlockRedstoneDiode getModelOff(state.getValue(DELAY)))) .rotate(ModelRotation.getNorthRot(state.getValue(FACING).getOpposite())); } + + public Item getItemToRegister() { + return this.isRepeaterPowered ? null : new ItemSmallBlock(this).setDisplay("Redstone-Verstärker").setTab(CheatTab.TECHNOLOGY); + } } diff --git a/common/src/main/java/common/block/tech/BlockRedstoneTorch.java b/common/src/main/java/common/block/tech/BlockRedstoneTorch.java index 7f73f2b8..4c6693cb 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneTorch.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneTorch.java @@ -223,6 +223,10 @@ public class BlockRedstoneTorch extends BlockTorch public boolean isMagnetic() { return true; } + + public Item getItemToRegister() { + return this.isOn ? super.getItemToRegister() : null; + } static class Toggle { diff --git a/common/src/main/java/common/block/tech/BlockRedstoneWire.java b/common/src/main/java/common/block/tech/BlockRedstoneWire.java index e29e5067..e4c08a8f 100755 --- a/common/src/main/java/common/block/tech/BlockRedstoneWire.java +++ b/common/src/main/java/common/block/tech/BlockRedstoneWire.java @@ -11,11 +11,13 @@ import common.collect.Sets; import common.init.Blocks; import common.init.Items; import common.item.Item; +import common.item.ItemRedstone; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; import common.model.ModelRotation; import common.model.ParticleType; +import common.potion.PotionHelper; import common.properties.Property; import common.properties.PropertyEnum; import common.properties.PropertyInteger; @@ -1026,6 +1028,10 @@ public class BlockRedstoneWire extends Block public Property[] getIgnoredProperties() { return new Property[] {POWER}; } + + public Item getItemToRegister() { + return new ItemRedstone(Blocks.redstone).setDisplay("Redstone").setPotionEffect(PotionHelper.redstoneEffect).setMaxAmount(256); + } static enum EnumAttachPosition implements Identifyable { diff --git a/common/src/main/java/common/block/tech/BlockTNT.java b/common/src/main/java/common/block/tech/BlockTNT.java index 6dd8f680..8160041b 100755 --- a/common/src/main/java/common/block/tech/BlockTNT.java +++ b/common/src/main/java/common/block/tech/BlockTNT.java @@ -11,6 +11,8 @@ import common.init.Items; import common.init.SoundEvent; import common.item.CheatTab; import common.item.Item; +import common.item.ItemBlock; +import common.item.ItemTNT; import common.model.Model; import common.model.ModelProvider; import common.properties.Property; @@ -195,4 +197,8 @@ public class BlockTNT extends Block public void onDestroyedByFire(World world, BlockPos pos, State state) { this.onBlockDestroyedByPlayer(world, pos, state.withProperty(BlockTNT.EXPLODE, Boolean.valueOf(true))); } + + public Item getItemToRegister() { + return new ItemTNT(this); + } } diff --git a/common/src/main/java/common/block/tech/BlockTorch.java b/common/src/main/java/common/block/tech/BlockTorch.java index a9d4150b..016e0468 100755 --- a/common/src/main/java/common/block/tech/BlockTorch.java +++ b/common/src/main/java/common/block/tech/BlockTorch.java @@ -40,6 +40,7 @@ public class BlockTorch extends Block implements DirectionalUp this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.UP)); // this.setTickRandomly(true); this.setTab(CheatTab.TECHNOLOGY); + this.setFlatItemTexture(); } public BoundingBox getCollisionBoundingBox(World worldIn, BlockPos pos, State state) diff --git a/common/src/main/java/common/block/tech/BlockTripWire.java b/common/src/main/java/common/block/tech/BlockTripWire.java index f3b0f707..2a6fe8cb 100755 --- a/common/src/main/java/common/block/tech/BlockTripWire.java +++ b/common/src/main/java/common/block/tech/BlockTripWire.java @@ -8,8 +8,10 @@ import common.entity.Entity; import common.entity.npc.EntityNPC; import common.init.Blocks; import common.init.Items; +import common.item.CheatTab; import common.item.Item; import common.item.ItemShears; +import common.item.ItemSmallBlock; import common.model.BlockLayer; import common.model.Model; import common.model.ModelProvider; @@ -696,4 +698,8 @@ public class BlockTripWire extends Block public Property[] getIgnoredProperties() { return new Property[] {DISARMED, POWERED}; } + + public Item getItemToRegister() { + return new ItemSmallBlock(this).setDisplay("Faden").setTab(CheatTab.TECHNOLOGY).setMaxAmount(1024); + } } diff --git a/common/src/main/java/common/block/tech/BlockTripWireHook.java b/common/src/main/java/common/block/tech/BlockTripWireHook.java index 78214f4f..0eec5d2b 100755 --- a/common/src/main/java/common/block/tech/BlockTripWireHook.java +++ b/common/src/main/java/common/block/tech/BlockTripWireHook.java @@ -7,6 +7,8 @@ import common.entity.types.EntityLiving; import common.init.Blocks; import common.init.SoundEvent; import common.item.CheatTab; +import common.item.Item; +import common.item.ItemBlock; import common.item.ItemStack; import common.model.BlockLayer; import common.model.Model; @@ -588,4 +590,8 @@ public class BlockTripWireHook extends Block implements Rotatable } return model.rotate(ModelRotation.getNorthRot(state.getValue(FACING))); } + + public Item getItemToRegister() { + return new ItemBlock(this, "tripwire_hook", false); + } } diff --git a/common/src/main/java/common/block/tile/BlockBannerHanging.java b/common/src/main/java/common/block/tile/BlockBannerHanging.java index 4e380b7d..6f00c359 100644 --- a/common/src/main/java/common/block/tile/BlockBannerHanging.java +++ b/common/src/main/java/common/block/tile/BlockBannerHanging.java @@ -1,6 +1,7 @@ package common.block.tile; import common.block.Block; +import common.item.Item; import common.properties.Property; import common.util.BlockPos; import common.util.Facing; @@ -79,4 +80,8 @@ public class BlockBannerHanging extends BlockBanner { return new Property[] {FACING}; } + + public Item getItemToRegister() { + return null; + } } \ No newline at end of file diff --git a/common/src/main/java/common/block/tile/BlockBannerStanding.java b/common/src/main/java/common/block/tile/BlockBannerStanding.java index c19ea518..d892b6fc 100644 --- a/common/src/main/java/common/block/tile/BlockBannerStanding.java +++ b/common/src/main/java/common/block/tile/BlockBannerStanding.java @@ -1,6 +1,8 @@ package common.block.tile; import common.block.Block; +import common.item.Item; +import common.item.ItemBanner; import common.properties.Property; import common.util.BlockPos; import common.world.State; @@ -38,4 +40,8 @@ public class BlockBannerStanding extends BlockBanner { return new Property[] {ROTATION}; } + + public Item getItemToRegister() { + return new ItemBanner(this).setDisplay("Banner"); + } } \ No newline at end of file diff --git a/common/src/main/java/common/block/tile/BlockStandingSign.java b/common/src/main/java/common/block/tile/BlockStandingSign.java index d80ee07e..9cd123d1 100755 --- a/common/src/main/java/common/block/tile/BlockStandingSign.java +++ b/common/src/main/java/common/block/tile/BlockStandingSign.java @@ -1,6 +1,9 @@ package common.block.tile; import common.block.Block; +import common.init.Blocks; +import common.item.Item; +import common.item.ItemSign; import common.properties.Property; import common.properties.PropertyInteger; import common.util.BlockPos; @@ -50,4 +53,8 @@ public class BlockStandingSign extends BlockSign { return new Property[] {ROTATION}; } + + public Item getItemToRegister() { + return new ItemSign(this).setDisplay("Schild"); + } } diff --git a/common/src/main/java/common/block/tile/BlockWallSign.java b/common/src/main/java/common/block/tile/BlockWallSign.java index 77dd5eb8..fed3760b 100755 --- a/common/src/main/java/common/block/tile/BlockWallSign.java +++ b/common/src/main/java/common/block/tile/BlockWallSign.java @@ -2,6 +2,7 @@ package common.block.tile; import common.block.Block; import common.block.Rotatable; +import common.item.Item; import common.properties.Property; import common.util.BlockPos; import common.util.Facing; @@ -89,4 +90,8 @@ public class BlockWallSign extends BlockSign implements Rotatable { return new Property[] {FACING}; } + + public Item getItemToRegister() { + return null; + } } diff --git a/common/src/main/java/common/init/BlockRegistry.java b/common/src/main/java/common/init/BlockRegistry.java index 407ea2e2..ae90daa3 100755 --- a/common/src/main/java/common/init/BlockRegistry.java +++ b/common/src/main/java/common/init/BlockRegistry.java @@ -15,6 +15,7 @@ import common.block.artificial.BlockFlowerPot; import common.block.artificial.BlockGlass; import common.block.artificial.BlockHay; import common.block.artificial.BlockLadder; +import common.block.artificial.BlockMetalBlock; import common.block.artificial.BlockPane; import common.block.artificial.BlockPortal; import common.block.artificial.BlockPortalFrame; @@ -71,6 +72,7 @@ import common.block.natural.BlockGravel; import common.block.natural.BlockHardenedClay; import common.block.natural.BlockHellRock; import common.block.natural.BlockIce; +import common.block.natural.BlockMetalOre; import common.block.natural.BlockObsidian; import common.block.natural.BlockOre; import common.block.natural.BlockPackedIce; @@ -296,9 +298,8 @@ public abstract class BlockRegistry { .setStepSound(SoundType.STONE).setDisplay("Redstone-Erz").setMiningLevel(2)); for(MetalType metal : MetalType.values()) { // String loc = metal.name.substring(0, 1).toUpperCase() + metal.name.substring(1); - registerBlock(metal.name + "_ore", (new BlockOre()).setHardness(3.0F).setResistance(5.0F).setStepSound(SoundType.STONE) - .setDisplay(metal.display + "erz").setMiningLevel(1).setLightLevel(metal.radioactivity > 0.0F ? 0.25F : 0.0F) - .setRadiation(metal.radioactivity * 0.5f)); + registerBlock(metal.name + "_ore", (new BlockMetalOre(metal)).setHardness(3.0F).setResistance(5.0F) + .setDisplay(metal.display + "erz").setMiningLevel(1)); } for(OreType ore : OreType.values()) { // String loc = ore.name.substring(0, 1).toUpperCase() + ore.name.substring(1); @@ -360,10 +361,10 @@ public abstract class BlockRegistry { Block pumpkin = (new BlockPumpkin()).setHardness(1.0F).setStepSound(SoundType.WOOD).setDisplay("Kürbis"); registerBlock("pumpkin", pumpkin); - registerBlock("pumpkin_stem", (new BlockStem(pumpkin)).setHardness(0.0F).setStepSound(SoundType.WOOD).setDisplay("Kürbisstamm")); + registerBlock("pumpkin_stem", (new BlockStem(pumpkin, "Kürbiskerne")).setHardness(0.0F).setStepSound(SoundType.WOOD).setDisplay("Kürbisstamm")); Block melon = (new BlockMelon()).setHardness(1.0F).setStepSound(SoundType.WOOD).setDisplay("Melone"); registerBlock("melon_block", melon); - registerBlock("melon_stem", (new BlockStem(melon)).setHardness(0.0F).setStepSound(SoundType.WOOD).setDisplay("Melonenstamm")); + registerBlock("melon_stem", (new BlockStem(melon, "Melonenkerne")).setHardness(0.0F).setStepSound(SoundType.WOOD).setDisplay("Melonenstamm")); registerBlock("dry_leaves", (new BlockDryLeaves()).setDisplay("Vertrocknetes Laub")); @@ -452,9 +453,8 @@ public abstract class BlockRegistry { for(MetalType metal : MetalType.values()) { // String loc = metal.name.substring(0, 1).toUpperCase() + metal.name.substring(1); - registerBlock(metal.name + "_block", (new Block(Material.SOLID)).setHardness(5.0F).setResistance(10.0F).setStepSound(SoundType.STONE) - .setDisplay(metal.display + "block").setTab(CheatTab.GEMS).setMiningLevel(1) - .setLightLevel(metal.radioactivity > 0.0F ? 0.25F : 0.0F).setRadiation(metal.radioactivity * 2.0f)); + registerBlock(metal.name + "_block", (new BlockMetalBlock(metal)).setHardness(5.0F).setResistance(10.0F) + .setDisplay(metal.display + "block").setMiningLevel(1)); } for(OreType ore : OreType.values()) { // String loc = ore.name.substring(0, 1).toUpperCase() + ore.name.substring(1); diff --git a/common/src/main/java/common/init/ItemRegistry.java b/common/src/main/java/common/init/ItemRegistry.java index 65ffea8c..d590685c 100755 --- a/common/src/main/java/common/init/ItemRegistry.java +++ b/common/src/main/java/common/init/ItemRegistry.java @@ -1,28 +1,13 @@ package common.init; import java.util.Map; -import java.util.Set; import common.attributes.UsageSlot; import common.block.Block; -import common.block.artificial.BlockBed; -import common.block.artificial.BlockDoor; -import common.block.artificial.BlockFence; -import common.block.artificial.BlockSlab; -import common.block.artificial.BlockStainedGlassPane; -import common.block.artificial.BlockWall; -import common.block.foliage.BlockDoublePlant; -import common.block.foliage.BlockFlower; -import common.block.foliage.BlockLeaves; -import common.block.foliage.BlockSapling; -import common.block.foliage.BlockTallGrass; import common.block.liquid.BlockDynamicLiquid; import common.block.liquid.BlockLiquid; import common.block.liquid.BlockStaticLiquid; import common.block.natural.BlockOre; -import common.block.tech.BlockButton; -import common.block.tech.BlockTNT; import common.collect.Maps; -import common.collect.Sets; import common.color.DyeColor; import common.color.TextColor; import common.entity.item.EntityCart; @@ -36,8 +21,6 @@ import common.item.ItemArmor; import common.item.ItemArrow; import common.item.ItemAxe; import common.item.ItemBanHammer; -import common.item.ItemBanner; -import common.item.ItemBed; import common.item.ItemBlock; import common.item.ItemBoat; import common.item.ItemBoltgun; @@ -45,15 +28,10 @@ import common.item.ItemBook; import common.item.ItemBow; import common.item.ItemBucket; import common.item.ItemBucketMilk; -import common.item.ItemButton; import common.item.ItemCamera; import common.item.ItemCarrotOnAStick; import common.item.ItemChargedOrb; -import common.item.ItemChest; -import common.item.ItemColored; import common.item.ItemDie; -import common.item.ItemDoor; -import common.item.ItemDoublePlant; import common.item.ItemDye; import common.item.ItemDynamite; import common.item.ItemEditWand; @@ -62,7 +40,6 @@ import common.item.ItemEgg; import common.item.ItemEnchantedBook; import common.item.ItemExpBottle; import common.item.ItemExterminator; -import common.item.ItemFence; import common.item.ItemFireball; import common.item.ItemFirework; import common.item.ItemFireworkCharge; @@ -78,32 +55,21 @@ import common.item.ItemInfoWand; import common.item.ItemKey; import common.item.ItemLead; import common.item.ItemLightning; -import common.item.ItemLilyPad; import common.item.ItemMagnet; import common.item.ItemMagnetic; import common.item.ItemMetal; -import common.item.ItemMetalBlock; import common.item.ItemMinecart; import common.item.ItemMonsterPlacer; import common.item.ItemNameTag; import common.item.ItemNpcSpawner; import common.item.ItemNugget; import common.item.ItemPickaxe; -import common.item.ItemPiston; import common.item.ItemPotion; -import common.item.ItemPressurePlate; import common.item.ItemRecord; -import common.item.ItemRedstone; -import common.item.ItemSmallBlock; import common.item.ItemRod; import common.item.ItemSaddle; -import common.item.ItemSeedFood; -import common.item.ItemSeeds; import common.item.ItemShears; -import common.item.ItemSign; -import common.item.ItemSlab; import common.item.ItemSmall; -import common.item.ItemSnow; import common.item.ItemSnowball; import common.item.ItemSoup; import common.item.ItemSpaceNavigator; @@ -111,9 +77,7 @@ import common.item.ItemShovel; import common.item.ItemStack; import common.item.ItemStick; import common.item.ItemSword; -import common.item.ItemTNT; import common.item.ItemTiny; -import common.item.ItemWall; import common.item.ItemWeatherToken; import common.log.Log; import common.potion.Potion; @@ -126,7 +90,6 @@ import common.world.Weather; public abstract class ItemRegistry { public static final Mapping REGISTRY = new Mapping(); public static final Map BLOCKMAP = Maps.newHashMap(); - public static final Set SPECIALIZED = Sets.newHashSet(); private static int nextItemId = 4096; @@ -159,41 +122,11 @@ public abstract class ItemRegistry { return new ItemStack(item); } - private static ItemBlock registerFlat(Block block) { - ItemBlock item = new ItemBlock(block, ""); - registerBlock(block, item); - return item; - } - - private static ItemBlock registerFlat(Block block, String texture) { - ItemBlock item = new ItemBlock(block, texture.indexOf('/') == -1 ? "blocks/" + texture : texture); - registerBlock(block, item); - return item; - } - - private static void registerBlock(Block block, ItemBlock item) { - REGISTRY.register(BlockRegistry.getIdFromBlock(block), BlockRegistry.getNameFromBlock(block), item); - BLOCKMAP.put(block, item); - } - - private static void registerSpecial(Block block) { - if(BLOCKMAP.containsKey(block) || SPECIALIZED.contains(block)) - throw new IllegalArgumentException("Block " + BlockRegistry.getNameFromBlock(block) + " ist bereits registriert"); - SPECIALIZED.add(block); - } - private static void registerItem(String name, Item item) { if(item.getBlock() != null) throw new IllegalArgumentException("Item " + name + " darf keinen Block besitzen"); REGISTRY.register(nextItemId++, name, item); } - - private static void registerItem(Item item) { - if(item.getBlock() == null) - throw new IllegalArgumentException("Unbenanntes Item benötigt einen Block"); - registerSpecial(item.getBlock()); - REGISTRY.register(BlockRegistry.getIdFromBlock(item.getBlock()), BlockRegistry.getNameFromBlock(item.getBlock()), item); - } private static void registerTools(ToolMaterial material, String name, String prefix) { if(material.hasTools()) { @@ -218,78 +151,17 @@ public abstract class ItemRegistry { } static void register() { - registerBlock(Blocks.grass, new ItemColored(Blocks.grass)); - registerBlock(Blocks.dispenser, new ItemBlock(Blocks.dispenser, 2)); - registerBlock(Blocks.dropper, new ItemBlock(Blocks.dropper, 2)); - registerBlock(Blocks.sticky_piston, new ItemPiston(Blocks.sticky_piston)); - registerBlock(Blocks.piston, new ItemPiston(Blocks.piston)); - registerBlock(Blocks.nuke, new ItemBlock(Blocks.nuke).setColor(TextColor.RED)); - registerBlock(Blocks.chest, new ItemChest(Blocks.chest)); - registerBlock(Blocks.stone_pressure_plate, new ItemPressurePlate(Blocks.stone_pressure_plate)); - registerBlock(Blocks.wooden_pressure_plate, new ItemPressurePlate(Blocks.wooden_pressure_plate)); - registerBlock(Blocks.snow_layer, new ItemSnow(Blocks.snow_layer)); - registerBlock(Blocks.brown_mushroom_block, new ItemBlock(Blocks.brown_mushroom_block, 14)); - registerBlock(Blocks.red_mushroom_block, new ItemBlock(Blocks.red_mushroom_block, 14)); - registerBlock(Blocks.vine, new ItemColored(Blocks.vine, "")); - registerBlock(Blocks.waterlily, new ItemLilyPad(Blocks.waterlily)); - registerBlock(Blocks.trapped_chest, new ItemChest(Blocks.trapped_chest)); - registerBlock(Blocks.light_weighted_pressure_plate, new ItemPressurePlate(Blocks.light_weighted_pressure_plate)); - registerBlock(Blocks.heavy_weighted_pressure_plate, new ItemPressurePlate(Blocks.heavy_weighted_pressure_plate)); + for(Block block : BlockRegistry.REGISTRY) { + Item item = block.getItemToRegister(); + if(item == null) + continue; + if(item.getBlock() != block) + throw new IllegalArgumentException("Gegenstand für Block " + BlockRegistry.getNameFromBlock(block) + " stimmt nicht überein"); + REGISTRY.register(BlockRegistry.getIdFromBlock(block), BlockRegistry.getNameFromBlock(block), item); + if(item instanceof ItemBlock iblock) + BLOCKMAP.put(block, iblock); + } - for(BlockTallGrass tallgrass : BlockTallGrass.BUSHES) { - registerBlock(tallgrass, (new ItemColored(tallgrass, ""))); - } - for(BlockDoublePlant plant : BlockDoublePlant.PLANTS) { - registerBlock(plant, new ItemDoublePlant(plant)); - } - - for(BlockWall wall : BlockWall.WALLS) { - registerBlock(wall, new ItemWall(wall)); - } - for(BlockLeaves leaves : BlockLeaves.LEAVES) { - registerBlock(leaves, new ItemColored(leaves, 8)); - } - for(BlockSlab slab : BlockSlab.SLABS) { - registerBlock(slab, new ItemSlab(slab)); - } - for(BlockFence fence : BlockFence.FENCES) { - registerBlock(fence, new ItemFence(fence)); - } - for(BlockButton button : BlockButton.BUTTONS) { - registerBlock(button, new ItemButton(button)); - } - for(BlockTNT tnt : BlockTNT.TNTS) { - registerBlock(tnt, new ItemTNT(tnt)); - } - - for(BlockFlower flower : BlockFlower.FLOWERS) { - registerFlat(flower); - } - for(BlockStainedGlassPane pane : BlockStainedGlassPane.PANES) { - registerFlat(pane); - } - for(BlockSapling sapling : BlockSapling.SAPLINGS) { - registerFlat(sapling); - } - registerFlat(Blocks.golden_rail); - registerFlat(Blocks.detector_rail); - registerFlat(Blocks.web); - registerFlat(Blocks.deadbush); - registerFlat(Blocks.brown_mushroom); - registerFlat(Blocks.red_mushroom); - registerFlat(Blocks.torch); - registerFlat(Blocks.ladder); - registerFlat(Blocks.rail); - registerFlat(Blocks.redstone_torch); - registerFlat(Blocks.iron_bars); - registerFlat(Blocks.activator_rail); - registerFlat(Blocks.blue_mushroom); - registerFlat(Blocks.lever, "lever"); - registerFlat(Blocks.glass_pane, "glass"); - registerFlat(Blocks.tripwire_hook, "tripwire_hook"); - registerFlat(Blocks.hopper, "items/hopper"); - - Item bucket = (new ItemBucket(null, false)).setDisplay("Eimer"); registerItem("bucket", bucket); for(Pair liquid : BlockLiquid.LIQUIDS) { @@ -352,10 +224,8 @@ public abstract class ItemRegistry { registerItem("stick", (new ItemStick()).setDisplay("Stock").setTab(CheatTab.MATERIALS).setMaxAmount(256)); registerItem("bowl", (new ItemSmall()).setDisplay("Schüssel").setTab(CheatTab.MISC)); registerItem("mushroom_stew", (new ItemSoup(6)).setDisplay("Pilzsuppe")); - registerItem((new ItemSmallBlock(Blocks.string)).setDisplay("Faden").setTab(CheatTab.TECHNOLOGY).setMaxAmount(1024)); registerItem("feather", (new Item()).setDisplay("Feder").setTab(CheatTab.MATERIALS).setMaxAmount(512)); registerItem("gunpowder", (new Item()).setDisplay("Schwarzpulver").setPotionEffect(PotionHelper.gunpowderEffect).setTab(CheatTab.MATERIALS).setMaxAmount(256)); - registerItem((new ItemSeeds(Blocks.wheat, Blocks.farmland)).setDisplay("Weizenkörner").setMaxAmount(256)); registerItem("wheats", (new Item()).setDisplay("Weizen").setTab(CheatTab.MATERIALS).setMaxAmount(128)); registerItem("bread", (new ItemFood(5, false)).setDisplay("Brot")); registerItem("flint", (new Item()).setDisplay("Feuerstein").setTab(CheatTab.MATERIALS).setMaxAmount(128)); @@ -365,14 +235,11 @@ public abstract class ItemRegistry { .setDisplay("Goldener Apfel")); registerItem("charged_apple", (new ItemAppleGold(4, true)).setPotionEffect(Potion.REGENERATION, 5, 1, 1.0F) .setDisplay("Geladener Apfel")); - registerItem((new ItemSign()).setDisplay("Schild")); registerItem("saddle", (new ItemSaddle()).setDisplay("Sattel")); - registerItem((new ItemRedstone()).setDisplay("Redstone").setPotionEffect(PotionHelper.redstoneEffect).setMaxAmount(256)); registerItem("snowball", (new ItemSnowball()).setDisplay("Schneeball").setMaxAmount(128)); registerItem("leather", (new Item()).setDisplay("Leder").setTab(CheatTab.MATERIALS)); registerItem("brick", (new Item()).setDisplay("Ziegel").setTab(CheatTab.MATERIALS)); registerItem("clay_ball", (new Item()).setDisplay("Ton").setTab(CheatTab.MATERIALS).setMaxAmount(128)); - registerItem((new ItemSmallBlock(Blocks.reeds)).setDisplay("Zuckerrohr").setTab(CheatTab.PLANTS).setMaxAmount(128)); registerItem("paper", (new Item()).setDisplay("Papier").setTab(CheatTab.MATERIALS).setMaxAmount(256)); registerItem("book", (new ItemBook()).setDisplay("Buch").setTab(CheatTab.MISC)); registerItem("slime_ball", (new Item()).setDisplay("Schleimball").setTab(CheatTab.MATERIALS).setMaxAmount(128)); @@ -396,12 +263,8 @@ public abstract class ItemRegistry { } registerItem("bone", (new ItemStick()).setDisplay("Knochen").setTab(CheatTab.MATERIALS).setMaxAmount(128)); registerItem("sugar", (new Item()).setDisplay("Zucker").setPotionEffect(PotionHelper.sugarEffect).setTab(CheatTab.MATERIALS).setMaxAmount(512)); - registerItem((new ItemSmallBlock(Blocks.cake)).setMaxAmount(1).setDisplay("Kuchen").setTab(CheatTab.DECORATION)); - registerItem((new ItemSmallBlock(Blocks.repeater)).setDisplay("Redstone-Verstärker").setTab(CheatTab.TECHNOLOGY)); registerItem("cookie", (new ItemFood(2, false)).setDisplay("Keks").setMaxAmount(128)); registerItem("melon", (new ItemFood(2, false)).setDisplay("Melone")); - registerItem((new ItemSeeds(Blocks.pumpkin_stem, Blocks.farmland)).setDisplay("Kürbiskerne").setMaxAmount(256)); - registerItem((new ItemSeeds(Blocks.melon_stem, Blocks.farmland)).setDisplay("Melonenkerne").setMaxAmount(256)); registerItem("beef", (new ItemFood(3, true)).setDisplay("Rohes Rindfleisch")); registerItem("cooked_beef", (new ItemFood(8, true)).setDisplay("Steak")); registerItem("chicken", (new ItemFood(2, true)).setDisplay("Rohes Hühnchen")); @@ -411,7 +274,6 @@ public abstract class ItemRegistry { registerItem("blaze_rod", (new ItemRod()).setDisplay("Lohenrute").setTab(CheatTab.MATERIALS).setMaxAmount(256)); registerItem("ghast_tear", (new ItemTiny()).setDisplay("Ghastträne").setPotionEffect(PotionHelper.ghastTearEffect).setTab(CheatTab.MATERIALS).setMaxAmount(256)); registerItem("gold_nugget", (new ItemNugget()).setDisplay("Goldnugget").setTab(CheatTab.METALS).setMaxAmount(256)); - registerItem((new ItemSeeds(Blocks.soul_wart, Blocks.soul_sand)).setDisplay("Seelenwarze").setPotionEffect("+4").setMaxAmount(128)); for(int data : ItemPotion.getValidDataValues()) { ItemPotion potion = new ItemPotion(data); registerItem(ItemPotion.getPotionName(potion), potion.setDisplay("Trank")); @@ -424,8 +286,6 @@ public abstract class ItemRegistry { registerItem("blaze_powder", (new Item()).setDisplay("Lohenstaub").setPotionEffect(PotionHelper.blazePowderEffect) .setTab(CheatTab.MATERIALS).setMaxAmount(256)); registerItem("magma_cream", (new Item()).setDisplay("Magmacreme").setPotionEffect(PotionHelper.magmaCreamEffect).setTab(CheatTab.MATERIALS).setMaxAmount(128)); - registerItem((new ItemSmallBlock(Blocks.brewing_stand)).setDisplay("Braustand").setTab(CheatTab.TECHNOLOGY)); - registerItem((new ItemSmallBlock(Blocks.cauldron)).setDisplay("Kessel").setTab(CheatTab.TECHNOLOGY)); registerItem("charged_orb", (new ItemChargedOrb()).setDisplay("Geladene Kugel")); registerItem("speckled_melon", (new Item()).setDisplay("Glitzernde Melone").setPotionEffect(PotionHelper.speckledMelonEffect) .setTab(CheatTab.MISC)); @@ -435,21 +295,16 @@ public abstract class ItemRegistry { registerItem("written_book", (new Item()).setDisplay("Beschriebenes Buch").setTab(CheatTab.MISC)); Item emerald = (new Item()).setDisplay("Smaragd").setTab(CheatTab.METALS); registerItem("emerald", emerald); - registerItem((new ItemSmallBlock(Blocks.flowerpot)).setDisplay("Blumentopf").setTab(CheatTab.DECORATION)); - registerItem((new ItemSeedFood(3, Blocks.carrot, Blocks.farmland)).setDisplay("Karotte").setMaxAmount(128)); - registerItem((new ItemSeedFood(1, Blocks.potato, Blocks.farmland)).setDisplay("Kartoffel").setMaxAmount(128)); registerItem("baked_potato", (new ItemFood(5, false)).setDisplay("Ofenkartoffel").setMaxAmount(128)); registerItem("poisonous_potato", (new ItemFood(2, false)).setPotionEffect(Potion.POISON, 5, 0, 0.6F).setDisplay("Giftige Kartoffel").setMaxAmount(128)); registerItem("golden_carrot", (new ItemFood(6, false)).setDisplay("Goldene Karotte") .setPotionEffect(PotionHelper.goldenCarrotEffect).setTab(CheatTab.MISC)); - registerItem((new ItemSmallBlock(Blocks.skull)).setDisplay("Schädel").setTab(CheatTab.DECORATION)); registerItem("carrot_on_a_stick", (new ItemCarrotOnAStick()).setDisplay("Karottenrute")); registerItem("charge_crystal", (new ItemEffect()).setDisplay("Energiekristall").setTab(CheatTab.MISC).setColor(TextColor.DMAGENTA)); registerItem("pumpkin_pie", (new ItemFood(8, false)).setDisplay("Kürbiskuchen").setTab(CheatTab.MISC)); registerItem("fireworks", (new ItemFirework()).setDisplay("Feuerwerksrakete")); registerItem("firework_charge", (new ItemFireworkCharge()).setDisplay("Feuerwerksstern").setTab(CheatTab.MATERIALS)); registerItem("enchanted_book", (new ItemEnchantedBook()).setMaxAmount(1).setDisplay("Verzaubertes Buch").setTab(CheatTab.MAGIC)); - registerItem((new ItemSmallBlock(Blocks.comparator)).setDisplay("Redstone-Komparator").setTab(CheatTab.TECHNOLOGY)); registerItem("bloodbrick", (new Item()).setDisplay("Blutroter Ziegel").setTab(CheatTab.MATERIALS)); registerItem("blackbrick", (new Item()).setDisplay("Schwarzer Ziegel").setTab(CheatTab.MATERIALS)); Item quartz = (new Item()).setDisplay("Quarz").setTab(CheatTab.METALS); @@ -458,7 +313,6 @@ public abstract class ItemRegistry { registerItem("black_quartz", bquartz); registerItem("lead", (new ItemLead()).setDisplay("Leine").setMaxAmount(128)); registerItem("name_tag", (new ItemNameTag()).setDisplay("Namensschild")); - registerItem((new ItemBanner()).setDisplay("Banner")); for(int z = 0; z < ItemDynamite.DYNAMITE.length; z++) { registerItem("dynamite" + (z == 0 ? "" : ("_" + z)), (new ItemDynamite(z)).setDisplay("Dynamit" + Util.getTierSuffix(z)).setColor(TextColor.RED)); } @@ -472,12 +326,6 @@ public abstract class ItemRegistry { registerTools(ore.material, ore.name, ore.display); } for(MetalType metal : MetalType.values()) { - Block oreBlock = BlockRegistry.getRegisteredBlock(metal.name + "_ore"); - ItemBlock ore = new ItemMetalBlock(oreBlock, metal, true); - registerBlock(oreBlock, ore); - Block fullBlock = BlockRegistry.getRegisteredBlock(metal.name + "_block"); - ItemBlock block = new ItemMetalBlock(fullBlock, metal, false); - registerBlock(fullBlock, block); if(metal.isPowder) { Item itm = (new ItemMetal(metal)).setDisplay(metal.display + "pulver").setTab(CheatTab.METALS); registerItem(metal.name + "_powder", itm); @@ -494,12 +342,6 @@ public abstract class ItemRegistry { for(ToolType tool : ToolType.values()) { registerTools(tool.material, tool.name, tool.display); } - for(BlockDoor door : BlockDoor.DOORS) { - registerItem(new ItemDoor(door)); - } - for(DyeColor color : BlockBed.COLORS) { - registerItem(new ItemBed((BlockBed)BlockRegistry.getRegisteredBlock(color.getName() + "_bed")).setMaxAmount(1).setDisplay(color.getSubject(0) + " Bett")); - } registerItem("record_13", (new ItemRecord()).setDisplay("Protokoll #1 - 13 Tage ohne Kaffee")); registerItem("record_cat", (new ItemRecord()).setDisplay("Protokoll #2 - Versuchskatzen")); @@ -522,35 +364,6 @@ public abstract class ItemRegistry { ((BlockOre)BlockRegistry.getRegisteredBlock("quartz_ore")).setDropItem(new ItemStack(quartz), 2); ((BlockOre)BlockRegistry.getRegisteredBlock("black_quartz_ore")).setDropItem(new ItemStack(bquartz), 3); - - for(Pair liquid : BlockLiquid.LIQUIDS) { - registerSpecial(liquid.second()); - registerSpecial(liquid.first()); - } - registerSpecial(Blocks.air); - registerSpecial(Blocks.cocoa); - registerSpecial(Blocks.fire); - registerSpecial(Blocks.soul_fire); - registerSpecial(Blocks.black_fire); - registerSpecial(Blocks.portal); - registerSpecial(Blocks.floor_portal); - registerSpecial(Blocks.wall_sign); - registerSpecial(Blocks.wall_banner); - registerSpecial(Blocks.piston_head); - registerSpecial(Blocks.piston_extension); - registerSpecial(Blocks.lit_redstone_ore); - registerSpecial(Blocks.lit_redstone_lamp); - registerSpecial(Blocks.unlit_redstone_torch); - registerSpecial(Blocks.powered_repeater); - registerSpecial(Blocks.powered_comparator); - registerSpecial(Blocks.daylight_detector_inverted); - - for(Block block : BlockRegistry.REGISTRY) { - if(!BLOCKMAP.containsKey(block) && !SPECIALIZED.contains(block)) - registerBlock(block, new ItemBlock(block)); -// Log.info("Block " + BlockRegistry.getNameFromBlock(block) + " hat kein Item"); - } - REGISTRY.finish(); Log.SYSTEM.debug("%d Gegenstände registriert", nextItemId - 4096); diff --git a/common/src/main/java/common/init/Items.java b/common/src/main/java/common/init/Items.java index caa61145..def067d4 100755 --- a/common/src/main/java/common/init/Items.java +++ b/common/src/main/java/common/init/Items.java @@ -310,19 +310,6 @@ public abstract class Items { public static final ItemBlock floor_tiles_red = get("floor_tiles_red"); public static final ItemBlock floor_tiles_white = get("floor_tiles_white"); public static final ItemSmallBlock flowerpot = get("flowerpot"); - public static final ItemBlock flowerpot_allium = get("flowerpot_allium"); - public static final ItemBlock flowerpot_black_lotus = get("flowerpot_black_lotus"); - public static final ItemBlock flowerpot_blue_orchid = get("flowerpot_blue_orchid"); - public static final ItemBlock flowerpot_cactus = get("flowerpot_cactus"); - public static final ItemBlock flowerpot_daisy = get("flowerpot_daisy"); - public static final ItemBlock flowerpot_dandelion = get("flowerpot_dandelion"); - public static final ItemBlock flowerpot_houstonia = get("flowerpot_houstonia"); - public static final ItemBlock flowerpot_orange_tulip = get("flowerpot_orange_tulip"); - public static final ItemBlock flowerpot_pink_tulip = get("flowerpot_pink_tulip"); - public static final ItemBlock flowerpot_poppy = get("flowerpot_poppy"); - public static final ItemBlock flowerpot_red_tulip = get("flowerpot_red_tulip"); - public static final ItemBlock flowerpot_rose = get("flowerpot_rose"); - public static final ItemBlock flowerpot_white_tulip = get("flowerpot_white_tulip"); public static final ItemBlock furnace = get("furnace"); public static final ItemTiny ghast_tear = get("ghast_tear"); public static final Item ghi_fragment = get("ghi_fragment"); diff --git a/common/src/main/java/common/item/ItemBanner.java b/common/src/main/java/common/item/ItemBanner.java index 08010f31..99f6ab5d 100755 --- a/common/src/main/java/common/item/ItemBanner.java +++ b/common/src/main/java/common/item/ItemBanner.java @@ -2,6 +2,8 @@ package common.item; import java.util.List; +import common.block.Block; +import common.block.tile.BlockBanner; import common.block.tile.BlockStandingSign; import common.block.tile.BlockWallSign; import common.color.DyeColor; @@ -10,6 +12,7 @@ import common.init.Blocks; import common.init.Items; import common.model.Model; import common.model.ModelProvider; +import common.model.Transforms; import common.tags.TagObject; import common.tileentity.TileEntity; import common.tileentity.TileEntityBanner; @@ -18,11 +21,13 @@ import common.util.ExtMath; import common.util.Facing; import common.world.World; -public class ItemBanner extends ItemBlock +public class ItemBanner extends Item { - public ItemBanner() + private final BlockBanner block; + + public ItemBanner(BlockBanner block) { - super(Blocks.banner); + this.block = block; this.setTab(CheatTab.DECORATION); } @@ -40,6 +45,11 @@ public class ItemBanner extends ItemBlock return stack; } + public Block getBlock() + { + return this.block; + } + /** * Called when a Block is right-clicked with this Item */ @@ -61,7 +71,7 @@ public class ItemBanner extends ItemBlock { return false; } - else if (!Blocks.banner.canPlaceBlockAt(worldIn, pos)) + else if (!this.block.canPlaceBlockAt(worldIn, pos)) { return false; } @@ -177,6 +187,10 @@ public class ItemBanner extends ItemBlock return enumdyecolor; } + public Transforms getTransform() { + return Transforms.BANNER; + } + public Model getModel(ModelProvider provider, String name) { return provider.getModel(provider.getEntityModel(), this.getTransform()); } diff --git a/common/src/main/java/common/item/ItemBed.java b/common/src/main/java/common/item/ItemBed.java index 0f172184..2134bd9f 100755 --- a/common/src/main/java/common/item/ItemBed.java +++ b/common/src/main/java/common/item/ItemBed.java @@ -17,6 +17,7 @@ public class ItemBed extends Item { this.bedBlock = bedBlock; this.setTab(CheatTab.DECORATION); + this.setMaxAmount(1); } public Block getBlock() diff --git a/common/src/main/java/common/item/ItemBlock.java b/common/src/main/java/common/item/ItemBlock.java index 294be727..e7f22686 100755 --- a/common/src/main/java/common/item/ItemBlock.java +++ b/common/src/main/java/common/item/ItemBlock.java @@ -39,6 +39,11 @@ public class ItemBlock extends Item this(block, flatTexture, 0); } + public ItemBlock(Block block, String flatTexture, boolean item) + { + this(block, (item ? "items" : "blocks") + "/" + flatTexture, 0); + } + public ItemBlock(Block block) { this(block, null, 0); diff --git a/common/src/main/java/common/item/ItemRedstone.java b/common/src/main/java/common/item/ItemRedstone.java index 27a1662e..585ffbed 100755 --- a/common/src/main/java/common/item/ItemRedstone.java +++ b/common/src/main/java/common/item/ItemRedstone.java @@ -1,23 +1,26 @@ package common.item; import common.block.Block; +import common.block.tech.BlockRedstoneWire; import common.entity.Entity; import common.entity.npc.EntityNPC; -import common.init.Blocks; import common.util.BlockPos; import common.util.Facing; import common.world.World; public class ItemRedstone extends Item { - public ItemRedstone() + private final BlockRedstoneWire block; + + public ItemRedstone(BlockRedstoneWire block) { + this.block = block; this.setTab(CheatTab.TECHNOLOGY); } public Block getBlock() { - return Blocks.redstone; + return this.block; } /** @@ -40,10 +43,10 @@ public class ItemRedstone extends Item { return false; } - else if (Blocks.redstone.canPlaceBlockAt(worldIn, blockpos)) + else if (this.block.canPlaceBlockAt(worldIn, blockpos)) { --stack.size; - worldIn.setState(blockpos, Blocks.redstone.getState()); + worldIn.setState(blockpos, this.block.getState()); return true; } else diff --git a/common/src/main/java/common/item/ItemSign.java b/common/src/main/java/common/item/ItemSign.java index d96831a9..60dd14b2 100755 --- a/common/src/main/java/common/item/ItemSign.java +++ b/common/src/main/java/common/item/ItemSign.java @@ -1,6 +1,7 @@ package common.item; import common.block.Block; +import common.block.tile.BlockSign; import common.block.tile.BlockStandingSign; import common.block.tile.BlockWallSign; import common.entity.npc.EntityNPC; @@ -14,14 +15,17 @@ import common.world.World; public class ItemSign extends Item { - public ItemSign() + private final BlockSign block; + + public ItemSign(BlockSign block) { + this.block = block; this.setTab(CheatTab.DECORATION); } public Block getBlock() { - return Blocks.sign; + return this.block; } /** @@ -45,7 +49,7 @@ public class ItemSign extends Item { return false; } - else if (!Blocks.sign.canPlaceBlockAt(worldIn, pos)) + else if (!this.block.canPlaceBlockAt(worldIn, pos)) { return false; } diff --git a/common/src/main/java/common/item/ItemStack.java b/common/src/main/java/common/item/ItemStack.java index 6baa83f1..36805271 100755 --- a/common/src/main/java/common/item/ItemStack.java +++ b/common/src/main/java/common/item/ItemStack.java @@ -144,23 +144,20 @@ public final class ItemStack public TagObject writeTags(TagObject tag) { + if(this.item != null) + tag.setString("id", ItemRegistry.getNameFromItem(this.item)); + if(this.size != 1) + tag.setInt("size", this.size); if(this.tag != null) - tag.merge(this.tag); - tag.setString("id", this.item == null ? "air" : ItemRegistry.getNameFromItem(this.item)); - tag.setInt("size", this.size); + tag.setObject("tag", this.tag); return tag; } private void readTags(TagObject tag) { - if(!tag.hasString("id") || !tag.hasInt("size")) - return; - this.item = ItemRegistry.getRegisteredItem(tag.getString("id")); - this.size = tag.getInt("size"); - tag.remove("id"); - tag.remove("size"); - if(!tag.isEmpty()) - this.tag = tag; + this.item = tag.hasString("id") ? ItemRegistry.getRegisteredItem(tag.getString("id")) : null; + this.size = tag.hasInt("size") ? tag.getInt("size") : 1; + this.tag = tag.hasObject("tag") ? tag.getObject("tag") : null; } public int getMaxStackSize()