inline item registry blocks

This commit is contained in:
Sen 2025-06-22 21:45:20 +02:00
parent 34a3f52b50
commit 9ee7f5483b
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
73 changed files with 453 additions and 243 deletions

View file

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

View file

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

View file

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

View file

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

View file

@ -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
{

View file

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

View file

@ -158,4 +158,8 @@ public class BlockFloorPortal extends Block
public String getFallbackTexture() {
return "obsidian";
}
public Item getItemToRegister() {
return null;
}
}

View file

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

View file

@ -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)

View file

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

View file

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

View file

@ -295,6 +295,10 @@ public class BlockPortal extends Block
public void getAnimatedTextures(Map<String, Object> map) {
map.put("portal", 1);
}
public Item getItemToRegister() {
return null;
}
// public BlockPattern.PatternHelper func_181089_f(World p_181089_1_, BlockPos p_181089_2_)
// {

View file

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

View file

@ -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) {

View file

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

View file

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

View file

@ -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)

View file

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

View file

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

View file

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

View file

@ -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
{

View file

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

View file

@ -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
{

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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
{

View file

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

View file

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

View file

@ -403,4 +403,8 @@ public abstract class BlockLiquid extends Block
{
return true;
}
public Item getItemToRegister() {
return null;
}
}

View file

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

View file

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

View file

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

View file

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

View file

@ -21,6 +21,7 @@ public class BlockWeb extends Block
{
super(Material.FLUFF);
this.setTab(CheatTab.DECORATION);
this.setFlatItemTexture();
}
/**

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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
{

View file

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

View file

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

View file

@ -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
{

View file

@ -310,4 +310,8 @@ public class BlockPistonMoving extends BlockContainer
{
return new Property[] {FACING, TYPE};
}
public Item getItemToRegister() {
return null;
}
}

View file

@ -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)

View file

@ -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
{

View file

@ -92,4 +92,8 @@ public class BlockRedstoneLight extends Block
public boolean isMagnetic() {
return true;
}
public Item getItemToRegister() {
return this.isOn ? null : super.getItemToRegister();
}
}

View file

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

View file

@ -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
{

View file

@ -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
{

View file

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

View file

@ -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)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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<Item> REGISTRY = new Mapping();
public static final Map<Block, ItemBlock> BLOCKMAP = Maps.<Block, ItemBlock>newHashMap();
public static final Set<Block> SPECIALIZED = Sets.<Block>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<BlockStaticLiquid, BlockDynamicLiquid> 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<BlockStaticLiquid, BlockDynamicLiquid> 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);

View file

@ -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");

View file

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

View file

@ -17,6 +17,7 @@ public class ItemBed extends Item
{
this.bedBlock = bedBlock;
this.setTab(CheatTab.DECORATION);
this.setMaxAmount(1);
}
public Block getBlock()

View file

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

View file

@ -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

View file

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

View file

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