add slabs and stairs

This commit is contained in:
Sen 2025-08-04 11:33:17 +02:00
parent e115ca1707
commit c27619e538
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
51 changed files with 364 additions and 423 deletions

View file

@ -1,7 +1,6 @@
package client.gui.container;
import java.text.DecimalFormat;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

View file

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Before After
Before After

View file

@ -10,13 +10,14 @@ import common.entity.Entity;
import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving;
import common.init.BlockRegistry;
import common.item.CheatTab;
import common.item.ItemStack;
import common.model.Model;
import common.model.ModelRotation;
import common.model.Model.ModelProvider;
import common.properties.Property;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing;
import common.util.Facing.Axis;
import common.world.IWorldAccess;
@ -27,29 +28,39 @@ public class BlockSlab extends Block implements Directional {
public static final List<BlockSlab> SLABS = Lists.newArrayList();
private final Block base;
private final State baseState;
private final String textureTop;
private final String textureBottom;
private final String textureSide;
private final String textureOverlay;
public BlockSlab(Block base) {
this(base, null, null);
}
public BlockSlab(Block base, String bottom, String top) {
this(base, bottom, top, null);
}
public BlockSlab(Block base, String bottom, String top, String side) {
this(base, bottom, top, side, null);
}
public BlockSlab(Block base, String bottom, String top, String side, String overlay) {
super(base.getMaterial());
this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.DOWN));
this.setTab(base.getMaterial() == Material.WOOD ? CheatTab.WOOD : CheatTab.BLOCKS);
this.setTab(base.getTab());
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
this.setOpacity(255);
this.base = base;
this.baseState = base.getState();
this.setHardness(this.base.getRawHardness());
this.setResistance(this.base.getRawResistance() / 3.0F);
this.setSound(this.base.getSound());
this.textureTop = top;
this.textureBottom = bottom;
this.textureSide = side;
this.textureOverlay = overlay;
SLABS.add(this);
}
@ -137,13 +148,36 @@ public class BlockSlab extends Block implements Directional {
|| super.canRender(worldIn, pos, side);
}
}
private static Model makeSlabModel(Model model, String down, String up, Facing dir) {
String side = up == null ? down : model.getPrimary();
if(dir.getAxis() != Axis.Y) {
model.add(0, 0, 0, 16, 16, 8)
.d(side).uv(0, 0, 16, 8)
.u(side).rot(180).uv(0, 0, 16, 8)
.w(side).uv(0, 0, 16, 8).rot(90)
.e(side).uv(0, 0, 16, 8).rot(270);
return up != null ? model.n(down).s(up).noCull().rotate(ModelRotation.getNorthRot(dir)) : model;
}
boolean upper = dir == Facing.UP;
model.add(0, upper ? 8 : 0, 0, 16, upper ? 16 : 8, 16)
.nswe(side).uv(0, 0, 16, 8);
return up != null ? model
.d(down).cull(upper ? null : Facing.DOWN)
.u(up).cull(upper ? Facing.UP : null) : model;
}
public Model getModel(ModelProvider provider, String name, State state) {
String primary = this.base.getModel(provider, BlockRegistry.getName(this.base), this.baseState).getPrimary();
if(state.getValue(FACING).getAxis() != Axis.Y)
return provider.getModel(primary).vslab(state.getValue(FACING), this.textureBottom != null ? this.textureBottom : primary, this.textureTop != null ? this.textureTop : primary);
else
return provider.getModel(primary).slab(state.getValue(FACING) == Facing.UP, this.textureBottom != null ? this.textureBottom : primary, this.textureTop != null ? this.textureTop : primary);
String primary = this.base.getModel(provider, BlockRegistry.getName(this.base), this.base.getState()).getPrimary();
Model model = makeSlabModel(provider.getModel(this.textureSide != null ? this.textureSide : primary), this.textureBottom != null ? this.textureBottom : primary, this.textureTop != null ? this.textureTop : primary, state.getValue(FACING));
if(this.textureOverlay != null)
makeSlabModel(model, this.textureOverlay, null, state.getValue(FACING));
return model;
}
@Clientside
public boolean hasTransparency() {
return this.textureOverlay != null;
}
public boolean getSumBrightness() {

View file

@ -5,12 +5,11 @@ import java.util.List;
import common.block.Block;
import common.block.Rotatable;
import common.block.Material;
import common.entity.Entity;
import common.entity.types.EntityLiving;
import common.init.BlockRegistry;
import common.item.CheatTab;
import common.model.Model;
import common.model.ModelRotation;
import common.model.Model.ModelProvider;
import common.model.GuiPosition;
import common.properties.Property;
@ -32,9 +31,9 @@ public class BlockStairs extends Block implements Rotatable
public static final PropertyEnum<BlockStairs.EnumShape> SHAPE = PropertyEnum.<BlockStairs.EnumShape>create("shape", BlockStairs.EnumShape.class);
private static final int[][] field_150150_a = new int[][] {{4, 5}, {5, 7}, {6, 7}, {4, 6}, {0, 1}, {1, 3}, {2, 3}, {0, 2}};
private final Block base;
private final State baseState;
private final String downTex;
private final String upTex;
private final String sideTex;
private boolean hasRaytraced;
private int rayTracePass;
@ -44,18 +43,23 @@ public class BlockStairs extends Block implements Rotatable
}
public BlockStairs(Block base, String down, String up)
{
this(base, down, up, null);
}
public BlockStairs(Block base, String down, String up, String side)
{
super(base.getMaterial());
this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.NORTH).withProperty(HALF, BlockStairs.EnumHalf.BOTTOM).withProperty(SHAPE, BlockStairs.EnumShape.STRAIGHT));
this.base = base;
this.baseState = base.getState();
this.setHardness(this.base.getRawHardness());
this.setResistance(this.base.getRawResistance() / 3.0F);
this.setSound(this.base.getSound());
this.setOpacity(255);
this.setTab(base.getMaterial() == Material.WOOD ? CheatTab.WOOD : CheatTab.BLOCKS);
this.setTab(base.getTab());
this.downTex = down;
this.upTex = up;
this.sideTex = side;
}
public void setBlockBounds(IWorldAccess worldIn, BlockPos pos)
@ -662,11 +666,24 @@ public class BlockStairs extends Block implements Rotatable
public GuiPosition getItemPosition() {
return GuiPosition.STAIRS;
}
private static Model makeModel(Model model, boolean upper, boolean inner, boolean outer, boolean left, Facing dir, String down, String up) {
model.add(0, 0, 0, 16, 8, 16).d(down).uv(0, 0, 16, 16).u(up).noCull().uv(0, 0, 16, 16).nswe().uv(0, 8, 16, 16);
if(outer)
model.add(8, 8, 8, 16, 16, 16).d(down).uv(8, 0, 16, 8).u(up).uv(8, 8, 16, 16).n().noCull().uv(0, 0, 8, 8).s().uv(8, 0, 16, 8)
.w().noCull().uv(8, 0, 16, 8).e().uv(0, 0, 8, 8);
else
model.add(8, 8, 0, 16, 16, 16).d(down).uv(inner ? 8 : 0, 0, 16, 16).u(up).uv(inner ? 8 : 0, 0, 16, 16).n().uv(0, 0, 8, 8)
.s().uv(8, 0, 16, 8).w().noCull().uv(0, 0, 16, 8).e().uv(0, 0, 16, 8);
if(inner)
model.add(0, 8, 8, 8, 16, 16).d(down).uv(0, 0, 8, 8).u(up).uv(0, 8, 8, 16).n().noCull().uv(8, 0, 16, 8).s().uv(0, 0, 8, 8)
.w().uv(8, 0, 16, 8).e().uv(0, 0, 8, 8);
return model.rotate(ModelRotation.getEastRot(left ? Facing.getHorizontal(dir.getHorizontalIndex() + 3) : dir, upper)).uvLock();
}
public Model getModel(ModelProvider provider, String name, State state) {
String primary = this.base.getModel(provider, BlockRegistry.getName(this.base), this.baseState).getPrimary();
return provider.getModel(primary)
.stairs(state.getValue(HALF) == EnumHalf.TOP, state.getValue(SHAPE) == EnumShape.INNER_RIGHT ||
String primary = this.base.getModel(provider, BlockRegistry.getName(this.base), this.base.getState()).getPrimary();
return makeModel(provider.getModel(this.sideTex != null ? this.sideTex : primary), state.getValue(HALF) == EnumHalf.TOP, state.getValue(SHAPE) == EnumShape.INNER_RIGHT ||
state.getValue(SHAPE) == EnumShape.INNER_LEFT, state.getValue(SHAPE) == EnumShape.OUTER_RIGHT ||
state.getValue(SHAPE) == EnumShape.OUTER_LEFT, state.getValue(SHAPE) == EnumShape.INNER_LEFT ||
state.getValue(SHAPE) == EnumShape.OUTER_LEFT, state.getValue(FACING),

View file

@ -5,8 +5,8 @@ import java.util.List;
import common.block.Block;
import common.block.Material;
import common.collect.Lists;
import common.init.BlockRegistry;
import common.init.Blocks;
import common.item.CheatTab;
import common.model.Model;
import common.model.Model.ModelProvider;
import common.model.ModelRotation;
@ -29,17 +29,23 @@ public class BlockWall extends Block
public static final PropertyBool WEST = PropertyBool.create("west");
public static final List<BlockWall> WALLS = Lists.newArrayList();
private final Block base;
private final String texture;
public BlockWall(Block modelBlock) {
this(modelBlock, null);
}
public BlockWall(Block modelBlock, String texture)
{
super(modelBlock.getMaterial());
this.base = modelBlock;
this.texture = texture;
this.setDefaultState(this.getBaseState().withProperty(UP, Boolean.valueOf(false)).withProperty(NORTH, Boolean.valueOf(false)).withProperty(EAST, Boolean.valueOf(false)).withProperty(SOUTH, Boolean.valueOf(false)).withProperty(WEST, Boolean.valueOf(false)));
this.setHardness(modelBlock.getRawHardness());
this.setResistance(modelBlock.getRawResistance() / 3.0F);
this.setSound(modelBlock.getSound());
this.setTab(CheatTab.BLOCKS);
this.setTab(modelBlock.getTab());
WALLS.add(this);
}
@ -146,7 +152,7 @@ public class BlockWall extends Block
}
public Model getModel(ModelProvider provider, String name, State state) {
String wall = this.texture;
String wall = this.texture != null ? this.texture : this.base.getModel(provider, BlockRegistry.getName(this.base), this.base.getState()).getPrimary();
boolean n = state.getValue(NORTH);
boolean s = state.getValue(SOUTH);
boolean w = state.getValue(WEST);

View file

@ -84,7 +84,7 @@ public class BlockBlueShroom extends BlockBush
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel("blue_mushroom").cross();
return makeCrossModel(provider.getModel("blue_mushroom"));
}
public GuiPosition getItemPosition() {

View file

@ -4,10 +4,12 @@ import common.block.Block;
import common.block.Material;
import common.init.Blocks;
import common.item.CheatTab;
import common.model.Model;
import common.rng.Random;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing;
import common.world.State;
import common.world.World;
import common.world.AWorldServer;
@ -91,4 +93,12 @@ public class BlockBush extends Block
public boolean hasTransparency() {
return true;
}
public static Model makeCrossModel(Model model) {
return model
.add(0.8f, 0f, 8f, 15.2f, 16f, 8f).noShade().rotate(8, 8, 8, Facing.Axis.Y, 45, true)
.ns().uv(0, 0, 16, 16).noCull()
.add(8f, 0f, 0.8f, 8f, 16f, 15.2f).noShade().rotate(8, 8, 8, Facing.Axis.Y, 45, true)
.we().uv(0, 0, 16, 16).noCull();
}
}

View file

@ -75,7 +75,7 @@ public class BlockDeadBush extends BlockBush
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel("deadbush").cross();
return makeCrossModel(provider.getModel("deadbush"));
}
public GuiPosition getItemPosition() {

View file

@ -267,8 +267,8 @@ public class BlockDoublePlant extends BlockBush implements IGrowable
.add(9.6f, -1f, 1f, 9.6f, 15f, 15f).noShade().rotate(8, 8, 8, Axis.Z, 22.5f, true).w("sunflower_back")
.uv(0, 0, 16, 16).noCull().e().uv(0, 0, 16, 16).noCull();
else
return provider.getModel(this.type.getName() + "_" + (state.getValue(HALF) == EnumBlockHalf.UPPER
? "top" : "bottom")).cross();
return makeCrossModel(provider.getModel(this.type.getName() + "_" + (state.getValue(HALF) == EnumBlockHalf.UPPER
? "top" : "bottom")));
}
public GuiPosition getItemPosition() {

View file

@ -50,7 +50,7 @@ public class BlockFlower extends BlockBush
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel(this.type.getName()).cross();
return makeCrossModel(provider.getModel(this.type.getName()));
}
public GuiPosition getItemPosition() {

View file

@ -105,7 +105,7 @@ public class BlockMushroom extends BlockBush implements IGrowable
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel(name).cross();
return makeCrossModel(provider.getModel(name));
}
public GuiPosition getItemPosition() {

View file

@ -150,7 +150,7 @@ public class BlockReed extends Block
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel("reeds").cross();
return BlockBush.makeCrossModel(provider.getModel("reeds"));
}
public Property<?>[] getIgnoredProperties() {

View file

@ -126,7 +126,7 @@ public class BlockSapling extends BlockBush implements IGrowable
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel(name).cross();
return makeCrossModel(provider.getModel(name));
}
public GuiPosition getItemPosition() {

View file

@ -0,0 +1,87 @@
package common.block.foliage;
import common.block.Block;
import common.block.Material;
import common.init.Blocks;
import common.init.Items;
import common.item.CheatTab;
import common.item.ItemStack;
import common.model.Model;
import common.model.Model.ModelProvider;
import common.properties.Property;
import common.properties.PropertyInteger;
import common.rng.Random;
import common.util.BlockPos;
import common.vars.Vars;
import common.world.State;
import common.world.World;
import common.world.AWorldServer;
public class BlockSoulGrass extends BlockBush {
public static final PropertyInteger AGE = PropertyInteger.create("age", 0, 3);
public BlockSoulGrass() {
super(Material.PLANT);
this.setDefaultState(this.getBaseState().withProperty(AGE, Integer.valueOf(0)));
this.setTicked();
float f = 0.5F;
this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
this.setTab((CheatTab)null);
}
protected boolean canPlaceBlockOn(Block ground) {
return ground == Blocks.soul_sand;
}
public boolean canBlockStay(World worldIn, BlockPos pos, State state) {
return this.canPlaceBlockOn(worldIn.getState(pos.down()).getBlock());
}
public void tick(AWorldServer worldIn, BlockPos pos, State state, Random rand) {
if(Vars.soulGrassGrowth > 0) {
int i = ((Integer)state.getValue(AGE)).intValue();
if(i < 3 && rand.chance(Vars.soulGrassGrowth)) {
state = state.withProperty(AGE, Integer.valueOf(i + 1));
worldIn.setState(pos, state, 2);
}
}
super.tick(worldIn, pos, state, rand);
}
public void drop(World worldIn, BlockPos pos, State state, float chance, int fortune) {
if(!worldIn.client) {
int i = 1;
if(((Integer)state.getValue(AGE)).intValue() >= 3) {
i = worldIn.rand.range(2, 4);
if(fortune > 0) {
i += worldIn.rand.zrange(fortune + 1);
}
}
for(int j = 0; j < i; ++j) {
dropItem(worldIn, pos, new ItemStack(Items.soul_seed));
}
}
}
protected int getDropAmount(Random random) {
return 0;
}
protected Property[] getProperties() {
return new Property[] {AGE};
}
public Model getModel(ModelProvider provider, String name, State state) {
int age = state.getValue(AGE);
return BlockCrops.crop(provider, name + "_" + (age >= 2 ? age - 1 : age));
}
protected boolean hasRegisteredItem() {
return false;
}
}

View file

@ -131,7 +131,7 @@ public class BlockTallGrass extends BlockBush implements IGrowable
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel(this.type.getName()).cross();
return makeCrossModel(provider.getModel(this.type.getName()));
}
public GuiPosition getItemPosition() {

View file

@ -1,109 +0,0 @@
package common.block.foliage;
import common.block.Block;
import common.block.Material;
import common.init.Blocks;
import common.init.Items;
import common.item.CheatTab;
import common.item.ItemStack;
import common.model.Model;
import common.model.Model.ModelProvider;
import common.properties.Property;
import common.properties.PropertyInteger;
import common.rng.Random;
import common.util.BlockPos;
import common.vars.Vars;
import common.world.State;
import common.world.World;
import common.world.AWorldServer;
public class BlockWart extends BlockBush
{
public static final PropertyInteger AGE = PropertyInteger.create("age", 0, 3);
public BlockWart()
{
super(Material.PLANT);
this.setDefaultState(this.getBaseState().withProperty(AGE, Integer.valueOf(0)));
this.setTicked();
float f = 0.5F;
this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
this.setTab((CheatTab)null);
}
/**
* is the block grass, dirt or farmland
*/
protected boolean canPlaceBlockOn(Block ground)
{
return ground == Blocks.soul_sand;
}
public boolean canBlockStay(World worldIn, BlockPos pos, State state)
{
return this.canPlaceBlockOn(worldIn.getState(pos.down()).getBlock());
}
public void tick(AWorldServer worldIn, BlockPos pos, State state, Random rand)
{
if(Vars.wartGrowth > 0) {
int i = ((Integer)state.getValue(AGE)).intValue();
if (i < 3 && rand.chance(Vars.wartGrowth))
{
state = state.withProperty(AGE, Integer.valueOf(i + 1));
worldIn.setState(pos, state, 2);
}
}
super.tick(worldIn, pos, state, rand);
}
/**
* Spawns this Block's drops into the World as EntityItems.
*/
public void drop(World worldIn, BlockPos pos, State state, float chance, int fortune)
{
if (!worldIn.client)
{
int i = 1;
if (((Integer)state.getValue(AGE)).intValue() >= 3)
{
i = worldIn.rand.range(2, 4);
if (fortune > 0)
{
i += worldIn.rand.zrange(fortune + 1);
}
}
for (int j = 0; j < i; ++j)
{
dropItem(worldIn, pos, new ItemStack(Items.soul_seed));
}
}
}
/**
* Returns the quantity of items to drop on block destruction.
*/
protected int getDropAmount(Random random)
{
return 0;
}
protected Property[] getProperties()
{
return new Property[] {AGE};
}
public Model getModel(ModelProvider provider, String name, State state) {
int age = state.getValue(AGE);
return BlockCrops.crop(provider, name + "_" + (age >= 2 ? age - 1 : age));
}
protected boolean hasRegisteredItem() {
return false;
}
}

View file

@ -2,6 +2,7 @@ package common.block.natural;
import common.block.Block;
import common.block.Material;
import common.block.foliage.BlockBush;
import common.entity.Entity;
import common.init.Items;
import common.item.CheatTab;
@ -69,7 +70,7 @@ public class BlockWeb extends Block
}
public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel("web").cross();
return BlockBush.makeCrossModel(provider.getModel("web"));
}
public GuiPosition getItemPosition() {

View file

@ -7,125 +7,11 @@ import java.util.Map;
import java.util.Set;
import common.block.*;
import common.block.artificial.BlockBed;
import common.block.artificial.BlockBookshelf;
import common.block.artificial.BlockCake;
import common.block.artificial.BlockCarpet;
import common.block.artificial.BlockMagneticExplosive;
import common.block.artificial.BlockDoor;
import common.block.artificial.BlockDragonEgg;
import common.block.artificial.BlockFence;
import common.block.artificial.BlockFenceGate;
import common.block.artificial.BlockFloorPortal;
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;
import common.block.artificial.BlockQuartz;
import common.block.artificial.BlockQuartzPillar;
import common.block.artificial.BlockSkull;
import common.block.artificial.BlockSlab;
import common.block.artificial.BlockStainedGlass;
import common.block.artificial.BlockStainedGlassPane;
import common.block.artificial.BlockStairs;
import common.block.artificial.BlockTrapDoor;
import common.block.artificial.BlockWall;
import common.block.artificial.BlockWool;
import common.block.foliage.BlockBlackenedSoil;
import common.block.foliage.BlockBlueShroom;
import common.block.foliage.BlockCactus;
import common.block.foliage.BlockCarrot;
import common.block.foliage.BlockCrops;
import common.block.foliage.BlockDeadBush;
import common.block.foliage.BlockDoublePlant;
import common.block.foliage.BlockDryLeaves;
import common.block.foliage.BlockFarmland;
import common.block.foliage.BlockFlower;
import common.block.foliage.BlockGrass;
import common.block.foliage.BlockHugeMushroom;
import common.block.foliage.BlockLeaves;
import common.block.foliage.BlockLilyPad;
import common.block.foliage.BlockLog;
import common.block.foliage.BlockMelon;
import common.block.foliage.BlockMushroom;
import common.block.foliage.BlockMycelium;
import common.block.foliage.BlockPotato;
import common.block.foliage.BlockPumpkin;
import common.block.foliage.BlockReed;
import common.block.foliage.BlockSapling;
import common.block.foliage.BlockStem;
import common.block.foliage.BlockSwamp;
import common.block.foliage.BlockTallGrass;
import common.block.foliage.BlockTianSoil;
import common.block.foliage.BlockVine;
import common.block.foliage.BlockWart;
import common.block.foliage.LeavesType;
import common.block.liquid.BlockDynamicLiquid;
import common.block.liquid.BlockStaticLiquid;
import common.block.natural.BlockBedrock;
import common.block.natural.BlockBlackenedDirt;
import common.block.natural.BlockBlackenedStone;
import common.block.natural.BlockClay;
import common.block.natural.BlockCompressable;
import common.block.natural.BlockColoredClay;
import common.block.natural.BlockFire;
import common.block.natural.BlockGlowstone;
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;
import common.block.natural.BlockPodzol;
import common.block.natural.BlockSandStone;
import common.block.natural.BlockSlime;
import common.block.natural.BlockSnow;
import common.block.natural.BlockSnowBlock;
import common.block.natural.BlockSoulFire;
import common.block.natural.BlockSoulSand;
import common.block.natural.BlockStone;
import common.block.natural.BlockBlackFire;
import common.block.natural.BlockWeb;
import common.block.tech.BlockActiveDisplay;
import common.block.tech.BlockAnvil;
import common.block.tech.BlockEffectGenerator;
import common.block.tech.BlockBrewingStand;
import common.block.tech.BlockButton;
import common.block.tech.BlockCauldron;
import common.block.tech.BlockChest;
import common.block.tech.BlockCore;
import common.block.tech.BlockDispenser;
import common.block.tech.BlockDropper;
import common.block.tech.BlockEnchantmentTable;
import common.block.tech.BlockFurnace;
import common.block.tech.BlockHopper;
import common.block.tech.BlockInactiveDisplay;
import common.block.tech.BlockLever;
import common.block.tech.BlockMobSpawner;
import common.block.tech.BlockNuke;
import common.block.tech.BlockPistonBase;
import common.block.tech.BlockPistonHead;
import common.block.tech.BlockPressurePlate;
import common.block.tech.BlockPressurePlateWeighted;
import common.block.tech.BlockRail;
import common.block.tech.BlockStandingSign;
import common.block.tech.BlockToggleableLight;
import common.block.tech.BlockLitTorch;
import common.block.tech.BlockWire;
import common.block.tech.BlockTNT;
import common.block.tech.BlockTianReactor;
import common.block.tech.BlockTripWire;
import common.block.tech.BlockTripWireHook;
import common.block.tech.BlockUnlitTorch;
import common.block.tech.BlockWallSign;
import common.block.tech.BlockWarpChest;
import common.block.tech.BlockWorkbench;
import common.block.artificial.*;
import common.block.foliage.*;
import common.block.liquid.*;
import common.block.natural.*;
import common.block.tech.*;
import common.collect.BiMap;
import common.collect.HashBiMap;
import common.collect.Lists;
@ -332,22 +218,33 @@ public abstract class BlockRegistry {
register("dirt", (new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
register("grass", (new BlockGrass()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Gras").setMiningTool(Equipment.SHOVEL));
register("coarse_dirt", (new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Grobe Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
register("podzol", (new BlockPodzol()).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Podsol").setMiningTool(Equipment.SHOVEL));
register("mycelium", (new BlockMycelium()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Myzel").setMiningTool(Equipment.SHOVEL));
register("tian", (new Block(Material.SOLID)).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE)
Block dirt;
register("dirt", (dirt = new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
Block grass;
register("grass", (grass = new BlockGrass()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Gras").setMiningTool(Equipment.SHOVEL));
Block coarse_dirt;
register("coarse_dirt", (coarse_dirt = new Block(Material.LOOSE)).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Grobe Erde").setMiningTool(Equipment.SHOVEL).setTab(CheatTab.NATURE));
Block podzol;
register("podzol", (podzol = new BlockPodzol()).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Podsol").setMiningTool(Equipment.SHOVEL));
Block mycelium;
register("mycelium", (mycelium = new BlockMycelium()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Myzel").setMiningTool(Equipment.SHOVEL));
Block swamp;
register("swamp", (swamp = new BlockSwamp()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Sumpf").setMiningTool(Equipment.SHOVEL));
Block tian;
register("tian", (tian = new Block(Material.SOLID)).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE)
.setDisplay("Tian").setTab(CheatTab.NATURE));
register("tian_soil", (new BlockTianSoil()).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE)
Block tian_soil;
register("tian_soil", (tian_soil = new BlockTianSoil()).setHardness(2.0F).setResistance(15.0F).setSound(SoundType.STONE)
.setDisplay("Tianerde").setTab(CheatTab.NATURE));
register("moon_cheese", (new BlockTreasure(Material.SOFT)).setHardness(1.5F).setResistance(5.0F)
.setSound(SoundType.CLOTH).setDisplay("Mondkäse").setTab(CheatTab.NATURE));
register("slime_block", (new BlockSlime()).setDisplay("Schleimblock").setSound(SoundType.SLIME));
register("blackened_dirt", (new BlockBlackenedDirt()).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Schwarzerde").setMiningTool(Equipment.SHOVEL));
register("blackened_soil", (new BlockBlackenedSoil()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Schwarzgrund").setMiningTool(Equipment.SHOVEL));
register("swamp", (new BlockSwamp()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Sumpf").setMiningTool(Equipment.SHOVEL));
Block blackened_dirt;
register("blackened_dirt", (blackened_dirt = new BlockBlackenedDirt()).setHardness(0.5F).setSound(SoundType.GRAVEL).setDisplay("Schwarzerde").setMiningTool(Equipment.SHOVEL));
Block blackened_soil;
register("blackened_soil", (blackened_soil = new BlockBlackenedSoil()).setHardness(0.6F).setSound(SoundType.GRASS).setDisplay("Schwarzgrund").setMiningTool(Equipment.SHOVEL));
Block slime_block;
register("slime_block", (slime_block = new BlockSlime()).setDisplay("Schleimblock").setSound(SoundType.SLIME));
Block cheese;
register("cheese", (cheese = new BlockTreasure(Material.SOFT)).setHardness(1.5F).setResistance(5.0F)
.setSound(SoundType.CLOTH).setDisplay("Käse").setTab(CheatTab.NATURE));
@ -472,11 +369,8 @@ public abstract class BlockRegistry {
register("wheats", (new BlockCrops()).setDisplay("Getreide"));
register("carrots", (new BlockCarrot()).setDisplay("Karotten"));
register("potatoes", (new BlockPotato()).setDisplay("Kartoffeln"));
register("soul_grass", (new BlockWart()).setDisplay("Seelenwarze"));
register("soul_grass", (new BlockSoulGrass()).setDisplay("Seelengras"));
for(MetalType metal : MetalType.values()) {
// String loc = metal.name.substring(0, 1).toUpperCase() + metal.name.substring(1);
register(metal.name + "_block", (new BlockMetalBlock(metal)).setHardness(5.0F).setResistance(10.0F)
@ -487,35 +381,57 @@ public abstract class BlockRegistry {
register(ore.name + "_block", (new Block(Material.SOLID)).setHardness(5.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay(ore.display + "block").setTab(CheatTab.GEMS).setMiningTool(Equipment.PICKAXE, ore.material.getHarvestLevel() - 1));
}
register("stone_slab", (new BlockSlab(stone)).setDisplay("Steinstufe"));
register("stone_stairs", (new BlockStairs(stone)).setDisplay("Steintreppe"));
register("cobblestone_slab", (new BlockSlab(cobblestone)).setDisplay("Bruchsteinstufe"));
register("cobblestone_stairs", (new BlockStairs(cobblestone)).setDisplay("Bruchsteintreppe"));
register("cobblestone_wall", (new BlockWall(cobblestone, "cobblestone")).setDisplay("Bruchsteinmauer"));
register("mossy_cobblestone_wall", (new BlockWall(mossyCobblestone, "mossy_cobblestone")).setDisplay("Bemooste Bruchsteinmauer"));
register("cobblestone_wall", (new BlockWall(cobblestone)).setDisplay("Bruchsteinmauer"));
register("mossy_cobblestone_slab", (new BlockSlab(mossyCobblestone)).setDisplay("Bemooste Bruchsteinstufe"));
register("mossy_cobblestone_stairs", (new BlockStairs(mossyCobblestone)).setDisplay("Bemooste Bruchsteintreppe"));
register("mossy_cobblestone_wall", (new BlockWall(mossyCobblestone)).setDisplay("Bemooste Bruchsteinmauer"));
register("sandstone_slab", (new BlockSlab(sandstone, "sandstone_bottom", "sandstone_all")).setDisplay("Sandsteinstufe"));
register("sandstone_stairs", (new BlockStairs(sandstone,
"sandstone_bottom", "sandstone_all")) // fix type
.setDisplay("Sandsteintreppe"));
register("sandstone_stairs", (new BlockStairs(sandstone, "sandstone_bottom", "sandstone_all")).setDisplay("Sandsteintreppe"));
register("dirt_slab", (new BlockSlab(dirt)).setDisplay("Erdstufe"));
register("dirt_stairs", (new BlockStairs(dirt)).setDisplay("Erdtreppe"));
register("grass_slab", (new BlockSlab(grass, "dirt", "grass_top", "dirt", "grass_side")).setDisplay("Grasstufe"));
register("coarse_dirt_slab", (new BlockSlab(coarse_dirt)).setDisplay("Grobe Erdstufe"));
register("coarse_dirt_stairs", (new BlockStairs(coarse_dirt)).setDisplay("Grobe Erdtreppe"));
register("podzol_slab", (new BlockSlab(podzol, "dirt", "podzol_top", "dirt", "podzol_side")).setDisplay("Podsolstufe"));
register("mycelium_slab", (new BlockSlab(mycelium, "dirt", "mycelium_top", "dirt", "mycelium_side")).setDisplay("Myzelstufe"));
register("swamp_slab", (new BlockSlab(swamp, "dirt", "swamp_top", "dirt", "swamp_side")).setDisplay("Sumpfstufe"));
register("tian_slab", (new BlockSlab(tian)).setDisplay("Tianstufe"));
register("tian_stairs", (new BlockStairs(tian)).setDisplay("Tiantreppe"));
register("tian_soil_slab", (new BlockSlab(tian_soil, "tian", "tian_soil_top", "tian", "tian_soil_side")).setDisplay("Tianerdestufe"));
register("blackened_dirt_slab", (new BlockSlab(blackened_dirt)).setDisplay("Schwarzerdestufe"));
register("blackened_dirt_stairs", (new BlockStairs(blackened_dirt)).setDisplay("Schwarzerdetreppe"));
register("blackened_soil_slab", (new BlockSlab(blackened_soil, "blackened_dirt", "blackened_soil_top", "blackened_dirt", "blackened_soil_side")).setDisplay("Schwarzgrasstufe"));
register("slime_slab", (new BlockSlab(slime_block)).setDisplay("Schleimstufe"));
register("slime_stairs", (new BlockStairs(slime_block)).setDisplay("Schleimtreppe"));
register("cheese_slab", (new BlockSlab(cheese)).setDisplay("Käsestufe"));
register("cheese_stairs", (new BlockStairs(cheese)).setDisplay("Käsetreppe"));
Block quartz = (new BlockQuartz(false, false)).setSound(SoundType.STONE).setHardness(0.8F).setDisplay("Quarzblock");
register("quartz_block", quartz);
register("quartz_ornaments", (new BlockQuartz(false, true)).setSound(SoundType.STONE).setHardness(0.8F).setDisplay("Gemeißelter Quarzblock"));
register("quartz_pillar", (new BlockQuartzPillar(false)).setSound(SoundType.STONE).setHardness(0.8F).setDisplay("Quarzsäule"));
register("quartz_slab", (new BlockSlab(quartz, "quartz_block_bottom", "quartz_top")).setDisplay("Quarzstufe"));
register("quartz_stairs", (new BlockStairs(quartz,
"quartz_block_bottom", "quartz_top"))
.setDisplay("Quarztreppe"));
register("quartz_stairs", (new BlockStairs(quartz, "quartz_block_bottom", "quartz_top")).setDisplay("Quarztreppe"));
register("iron_bars", (new BlockPane(Material.SOLID)).setHardness(5.0F).setResistance(10.0F).setSound(SoundType.STONE)
.setDisplay("Eisengitter"));
register("iron_bars", (new BlockPane(Material.SOLID)).setHardness(5.0F).setResistance(10.0F).setSound(SoundType.STONE).setDisplay("Eisengitter"));
register("iron_trapdoor", (new BlockTrapDoor(Material.SOLID)).setHardness(5.0F).setSound(SoundType.STONE).setDisplay("Eisenfalltür"));
Block brick = (new Block(Material.SOLID)).setHardness(2.0F).setResistance(10.0F).setSound(SoundType.STONE)

View file

@ -89,19 +89,19 @@ public abstract class Blocks {
public static final BlockBlackenedDirt blackened_dirt = get("blackened_dirt");
public static final BlockBlackenedSoil blackened_soil = get("blackened_soil");
public static final BlockBlackenedStone blackened_stone = get("blackened_stone");
public static final BlockDoor blackwood_door = get("blackwood_door");
public static final BlockFence blackwood_fence = get("blackwood_fence");
public static final BlockFenceGate blackwood_fence_gate = get("blackwood_fence_gate");
public static final BlockLeaves blackwood_leaves_autumn = get("blackwood_leaves_autumn");
public static final BlockLeaves blackwood_leaves_snowy = get("blackwood_leaves_snowy");
public static final BlockLeaves blackwood_leaves_spring = get("blackwood_leaves_spring");
public static final BlockLeaves blackwood_leaves_summer = get("blackwood_leaves_summer");
public static final BlockLeaves blackwood_leaves_winter = get("blackwood_leaves_winter");
public static final BlockLog blackwood_log = get("blackwood_log");
public static final Block blackwood_planks = get("blackwood_planks");
public static final BlockSapling blackwood_sapling = get("blackwood_sapling");
public static final BlockSlab blackwood_slab = get("blackwood_slab");
public static final BlockStairs blackwood_stairs = get("blackwood_stairs");
public static final BlockDoor black_wood_door = get("black_wood_door");
public static final BlockFence black_wood_fence = get("black_wood_fence");
public static final BlockFenceGate black_wood_fence_gate = get("black_wood_fence_gate");
public static final BlockLeaves black_wood_leaves_autumn = get("black_wood_leaves_autumn");
public static final BlockLeaves black_wood_leaves_snowy = get("black_wood_leaves_snowy");
public static final BlockLeaves black_wood_leaves_spring = get("black_wood_leaves_spring");
public static final BlockLeaves black_wood_leaves_summer = get("black_wood_leaves_summer");
public static final BlockLeaves black_wood_leaves_winter = get("black_wood_leaves_winter");
public static final BlockLog black_wood_log = get("black_wood_log");
public static final Block black_wood_planks = get("black_wood_planks");
public static final BlockSapling black_wood_sapling = get("black_wood_sapling");
public static final BlockSlab black_wood_slab = get("black_wood_slab");
public static final BlockStairs black_wood_stairs = get("black_wood_stairs");
public static final BlockStaticLiquid blood = get("blood");
public static final Block blood_brick = get("blood_brick");
public static final BlockFence blood_brick_fence = get("blood_brick_fence");
@ -328,7 +328,7 @@ public abstract class Blocks {
public static final BlockStem melon_stem = get("melon_stem");
public static final BlockStaticLiquid mercury = get("mercury");
public static final BlockMobSpawner mob_spawner = get("mob_spawner");
public static final BlockTreasure moon_cheese = get("moon_cheese");
public static final BlockTreasure cheese = get("cheese");
public static final Block moon_rock = get("moon_rock");
public static final Block mossy_cobblestone = get("mossy_cobblestone");
public static final BlockWall mossy_cobblestone_wall = get("mossy_cobblestone_wall");
@ -439,7 +439,7 @@ public abstract class Blocks {
public static final BlockMetalOre sodium_ore = get("sodium_ore");
public static final BlockSoulFire soul_fire = get("soul_fire");
public static final BlockSoulSand soul_sand = get("soul_sand");
public static final BlockWart soul_grass = get("soul_grass");
public static final BlockSoulGrass soul_grass = get("soul_grass");
public static final Block sponge = get("sponge");
public static final BlockStaticLiquid spring_water = get("spring_water");
public static final BlockDoor spruce_door = get("spruce_door");
@ -473,21 +473,21 @@ public abstract class Blocks {
public static final Block thetium_block = get("thetium_block");
public static final BlockOre thetium_ore = get("thetium_ore");
public static final Block tian = get("tian");
public static final BlockDoor tian_door = get("tian_door");
public static final BlockFence tian_fence = get("tian_fence");
public static final BlockFenceGate tian_fence_gate = get("tian_fence_gate");
public static final BlockLeaves tian_leaves_autumn = get("tian_leaves_autumn");
public static final BlockLeaves tian_leaves_snowy = get("tian_leaves_snowy");
public static final BlockLeaves tian_leaves_spring = get("tian_leaves_spring");
public static final BlockLeaves tian_leaves_summer = get("tian_leaves_summer");
public static final BlockLeaves tian_leaves_winter = get("tian_leaves_winter");
public static final BlockLog tian_log = get("tian_log");
public static final Block tian_planks = get("tian_planks");
public static final BlockDoor tian_wood_door = get("tian_wood_door");
public static final BlockFence tian_wood_fence = get("tian_wood_fence");
public static final BlockFenceGate tian_wood_fence_gate = get("tian_wood_fence_gate");
public static final BlockLeaves tian_wood_leaves_autumn = get("tian_wood_leaves_autumn");
public static final BlockLeaves tian_wood_leaves_snowy = get("tian_wood_leaves_snowy");
public static final BlockLeaves tian_wood_leaves_spring = get("tian_wood_leaves_spring");
public static final BlockLeaves tian_wood_leaves_summer = get("tian_wood_leaves_summer");
public static final BlockLeaves tian_wood_leaves_winter = get("tian_wood_leaves_winter");
public static final BlockLog tian_wood_log = get("tian_wood_log");
public static final Block tian_wood_planks = get("tian_wood_planks");
public static final BlockTianReactor tian_reactor = get("tian_reactor");
public static final BlockSapling tian_sapling = get("tian_sapling");
public static final BlockSlab tian_slab = get("tian_slab");
public static final BlockSapling tian_wood_sapling = get("tian_wood_sapling");
public static final BlockSlab tian_wood_slab = get("tian_wood_slab");
public static final BlockTianSoil tian_soil = get("tian_soil");
public static final BlockStairs tian_stairs = get("tian_stairs");
public static final BlockStairs tian_wood_stairs = get("tian_wood_stairs");
public static final BlockMetalBlock tin_block = get("tin_block");
public static final BlockMetalOre tin_ore = get("tin_ore");
public static final BlockMetalBlock titanium_block = get("titanium_block");
@ -679,6 +679,26 @@ public abstract class Blocks {
public static final BlockChest thetium_chest = get("thetium_chest");
public static final BlockChest black_metal_chest = get("black_metal_chest");
public static final BlockChest nichun_chest = get("nichun_chest");
public static final BlockSlab grass_slab = get("grass_slab");
public static final BlockSlab blackened_dirt_slab = get("blackened_dirt_slab");
public static final BlockSlab blackened_soil_slab = get("blackened_soil_slab");
public static final BlockSlab coarse_dirt_slab = get("coarse_dirt_slab");
public static final BlockSlab dirt_slab = get("dirt_slab");
public static final BlockSlab mycelium_slab = get("mycelium_slab");
public static final BlockSlab podzol_slab = get("podzol_slab");
public static final BlockSlab swamp_slab = get("swamp_slab");
public static final BlockSlab tian_slab = get("tian_slab");
public static final BlockSlab tian_soil_slab = get("tian_soil_slab");
public static final BlockStairs blackened_dirt_stairs = get("blackened_dirt_stairs");
public static final BlockSlab cheese_slab = get("cheese_slab");
public static final BlockStairs cheese_stairs = get("cheese_stairs");
public static final BlockStairs coarse_dirt_stairs = get("coarse_dirt_stairs");
public static final BlockStairs dirt_stairs = get("dirt_stairs");
public static final BlockSlab mossy_cobblestone_slab = get("mossy_cobblestone_slab");
public static final BlockStairs mossy_cobblestone_stairs = get("mossy_cobblestone_stairs");
public static final BlockSlab slime_slab = get("slime_slab");
public static final BlockStairs slime_stairs = get("slime_stairs");
public static final BlockStairs tian_stairs = get("tian_stairs");
private static <T extends Block> T get(String id) {
T block = (T)BlockRegistry.byNameExact(id);

View file

@ -152,19 +152,19 @@ public abstract class Items {
public static final Item blackened_dirt = get("blackened_dirt");
public static final Item blackened_soil = get("blackened_soil");
public static final Item blackened_stone = get("blackened_stone");
public static final Item blackwood_door = get("blackwood_door");
public static final Item blackwood_fence = get("blackwood_fence");
public static final Item blackwood_fence_gate = get("blackwood_fence_gate");
public static final Item blackwood_leaves_autumn = get("blackwood_leaves_autumn");
public static final Item blackwood_leaves_snowy = get("blackwood_leaves_snowy");
public static final Item blackwood_leaves_spring = get("blackwood_leaves_spring");
public static final Item blackwood_leaves_summer = get("blackwood_leaves_summer");
public static final Item blackwood_leaves_winter = get("blackwood_leaves_winter");
public static final Item blackwood_log = get("blackwood_log");
public static final Item blackwood_planks = get("blackwood_planks");
public static final Item blackwood_sapling = get("blackwood_sapling");
public static final Item blackwood_slab = get("blackwood_slab");
public static final Item blackwood_stairs = get("blackwood_stairs");
public static final Item black_wood_door = get("black_wood_door");
public static final Item black_wood_fence = get("black_wood_fence");
public static final Item black_wood_fence_gate = get("black_wood_fence_gate");
public static final Item black_wood_leaves_autumn = get("black_wood_leaves_autumn");
public static final Item black_wood_leaves_snowy = get("black_wood_leaves_snowy");
public static final Item black_wood_leaves_spring = get("black_wood_leaves_spring");
public static final Item black_wood_leaves_summer = get("black_wood_leaves_summer");
public static final Item black_wood_leaves_winter = get("black_wood_leaves_winter");
public static final Item black_wood_log = get("black_wood_log");
public static final Item black_wood_planks = get("black_wood_planks");
public static final Item black_wood_sapling = get("black_wood_sapling");
public static final Item black_wood_slab = get("black_wood_slab");
public static final Item black_wood_stairs = get("black_wood_stairs");
public static final Item blazing_powder = get("blazing_powder");
public static final Item demon_rod = get("demon_rod");
public static final Item blood_brick = get("blood_brick");
@ -492,7 +492,7 @@ public abstract class Items {
public static final ItemMilkBottle milk_bottle = get("milk_bottle");
public static final ItemMinecart minecart = get("minecart");
public static final Item mob_spawner = get("mob_spawner");
public static final Item moon_cheese = get("moon_cheese");
public static final Item cheese = get("cheese");
public static final Item moon_rock = get("moon_rock");
public static final Item mossy_cobblestone = get("mossy_cobblestone");
public static final Item mossy_cobblestone_wall = get("mossy_cobblestone_wall");
@ -711,21 +711,21 @@ public abstract class Items {
public static final ItemTool thetium_sword = get("thetium_sword");
public static final Item thi_fragment = get("thi_fragment");
public static final Item tian = get("tian");
public static final Item tian_door = get("tian_door");
public static final Item tian_fence = get("tian_fence");
public static final Item tian_fence_gate = get("tian_fence_gate");
public static final Item tian_leaves_autumn = get("tian_leaves_autumn");
public static final Item tian_leaves_snowy = get("tian_leaves_snowy");
public static final Item tian_leaves_spring = get("tian_leaves_spring");
public static final Item tian_leaves_summer = get("tian_leaves_summer");
public static final Item tian_leaves_winter = get("tian_leaves_winter");
public static final Item tian_log = get("tian_log");
public static final Item tian_planks = get("tian_planks");
public static final Item tian_wood_door = get("tian_wood_door");
public static final Item tian_wood_fence = get("tian_wood_fence");
public static final Item tian_wood_fence_gate = get("tian_wood_fence_gate");
public static final Item tian_wood_leaves_autumn = get("tian_wood_leaves_autumn");
public static final Item tian_wood_leaves_snowy = get("tian_wood_leaves_snowy");
public static final Item tian_wood_leaves_spring = get("tian_wood_leaves_spring");
public static final Item tian_wood_leaves_summer = get("tian_wood_leaves_summer");
public static final Item tian_wood_leaves_winter = get("tian_wood_leaves_winter");
public static final Item tian_wood_log = get("tian_wood_log");
public static final Item tian_wood_planks = get("tian_wood_planks");
public static final Item tian_reactor = get("tian_reactor");
public static final Item tian_sapling = get("tian_sapling");
public static final Item tian_slab = get("tian_slab");
public static final Item tian_wood_sapling = get("tian_wood_sapling");
public static final Item tian_wood_slab = get("tian_wood_slab");
public static final Item tian_soil = get("tian_soil");
public static final Item tian_stairs = get("tian_stairs");
public static final Item tian_wood_stairs = get("tian_wood_stairs");
public static final Item tin_block = get("tin_block");
public static final ItemMetal tin_ingot = get("tin_ingot");
public static final Item tin_ore = get("tin_ore");
@ -1063,6 +1063,26 @@ public abstract class Items {
public static final Item silver_chest = get("silver_chest");
public static final Item stone_chest = get("stone_chest");
public static final Item thetium_chest = get("thetium_chest");
public static final Item grass_slab = get("grass_slab");
public static final Item blackened_dirt_slab = get("blackened_dirt_slab");
public static final Item blackened_soil_slab = get("blackened_soil_slab");
public static final Item coarse_dirt_slab = get("coarse_dirt_slab");
public static final Item dirt_slab = get("dirt_slab");
public static final Item mycelium_slab = get("mycelium_slab");
public static final Item podzol_slab = get("podzol_slab");
public static final Item swamp_slab = get("swamp_slab");
public static final Item tian_slab = get("tian_slab");
public static final Item tian_soil_slab = get("tian_soil_slab");
public static final Item blackened_dirt_stairs = get("blackened_dirt_stairs");
public static final Item cheese_slab = get("cheese_slab");
public static final Item cheese_stairs = get("cheese_stairs");
public static final Item coarse_dirt_stairs = get("coarse_dirt_stairs");
public static final Item dirt_stairs = get("dirt_stairs");
public static final Item mossy_cobblestone_slab = get("mossy_cobblestone_slab");
public static final Item mossy_cobblestone_stairs = get("mossy_cobblestone_stairs");
public static final Item slime_slab = get("slime_slab");
public static final Item slime_stairs = get("slime_stairs");
public static final Item tian_stairs = get("tian_stairs");
private static <T extends Item> T get(String id) {
T item = (T)ItemRegistry.byName(id);

View file

@ -9,8 +9,8 @@ public enum WoodType {
DARK_OAK("dark_oak", "Schwarzeichen", 20),
CHERRY("cherry", "Kirsch", 20),
MAPLE("maple", "Ahorn", 20),
TIAN("tian", "Tian", 80),
BLACKWOOD("blackwood", "Schwarz", 60),
TIAN("tian_wood", "Tian", 80),
BLACKWOOD("black_wood", "Schwarz", 60),
SWAMP_OAK("swamp_oak", "Sumpfeichen", 20);
private final String name;

View file

@ -17,53 +17,6 @@ public abstract class Model {
public abstract Model rot(int rot);
public abstract Model uv(float x1, float y1, float x2, float y2);
public abstract String getPrimary();
public Model slab(boolean upper) {
return this.slab(upper, this.getPrimary(), this.getPrimary());
}
public Model slab(boolean upper, String du) {
return this.slab(upper, du, du);
}
public Model slab(boolean upper, String down, String up) {
return this.add(0, upper ? 8 : 0, 0, 16, upper ? 16 : 8, 16).nswe().uv(0, upper ? 0 : 8, 16, upper ? 8 : 16)
.d(down).cull(upper ? null : Facing.DOWN).u(up).cull(upper ? Facing.UP : null);
}
public Model vslab(Facing dir) {
return this.vslab(dir, this.getPrimary(), this.getPrimary());
}
public Model vslab(Facing dir, String du) {
return this.vslab(dir, du, du);
}
public Model vslab(Facing dir, String down, String up) {
return this.add(0, 0, 0, 16, 16, 8).du().uv(0, 8, 16, 16).we().uv(0, 8, 16, 16).rot(90).n(down).s(up).noCull().rotate(ModelRotation.getNorthRot(dir));
}
public Model cross() {
return this
.add(0.8f, 0f, 8f, 15.2f, 16f, 8f).noShade().rotate(8, 8, 8, Facing.Axis.Y, 45, true)
.ns().uv(0, 0, 16, 16).noCull()
.add(8f, 0f, 0.8f, 8f, 16f, 15.2f).noShade().rotate(8, 8, 8, Facing.Axis.Y, 45, true)
.we().uv(0, 0, 16, 16).noCull();
}
public Model stairs(boolean upper, boolean inner, boolean outer, boolean left, Facing dir, String down, String up) {
this.add(0, 0, 0, 16, 8, 16).d(down).uv(0, 0, 16, 16).u(up).noCull().uv(0, 0, 16, 16).nswe().uv(0, 8, 16, 16);
if(outer)
this.add(8, 8, 8, 16, 16, 16).d(down).uv(8, 0, 16, 8).u(up).uv(8, 8, 16, 16).n().noCull().uv(0, 0, 8, 8).s().uv(8, 0, 16, 8)
.w().noCull().uv(8, 0, 16, 8).e().uv(0, 0, 8, 8);
else
this.add(8, 8, 0, 16, 16, 16).d(down).uv(inner ? 8 : 0, 0, 16, 16).u(up).uv(inner ? 8 : 0, 0, 16, 16).n().uv(0, 0, 8, 8)
.s().uv(8, 0, 16, 8).w().noCull().uv(0, 0, 16, 8).e().uv(0, 0, 16, 8);
if(inner)
this.add(0, 8, 8, 8, 16, 16).d(down).uv(0, 0, 8, 8).u(up).uv(0, 8, 8, 16).n().noCull().uv(8, 0, 16, 8).s().uv(0, 0, 8, 8)
.w().uv(8, 0, 16, 8).e().uv(0, 0, 8, 8);
return this.rotate(ModelRotation.getEastRot(left ? Facing.getHorizontal(dir.getHorizontalIndex() + 3) : dir, upper)).uvLock();
}
public Model add() {
return this.add(0, 0, 0, 16, 16, 16);

View file

@ -239,8 +239,8 @@ public abstract class Vars {
public static int stemGrowth = 26;
@Var(name = "treeGrowthChance")
public static int treeGrowth = 7;
@Var(name = "wartGrowthChance")
public static int wartGrowth = 10;
@Var(name = "soulGrassGrowthChance")
public static int soulGrassGrowth = 10;
@Var(name = "cocoaGrowthChance")
public static int cocoaGrowth = 5;
@Var(name = "reedGrowthHeight")

View file

@ -501,6 +501,8 @@ public abstract class UniverseRegistry extends DimensionRegistry {
// public static final WeightedList<RngSpawn> MAGEHUT_MOBS = new WeightedList<RngSpawn>(new RngSpawn(EntityMage.class, 1, 1, 1));
// public static final WeightedList<RngSpawn> FORTRESS_MOBS = new WeightedList<RngSpawn>(new RngSpawn(EntityDarkMage.class, 10, 2, 3),
// new RngSpawn(EntityTiefling.class, 5, 4, 4), new RngSpawn(EntityUndead.class, 10, 4, 4));
// addOre(Blocks.cheese.getState(), 8, 8, 12, 24, 52, false)
public static void register() { // TODO: add mushroom 0.2F, 0.3F .addSpawn(EntityDwarf.class, 8, 4, 8)
register("space", "Der Weltraum", Space.INSTANCE);

View file

@ -49,7 +49,7 @@ import common.block.foliage.BlockPotato;
import common.block.foliage.BlockReed;
import common.block.foliage.BlockStem;
import common.block.foliage.BlockVine;
import common.block.foliage.BlockWart;
import common.block.foliage.BlockSoulGrass;
import common.block.liquid.BlockLiquid;
import common.block.natural.BlockColoredClay;
import common.block.natural.BlockFire;
@ -938,10 +938,10 @@ public abstract class Converter {
mapBlock(Blocks.blood_brick_stairs.getState().withProperty(BlockStairs.FACING, Facing.WEST).withProperty(BlockStairs.HALF, EnumHalf.TOP), 114, 5, 13);
mapBlock(Blocks.blood_brick_stairs.getState().withProperty(BlockStairs.FACING, Facing.SOUTH).withProperty(BlockStairs.HALF, EnumHalf.TOP), 114, 6, 14);
mapBlock(Blocks.blood_brick_stairs.getState().withProperty(BlockStairs.FACING, Facing.NORTH).withProperty(BlockStairs.HALF, EnumHalf.TOP), 114, 7, 15);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockWart.AGE, 0), 115);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockWart.AGE, 1), 115, 1);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockWart.AGE, 2), 115, 2);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockWart.AGE, 3), 115, 3);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockSoulGrass.AGE, 0), 115);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockSoulGrass.AGE, 1), 115, 1);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockSoulGrass.AGE, 2), 115, 2);
mapBlock(Blocks.soul_grass.getState().withProperty(BlockSoulGrass.AGE, 3), 115, 3);
mapBlock(Blocks.enchanting_table, 116);
mapBlock(Blocks.brewing_stand, 117);
mapBlock(Blocks.cauldron.getState().withProperty(BlockCauldron.LEVEL, 0), 118);

View file

@ -2580,7 +2580,7 @@ public final class WorldServer extends AWorldServer {
break;
case TIAN:
worldgenerator = new WorldGenBigTree(true, Blocks.tian_log.getState(), WoodType.TIAN)
worldgenerator = new WorldGenBigTree(true, Blocks.tian_wood_log.getState(), WoodType.TIAN)
.setHeightLimit(6, 20);
break;

View file

@ -9,7 +9,7 @@ import server.worldgen.tree.WorldGenBaseTree;
import server.worldgen.tree.WorldGenTree;
public class PopulatorBlackened extends PopulatorBasic {
protected final WorldGenTree treeGen = new WorldGenBaseTree(false, Blocks.blackwood_log.getState(), WoodType.BLACKWOOD);
protected final WorldGenTree treeGen = new WorldGenBaseTree(false, Blocks.black_wood_log.getState(), WoodType.BLACKWOOD);
public PopulatorBlackened() {
this.treesPerChunk = 3;

View file

@ -1,15 +0,0 @@
package server.worldgen.populator;
import common.init.Blocks;
import common.rng.Random;
import common.util.BlockPos;
import server.world.WorldServer;
import server.worldgen.FeatureOres;
public class PopulatorCheese extends PopulatorBasic {
private FeatureOres cheeseGenerator = new FeatureOres(Blocks.moon_cheese.getState(), 8, 8, 12, 24, 52, false);
public void decorate(WorldServer worldIn, Random rand, BlockPos pos) {
this.cheeseGenerator.generate(worldIn, rand, pos);
}
}

View file

@ -17,12 +17,12 @@ public class PopulatorTian extends PopulatorBasic
{
protected FeatureGenerator spikeGen = new WorldGenSpikes(Blocks.tian_soil, 128, 2, 3, Blocks.obsidian.getState(), true);
protected FeatureGenerator mushroomBlueGen = new WorldGenMushroom(Blocks.blue_mushroom);
protected WorldGenTree treeGen1 = new WorldGenBigTree(false, Blocks.tian_log.getState(), WoodType.TIAN)
protected WorldGenTree treeGen1 = new WorldGenBigTree(false, Blocks.tian_wood_log.getState(), WoodType.TIAN)
.setHeightLimit(6, 8);
protected WorldGenTree treeGen2 = new WorldGenBigTree(false, Blocks.tian_log.getState(), WoodType.TIAN)
protected WorldGenTree treeGen2 = new WorldGenBigTree(false, Blocks.tian_wood_log.getState(), WoodType.TIAN)
.setHeightLimit(14, 20);
protected WorldGenTree treeGen3 = new WorldGenBaseTree(false, Blocks.tian_log.getState(), WoodType.TIAN);
protected WorldGenTree treeGen4 = new WorldGenBigTree(false, Blocks.tian_log.getState(), WoodType.TIAN)
protected WorldGenTree treeGen3 = new WorldGenBaseTree(false, Blocks.tian_wood_log.getState(), WoodType.TIAN);
protected WorldGenTree treeGen4 = new WorldGenBigTree(false, Blocks.tian_wood_log.getState(), WoodType.TIAN)
.setHeightLimit(12, 15);
public PopulatorTian()