make all blocks except some liquids non-translucent

This commit is contained in:
Sen 2025-07-25 12:22:04 +02:00
parent 1f149583d5
commit 0e179b0410
Signed by: sen
GPG key ID: 3AC50A6F47D1B722
73 changed files with 259 additions and 479 deletions

View file

@ -10,6 +10,7 @@ import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL13; import org.lwjgl.opengl.GL13;
import client.Client; import client.Client;
import client.renderer.chunk.BlockLayer;
import client.renderer.texture.DynamicTexture; import client.renderer.texture.DynamicTexture;
import client.renderer.texture.TextureMap; import client.renderer.texture.TextureMap;
import common.block.Block; import common.block.Block;
@ -22,7 +23,6 @@ import common.entity.types.EntityLiving;
import common.init.Blocks; import common.init.Blocks;
import common.init.Items; import common.init.Items;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.model.BlockLayer;
import common.rng.Random; import common.rng.Random;
import common.sound.PositionedSound; import common.sound.PositionedSound;
import common.util.BlockPos; import common.util.BlockPos;

View file

@ -21,7 +21,6 @@ import common.init.Blocks;
import common.item.Item; import common.item.Item;
import common.item.ItemAction; import common.item.ItemAction;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.BlockLayer;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.ExtMath; import common.util.ExtMath;
import common.util.Vec3; import common.util.Vec3;
@ -110,29 +109,14 @@ public class ItemRenderer
if (this.itemRenderer.shouldRenderItemIn3D(heldStack)) if (this.itemRenderer.shouldRenderItemIn3D(heldStack))
{ {
GL11.glScalef(2.0F, 2.0F, 2.0F); GL11.glScalef(2.0F, 2.0F, 2.0F);
if (this.isBlockTranslucent(block))
{
GlState.depthMask(false);
}
} }
this.itemRenderer.renderItemForEntity(heldStack, entityIn, third); this.itemRenderer.renderItemForEntity(heldStack, entityIn, third);
if (this.isBlockTranslucent(block))
{
GlState.depthMask(true);
}
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
} }
private boolean isBlockTranslucent(Block blockIn)
{
return blockIn != null && blockIn.getRenderLayer() == BlockLayer.TRANSLUCENT;
}
private void rotateArroundXAndY(float angle, float angleY) private void rotateArroundXAndY(float angle, float angleY)
{ {
GL11.glPushMatrix(); GL11.glPushMatrix();

View file

@ -1,6 +1,6 @@
package client.renderer; package client.renderer;
import common.model.BlockLayer; import client.renderer.chunk.BlockLayer;
public class RegionRenderCacheBuilder public class RegionRenderCacheBuilder
{ {

View file

@ -16,6 +16,7 @@ import org.lwjgl.opengl.GL13;
import org.lwjgl.opengl.GL15; import org.lwjgl.opengl.GL15;
import client.Client; import client.Client;
import client.renderer.chunk.BlockLayer;
import client.renderer.chunk.ChunkRenderDispatcher; import client.renderer.chunk.ChunkRenderDispatcher;
import client.renderer.chunk.CompiledChunk; import client.renderer.chunk.CompiledChunk;
import client.renderer.chunk.RenderChunk; import client.renderer.chunk.RenderChunk;
@ -35,7 +36,6 @@ import common.entity.Entity;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.init.Blocks; import common.init.Blocks;
import common.model.BlockLayer;
import common.rng.Random; import common.rng.Random;
import common.sound.Sound; import common.sound.Sound;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;

View file

@ -1,8 +1,5 @@
package common.model; package client.renderer.chunk;
import common.util.Clientside;
@Clientside
public enum BlockLayer { public enum BlockLayer {
SOLID("Solid"), SOLID("Solid"),
CUTOUT("Cutout"), CUTOUT("Cutout"),

View file

@ -13,7 +13,6 @@ import client.renderer.chunk.ChunkBuilder.ImmediateFuture;
import client.renderer.chunk.ChunkBuilder.ListenableFuture; import client.renderer.chunk.ChunkBuilder.ListenableFuture;
import client.renderer.chunk.ChunkBuilder.ListenableFutureTask; import client.renderer.chunk.ChunkBuilder.ListenableFutureTask;
import common.collect.Lists; import common.collect.Lists;
import common.model.BlockLayer;
public class ChunkRenderDispatcher public class ChunkRenderDispatcher
{ {

View file

@ -7,7 +7,6 @@ import client.renderer.chunk.ChunkBuilder.ListenableFuture;
import common.collect.Lists; import common.collect.Lists;
import common.entity.Entity; import common.entity.Entity;
import common.log.Log; import common.log.Log;
import common.model.BlockLayer;
public class ChunkRenderWorker implements Runnable public class ChunkRenderWorker implements Runnable
{ {

View file

@ -4,7 +4,6 @@ import java.util.List;
import client.renderer.RenderBuffer; import client.renderer.RenderBuffer;
import common.collect.Lists; import common.collect.Lists;
import common.model.BlockLayer;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.util.Facing; import common.util.Facing;

View file

@ -24,7 +24,6 @@ import common.block.ITileEntityProvider;
import common.collect.Maps; import common.collect.Maps;
import common.collect.Sets; import common.collect.Sets;
import common.init.Blocks; import common.init.Blocks;
import common.model.BlockLayer;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
@ -170,11 +169,10 @@ public class RenderChunk
} }
} }
BlockLayer layer = block.getRenderLayer();
int idx = layer.ordinal();
if (block != Blocks.air) if (block != Blocks.air)
{ {
BlockLayer layer = block.hasTransparency() ? (block.getMaterial().isLiquid() ? BlockLayer.TRANSLUCENT : BlockLayer.CUTOUT) : BlockLayer.SOLID;
int idx = layer.ordinal();
RenderBuffer worldrenderer = generator.getRegionRenderCacheBuilder().getWorldRendererByLayerId(idx); RenderBuffer worldrenderer = generator.getRegionRenderCacheBuilder().getWorldRendererByLayerId(idx);
if (!compiledchunk.isLayerStarted(layer)) if (!compiledchunk.isLayerStarted(layer))

View file

@ -37,7 +37,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.StackSize; import common.item.StackSize;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.GuiPosition; import common.model.GuiPosition;
@ -1070,8 +1069,8 @@ public class Block {
} }
@Clientside @Clientside
public BlockLayer getRenderLayer() { public boolean hasTransparency() {
return BlockLayer.SOLID; return false;
} }
@Clientside @Clientside

View file

@ -10,7 +10,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.StackSize; import common.item.StackSize;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -170,8 +169,8 @@ public class BlockBed extends Block implements Rotatable {
} }
@Clientside @Clientside
public BlockLayer getRenderLayer() { public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
// public void onBlockHarvested(World worldIn, BlockPos pos, State state, EntityNPC player) { // public void onBlockHarvested(World worldIn, BlockPos pos, State state, EntityNPC player) {

View file

@ -4,7 +4,6 @@ import common.block.Block;
import common.block.Material; import common.block.Material;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
@ -12,6 +11,7 @@ import common.properties.PropertyInteger;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.world.AWorldServer; import common.world.AWorldServer;
import common.world.IWorldAccess; import common.world.IWorldAccess;
@ -192,10 +192,10 @@ public class BlockCake extends Block
return null; return null;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -13,7 +13,6 @@ import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.StackSize; import common.item.StackSize;
import common.item.tool.ItemKey; import common.item.tool.ItemKey;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -252,8 +251,8 @@ public class BlockDoor extends Block implements Rotatable {
} }
@Clientside @Clientside
public BlockLayer getRenderLayer() { public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public static Facing getFacing(IBlockAccess world, BlockPos pos) { public static Facing getFacing(IBlockAccess world, BlockPos pos) {

View file

@ -12,12 +12,12 @@ import common.init.Blocks;
import common.init.Items; import common.init.Items;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.GuiPosition; import common.model.GuiPosition;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.world.State; import common.world.State;
import common.world.World; import common.world.World;
@ -200,10 +200,10 @@ public class BlockFlowerPot extends Block
return Items.flowerpot; return Items.flowerpot;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {
if(this.content == null) if(this.content == null)

View file

@ -4,9 +4,9 @@ import common.block.Block;
import common.block.Material; import common.block.Material;
import common.entity.Entity; import common.entity.Entity;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.Serverside; import common.util.Serverside;
import common.world.AWorldServer; import common.world.AWorldServer;
@ -23,8 +23,9 @@ public class BlockGlass extends Block {
return 0; return 0;
} }
public BlockLayer getRenderLayer() { @Clientside
return BlockLayer.CUTOUT; public boolean hasTransparency() {
return true;
} }
public boolean isOpaqueCube() { public boolean isOpaqueCube() {

View file

@ -5,7 +5,6 @@ import common.block.Rotatable;
import common.block.Material; import common.block.Material;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -13,6 +12,7 @@ import common.model.GuiPosition;
import common.properties.Property; import common.properties.Property;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.world.AWorldServer; import common.world.AWorldServer;
import common.world.IWorldAccess; import common.world.IWorldAccess;
@ -132,10 +132,10 @@ public class BlockLadder extends Block implements Rotatable
return worldIn.getState(pos.offset(facing.getOpposite())).getBlock().isNormalCube(); return worldIn.getState(pos.offset(facing.getOpposite())).getBlock().isNormalCube();
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -8,7 +8,6 @@ import common.entity.Entity;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -18,6 +17,7 @@ import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.Serverside; import common.util.Serverside;
import common.world.AWorldServer; import common.world.AWorldServer;
@ -181,10 +181,10 @@ public class BlockPane extends Block
return true; return true;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -7,31 +7,24 @@ import common.block.Block;
import common.block.Rotatable; import common.block.Rotatable;
import common.block.Material; import common.block.Material;
import common.entity.Entity; import common.entity.Entity;
import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.init.BlockRegistry; import common.init.BlockRegistry;
import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.GuiPosition; import common.model.GuiPosition;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyEnum; import common.properties.PropertyEnum;
import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.HitPosition; import common.util.HitPosition;
import common.util.Identifyable; import common.util.Identifyable;
import common.util.Vec3; import common.util.Vec3;
import common.world.Explosion;
import common.world.IBlockAccess; import common.world.IBlockAccess;
import common.world.IWorldAccess; import common.world.IWorldAccess;
import common.world.State; import common.world.State;
import common.world.World; import common.world.World;
import common.world.AWorldServer;
public class BlockStairs extends Block implements Rotatable public class BlockStairs extends Block implements Rotatable
{ {
@ -561,117 +554,6 @@ public class BlockStairs extends Block implements Rotatable
this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
} }
public void displayTick(World worldIn, BlockPos pos, State state, Random rand)
{
this.base.displayTick(worldIn, pos, state, rand);
}
public void onStartBreak(World worldIn, BlockPos pos, EntityNPC playerIn)
{
this.base.onStartBreak(worldIn, pos, playerIn);
}
/**
* Called when a player destroys this Block
*/
public void onBroken(World worldIn, BlockPos pos, State state)
{
this.base.onBroken(worldIn, pos, state);
}
@Clientside
public int getLightmapValue(IWorldAccess worldIn, BlockPos pos)
{
return this.base.getLightmapValue(worldIn, pos);
}
/**
* Returns how much this block can resist explosions from the passed in entity.
*/
public float getResistance(Entity exploder)
{
return this.base.getResistance(exploder);
}
@Clientside
public BlockLayer getRenderLayer()
{
return this.base.getRenderLayer();
}
/**
* How many world ticks before ticking
*/
public int tickRate(World worldIn, BlockPos pos)
{
return this.base.tickRate(worldIn, pos);
}
public BoundingBox getSelectionBox(World worldIn, BlockPos pos)
{
return this.base.getSelectionBox(worldIn, pos);
}
public Vec3 getAcceleration(World worldIn, BlockPos pos, Entity entityIn, Vec3 motion)
{
return this.base.getAcceleration(worldIn, pos, entityIn, motion);
}
public boolean canRayTrace(State state, boolean liquid)
{
return this.base.canRayTrace(state, liquid);
}
public boolean canPlace(World worldIn, BlockPos pos)
{
return this.base.canPlace(worldIn, pos);
}
public void onAdded(AWorldServer worldIn, BlockPos pos, State state)
{
this.onUpdate(worldIn, pos, this.baseState, Blocks.air);
this.base.onAdded(worldIn, pos, this.baseState);
}
public void onRemoved(AWorldServer worldIn, BlockPos pos, State state)
{
this.base.onRemoved(worldIn, pos, this.baseState);
}
/**
* Triggered whenever an entity collides with this block (enters into the block)
*/
public void onCollideMove(World worldIn, BlockPos pos, Entity entityIn)
{
this.base.onCollideMove(worldIn, pos, entityIn);
}
public void tick(AWorldServer worldIn, BlockPos pos, State state, Random rand)
{
this.base.tick(worldIn, pos, state, rand);
}
public boolean onUse(World worldIn, BlockPos pos, State state, EntityNPC playerIn, Facing side, float hitX, float hitY, float hitZ)
{
return this.base.onUse(worldIn, pos, this.baseState, playerIn, Facing.DOWN, 0.0F, 0.0F, 0.0F);
}
/**
* Called when this Block is destroyed by an Explosion
*/
public void onDestroyedExplosion(World worldIn, BlockPos pos, Explosion explosionIn, State prevState)
{
this.base.onDestroyedExplosion(worldIn, pos, explosionIn, prevState);
}
// /**
// * Get the MapColor for this Block and the given BlockState
// */
// public MapColor getMapColor(IBlockState state)
// {
// return this.modelBlock.getMapColor(this.modelState);
// }
/** /**
* Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the
* IBlockstate * IBlockstate

View file

@ -7,7 +7,6 @@ import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.tool.ItemKey; import common.item.tool.ItemKey;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -16,6 +15,7 @@ import common.properties.PropertyBool;
import common.properties.PropertyEnum; import common.properties.PropertyEnum;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.HitPosition; import common.util.HitPosition;
import common.util.Identifyable; import common.util.Identifyable;
@ -168,10 +168,10 @@ public class BlockTrapDoor extends Block implements Rotatable
return iblockstate; return iblockstate;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -4,10 +4,10 @@ import common.block.Block;
import common.block.Material; import common.block.Material;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.world.State; import common.world.State;
import common.world.World; import common.world.World;
import common.world.AWorldServer; import common.world.AWorldServer;
@ -87,8 +87,8 @@ public class BlockBush extends Block
return false; return false;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
} }

View file

@ -6,7 +6,6 @@ import common.entity.DamageSource;
import common.entity.Entity; import common.entity.Entity;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
@ -14,6 +13,7 @@ import common.properties.PropertyInteger;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.vars.Vars; import common.vars.Vars;
import common.world.State; import common.world.State;
@ -140,10 +140,10 @@ public class BlockCactus extends Block
entityIn.attackEntityFrom(DamageSource.cactus, 1); entityIn.attackEntityFrom(DamageSource.cactus, 1);
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -5,13 +5,13 @@ import common.block.Material;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyBool; import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside;
import common.vars.Vars; import common.vars.Vars;
import common.world.IWorldAccess; import common.world.IWorldAccess;
import common.world.State; import common.world.State;
@ -92,10 +92,10 @@ public class BlockGrass extends Block implements IGrowable
return new Property[] {SNOWY}; return new Property[] {SNOWY};
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {
if(state.getValue(SNOWY)) if(state.getValue(SNOWY))

View file

@ -2,7 +2,7 @@ package common.block.foliage;
import common.block.Block; import common.block.Block;
import common.block.Material; import common.block.Material;
import common.model.BlockLayer; import common.util.Clientside;
public class BlockLeavesBase extends Block public class BlockLeavesBase extends Block
{ {
@ -26,10 +26,10 @@ public class BlockLeavesBase extends Block
// this.transparent = transparent; // this.transparent = transparent;
// } // }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return /* this.transparent ? */ BlockLayer.CUTOUT; // : BlockLayer.SOLID; return true;
} }
public boolean isVisuallyOpaque() public boolean isVisuallyOpaque()
{ {

View file

@ -5,13 +5,13 @@ import common.block.Material;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyBool; import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside;
import common.util.ParticleType; import common.util.ParticleType;
import common.vars.Vars; import common.vars.Vars;
import common.world.IWorldAccess; import common.world.IWorldAccess;
@ -93,10 +93,10 @@ public class BlockMycelium extends Block
return new Property[] {SNOWY}; return new Property[] {SNOWY};
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {
if(state.getValue(SNOWY)) if(state.getValue(SNOWY))

View file

@ -4,7 +4,6 @@ import common.block.Block;
import common.block.Material; import common.block.Material;
import common.init.Blocks; import common.init.Blocks;
import common.item.StackSize; import common.item.StackSize;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.GuiPosition; import common.model.GuiPosition;
@ -13,6 +12,7 @@ import common.properties.PropertyInteger;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.vars.Vars; import common.vars.Vars;
import common.world.State; import common.world.State;
@ -139,10 +139,10 @@ public class BlockReed extends Block
return false; return false;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -6,7 +6,6 @@ import common.entity.Entity;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
@ -14,6 +13,7 @@ import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.vars.Vars; import common.vars.Vars;
import common.world.AWorldServer; import common.world.AWorldServer;
import common.world.IWorldAccess; import common.world.IWorldAccess;
@ -50,10 +50,10 @@ public class BlockSwamp extends Block
entityIn.motionZ *= 0.6D; entityIn.motionZ *= 0.6D;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {
if(state.getValue(SNOWY)) if(state.getValue(SNOWY))

View file

@ -5,13 +5,13 @@ import common.block.Material;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyBool; import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside;
import common.world.IWorldAccess; import common.world.IWorldAccess;
import common.world.State; import common.world.State;
@ -42,10 +42,10 @@ public class BlockTianSoil extends Block
return new Property[] {SNOWY}; return new Property[] {SNOWY};
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {
if(state.getValue(SNOWY)) if(state.getValue(SNOWY))

View file

@ -9,7 +9,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.tool.ItemShears; import common.item.tool.ItemShears;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -20,6 +19,7 @@ import common.rng.Random;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.vars.Vars; import common.vars.Vars;
import common.world.IWorldAccess; import common.world.IWorldAccess;
@ -414,10 +414,10 @@ public class BlockVine extends Block
} }
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -9,12 +9,12 @@ import common.entity.Entity;
import common.init.Blocks; import common.init.Blocks;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyInteger; import common.properties.PropertyInteger;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.ExtMath; import common.util.ExtMath;
import common.util.Facing; import common.util.Facing;
import common.util.Pair; import common.util.Pair;
@ -223,10 +223,10 @@ public abstract class BlockLiquid extends Block
return (k > l ? k : l) | (i1 > j1 ? i1 : j1) << 16; return (k > l ? k : l) | (i1 > j1 ? i1 : j1) << 16;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return this.opaque ? BlockLayer.SOLID : BlockLayer.TRANSLUCENT; return !this.opaque;
} }
public void displayTick(World worldIn, BlockPos pos, State state, Random rand) public void displayTick(World worldIn, BlockPos pos, State state, Random rand)
{ {

View file

@ -6,7 +6,6 @@ import common.block.Block;
import common.block.Material; import common.block.Material;
import common.block.artificial.BlockPortal; import common.block.artificial.BlockPortal;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -17,6 +16,7 @@ import common.properties.PropertyInteger;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.ParticleType; import common.util.ParticleType;
import common.util.PortalType; import common.util.PortalType;
@ -427,10 +427,10 @@ public class BlockFire extends Block
// return MapColor.tntColor; // return MapColor.tntColor;
// } // }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -6,10 +6,10 @@ import common.enchantment.EnchantmentHelper;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.rng.Random; import common.rng.Random;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.vars.Vars; import common.vars.Vars;
import common.world.LightType; import common.world.LightType;
@ -30,8 +30,9 @@ public class BlockIce extends Block {
return false; return false;
} }
public BlockLayer getRenderLayer() { @Clientside
return BlockLayer.CUTOUT; public boolean hasTransparency() {
return true;
} }
public boolean canRender(IWorldAccess world, BlockPos pos, Facing side) { public boolean canRender(IWorldAccess world, BlockPos pos, Facing side) {

View file

@ -6,13 +6,13 @@ import common.init.Blocks;
import common.init.Items; import common.init.Items;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyBool; import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside;
import common.world.IWorldAccess; import common.world.IWorldAccess;
import common.world.State; import common.world.State;
@ -38,10 +38,10 @@ public class BlockPodzol extends Block {
return Items.dirt; return Items.dirt;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {
if(state.getValue(SNOWY)) if(state.getValue(SNOWY))

View file

@ -6,13 +6,13 @@ import common.entity.Entity;
import common.init.Items; import common.init.Items;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.GuiPosition; import common.model.GuiPosition;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.world.State; import common.world.State;
import common.world.World; import common.world.World;
@ -63,10 +63,10 @@ public class BlockWeb extends Block
return true; return true;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {
return provider.getModel("web").cross(); return provider.getModel("web").cross();

View file

@ -2,7 +2,6 @@ package common.block.tech;
import common.block.ITileEntityProvider; import common.block.ITileEntityProvider;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.item.Item;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.tileentity.TileEntityDisplay; import common.tileentity.TileEntityDisplay;
import common.util.BlockPos; import common.util.BlockPos;

View file

@ -14,7 +14,6 @@ import common.item.CheatTab;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
import common.model.GuiPosition;
import common.properties.Property; import common.properties.Property;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.ExtMath; import common.util.ExtMath;

View file

@ -6,7 +6,6 @@ import common.block.artificial.BlockFence;
import common.entity.Entity; import common.entity.Entity;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.GuiPosition; import common.model.GuiPosition;

View file

@ -7,7 +7,6 @@ import common.block.ITileEntityProvider;
import common.block.Material; import common.block.Material;
import common.entity.Entity; import common.entity.Entity;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
@ -17,6 +16,7 @@ import common.tileentity.TileEntity;
import common.tileentity.TileEntityBrewingStand; import common.tileentity.TileEntityBrewingStand;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.ParticleType; import common.util.ParticleType;
import common.world.State; import common.world.State;
@ -433,10 +433,10 @@ public class BlockBrewingStand extends Block implements ITileEntityProvider
super.onRemoved(worldIn, pos, state); super.onRemoved(worldIn, pos, state);
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -12,7 +12,6 @@ import common.entity.projectile.EntityArrow;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;

View file

@ -8,14 +8,12 @@ import common.entity.Entity;
import common.entity.item.EntityItem; import common.entity.item.EntityItem;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.init.Items; import common.init.Items;
import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyInteger; import common.properties.PropertyInteger;
import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.ExtMath; import common.util.ExtMath;

View file

@ -2,10 +2,10 @@ package common.block.tech;
import common.block.Material; import common.block.Material;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.util.Clientside;
import common.tileentity.DeviceEffectGenerator; import common.tileentity.DeviceEffectGenerator;
import common.world.State; import common.world.State;
@ -52,8 +52,9 @@ public class BlockEffectGenerator extends BlockMachine {
return false; return false;
} }
public BlockLayer getRenderLayer() { @Clientside
return BlockLayer.CUTOUT; public boolean hasTransparency() {
return true;
} }
public Model getModel(ModelProvider provider, String name, State state) { public Model getModel(ModelProvider provider, String name, State state) {

View file

@ -10,7 +10,6 @@ import common.entity.Entity;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -19,6 +18,7 @@ import common.tileentity.TileEntity;
import common.tileentity.TileEntityHopper; import common.tileentity.TileEntityHopper;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.world.IWorldAccess; import common.world.IWorldAccess;
import common.world.State; import common.world.State;
@ -179,10 +179,10 @@ public class BlockHopper extends Block implements ITileEntityProvider, Direction
return true; return true;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -6,7 +6,6 @@ import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;

View file

@ -4,7 +4,6 @@ import common.entity.npc.EntityNPC;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack;
import common.properties.Property; import common.properties.Property;
import common.properties.PropertyInteger; import common.properties.PropertyInteger;
import common.rng.Random; import common.rng.Random;

View file

@ -7,7 +7,6 @@ import common.entity.item.EntityNuke;
import common.init.Blocks; import common.init.Blocks;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.util.BlockPos; import common.util.BlockPos;

View file

@ -13,7 +13,6 @@ import common.entity.types.EntityLiving;
import common.init.Blocks; import common.init.Blocks;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;

View file

@ -7,7 +7,6 @@ import common.block.Material;
import common.collect.Lists; import common.collect.Lists;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -16,6 +15,7 @@ import common.properties.Property;
import common.properties.PropertyEnum; import common.properties.PropertyEnum;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.DirectionVec; import common.util.DirectionVec;
import common.util.Facing; import common.util.Facing;
import common.util.HitPosition; import common.util.HitPosition;
@ -158,10 +158,10 @@ public class BlockRail extends Block
return 0; return 0;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
public void onRemoved(AWorldServer worldIn, BlockPos pos, State state) public void onRemoved(AWorldServer worldIn, BlockPos pos, State state)
{ {

View file

@ -6,8 +6,6 @@ import common.entity.npc.EntityNPC;
import common.init.Blocks; import common.init.Blocks;
import common.init.Items; import common.init.Items;
import common.item.Item; import common.item.Item;
import common.item.ItemStack;
import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Facing; import common.util.Facing;
import common.world.State; import common.world.State;

View file

@ -9,7 +9,6 @@ import common.block.artificial.BlockWall;
import common.entity.types.EntityLiving; import common.entity.types.EntityLiving;
import common.init.Blocks; import common.init.Blocks;
import common.item.CheatTab; import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -17,6 +16,7 @@ import common.model.GuiPosition;
import common.properties.Property; import common.properties.Property;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.HitPosition; import common.util.HitPosition;
import common.util.Vec3; import common.util.Vec3;
@ -219,10 +219,10 @@ public abstract class BlockTorch extends Block implements Directional
return super.rayTrace(worldIn, pos, start, end); return super.rayTrace(worldIn, pos, start, end);
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -7,12 +7,8 @@ import common.block.Material;
import common.entity.Entity; import common.entity.Entity;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.init.Blocks; import common.init.Blocks;
import common.init.Items;
import common.item.CheatTab;
import common.item.Item;
import common.item.StackSize; import common.item.StackSize;
import common.item.tool.ItemShears; import common.item.tool.ItemShears;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -22,6 +18,7 @@ import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.world.IBlockAccess; import common.world.IBlockAccess;
import common.world.IWorldAccess; import common.world.IWorldAccess;
@ -74,10 +71,10 @@ public class BlockTripWire extends Block
return false; return false;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
/** /**
* Called when a neighboring block changes. * Called when a neighboring block changes.

View file

@ -7,8 +7,6 @@ import common.entity.types.EntityLiving;
import common.init.Blocks; import common.init.Blocks;
import common.init.SoundEvent; import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -18,6 +16,7 @@ import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.Serverside; import common.util.Serverside;
import common.world.IWorldAccess; import common.world.IWorldAccess;
@ -325,10 +324,10 @@ public class BlockTripWireHook extends Block implements Rotatable
return true; return true;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -7,9 +7,7 @@ import java.util.Set;
import common.block.Block; import common.block.Block;
import common.block.Material; import common.block.Material;
import common.collect.Sets; import common.collect.Sets;
import common.item.Item;
import common.item.StackSize; import common.item.StackSize;
import common.model.BlockLayer;
import common.model.Model; import common.model.Model;
import common.model.ModelProvider; import common.model.ModelProvider;
import common.model.ModelRotation; import common.model.ModelRotation;
@ -19,6 +17,7 @@ import common.properties.PropertyBool;
import common.rng.Random; import common.rng.Random;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing; import common.util.Facing;
import common.util.Serverside; import common.util.Serverside;
import common.world.IBlockAccess; import common.world.IBlockAccess;
@ -327,10 +326,10 @@ public class BlockWire extends Block
return state.getBlock() == this; return state.getBlock() == this;
} }
public BlockLayer getRenderLayer() @Clientside
{ public boolean hasTransparency() {
return BlockLayer.CUTOUT; return true;
} }
protected Property[] getProperties() protected Property[] getProperties()
{ {

View file

@ -4,8 +4,6 @@ import common.effect.Effect;
import common.effect.StatusEffect; import common.effect.StatusEffect;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.Model;
import common.model.ModelProvider;
import common.world.World; import common.world.World;
public class ItemFishFood extends ItemFood public class ItemFishFood extends ItemFood

View file

@ -17,8 +17,6 @@ import common.item.ItemAction;
import common.item.ItemControl; import common.item.ItemControl;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.StackSize; import common.item.StackSize;
import common.model.Model;
import common.model.ModelProvider;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside; import common.util.Clientside;

View file

@ -3,7 +3,6 @@ package common.item.consumable;
import common.entity.npc.EntityNPC; import common.entity.npc.EntityNPC;
import common.init.Items; import common.init.Items;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.GuiPosition;
import common.world.World; import common.world.World;
public class ItemSoup extends ItemFood public class ItemSoup extends ItemFood

View file

@ -12,8 +12,6 @@ import common.init.ToolMaterial;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.Model;
import common.model.ModelProvider;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.BoundingBox; import common.util.BoundingBox;

View file

@ -6,8 +6,6 @@ import common.init.Items;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.Model;
import common.model.ModelProvider;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.HitPosition; import common.util.HitPosition;
import common.world.World; import common.world.World;

View file

@ -22,8 +22,6 @@ import common.init.SoundEvent;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.Model;
import common.model.ModelProvider;
import common.tileentity.TileEntity; import common.tileentity.TileEntity;
import common.tileentity.TileEntityDispenser; import common.tileentity.TileEntityDispenser;
import common.util.BlockPos; import common.util.BlockPos;

View file

@ -13,8 +13,6 @@ import common.init.Items;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.RngLoot; import common.item.RngLoot;
import common.model.Model;
import common.model.ModelProvider;
import common.rng.Random; import common.rng.Random;
import common.util.Clientside; import common.util.Clientside;

View file

@ -4,8 +4,6 @@ import common.attributes.UsageSlot;
import common.init.ToolMaterial; import common.init.ToolMaterial;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.Model;
import common.model.ModelProvider;
import common.util.Clientside; import common.util.Clientside;
public class ItemHorseArmor extends Item { public class ItemHorseArmor extends Item {

View file

@ -2,8 +2,6 @@ package common.item.material;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.model.Model;
import common.model.ModelProvider;
import common.util.Clientside; import common.util.Clientside;
public class ItemRecord extends Item { public class ItemRecord extends Item {

View file

@ -6,7 +6,6 @@ import common.entity.npc.EntityNPC;
import common.item.CheatTab; import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.GuiPosition;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Facing; import common.util.Facing;
import common.world.World; import common.world.World;

View file

@ -7,7 +7,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.world.World; import common.world.World;
public class ItemCarrotOnAStick extends Item public class ItemCarrotOnAStick extends Item

View file

@ -5,7 +5,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemControl; import common.item.ItemControl;
import common.item.ItemStack; import common.item.ItemStack;
import common.model.GuiPosition;
import common.util.BlockPos; import common.util.BlockPos;
import common.world.World; import common.world.World;

View file

@ -7,7 +7,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.util.Clientside; import common.util.Clientside;
import common.world.World; import common.world.World;

View file

@ -8,7 +8,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Facing; import common.util.Facing;
import common.world.State; import common.world.State;

View file

@ -10,7 +10,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.util.BoundingBox; import common.util.BoundingBox;
import common.util.Vec3; import common.util.Vec3;
import common.world.World; import common.world.World;

View file

@ -7,7 +7,6 @@ import common.item.CheatTab;
import common.item.Item; import common.item.Item;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.util.BlockPos; import common.util.BlockPos;
import common.world.World; import common.world.World;

View file

@ -9,7 +9,6 @@ import common.item.Item;
import common.item.ItemControl; import common.item.ItemControl;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.util.BlockPos; import common.util.BlockPos;
import common.util.Clientside; import common.util.Clientside;
import common.util.ExtMath; import common.util.ExtMath;
@ -22,35 +21,14 @@ public abstract class ItemWand extends Item {
public ItemWand() { public ItemWand() {
this.setUnstackable(); this.setUnstackable();
this.setTab(CheatTab.TOOLS); this.setTab(CheatTab.TOOLS);
this.setGleaming(); this.setGleaming();
} }
// public boolean canBreakBlocks() {
// return false;
// }
//
// public final boolean canUseInAir() {
// return true;
// }
// public boolean ignoresBlocks() {
// return true;
// }
// public boolean itemInteractionForEntity(ItemStack stack, EntityNPC playerIn, EntityLiving target)
// {
// if(playerIn.worldObj.client)
// return true;
// this.onUse(stack, (EntityNPCMP)playerIn, (IWorldServer)playerIn.worldObj, new Vec3(target.posX, target.posY + target.height / 2.0, target.posZ));
// return true;
// }
public final boolean onAction(ItemStack stack, EntityNPC player, World world, ItemControl control, BlockPos block) { public final boolean onAction(ItemStack stack, EntityNPC player, World world, ItemControl control, BlockPos block) {
if(control == ItemControl.SECONDARY && !world.client && block == null) { if(control == ItemControl.SECONDARY && !world.client && block == null) {
BlockPos vec = world.getBlockTrace(player, this.getRange(stack, player)); BlockPos vec = world.getBlockTrace(player, this.getRange(stack, player));
if(vec != null) if(vec != null)
this.onUse(stack, player, (AWorldServer)world, new Vec3( this.onUse(stack, player, (AWorldServer)world, new Vec3(ExtMath.floord(vec.getX()) + 0.5, ExtMath.floord(vec.getY()) + 1.0, ExtMath.floord(vec.getZ()) + 0.5));
ExtMath.floord(vec.getX()) + 0.5, ExtMath.floord(vec.getY()) + 1.0, ExtMath.floord(vec.getZ()) + 0.5));
} }
return control == ItemControl.SECONDARY; return control == ItemControl.SECONDARY;
} }
@ -58,28 +36,18 @@ public abstract class ItemWand extends Item {
public final boolean onItemUse(ItemStack stack, EntityNPC player, World world, BlockPos pos, Facing side, float hitX, float hitY, float hitZ) { public final boolean onItemUse(ItemStack stack, EntityNPC player, World world, BlockPos pos, Facing side, float hitX, float hitY, float hitZ) {
if(world.client) if(world.client)
return true; return true;
// EntityNPCMP entity = (EntityNPCMP)player; if(pos != null)
if(pos != null) { this.onUse(stack, player, (AWorldServer)world, new Vec3(pos.getX() + hitX, pos.getY() + hitY, pos.getZ() + hitZ));
// pos = side.getAxisDirection() == AxisDirection.NEGATIVE ? pos.offset(side) : pos;
this.onUse(stack, player, (AWorldServer)world, new Vec3(pos.getX() + hitX, pos.getY() + hitY, pos.getZ() + hitZ));
}
return true; return true;
} }
@Clientside @Clientside
public void addInformation(ItemStack stack, EntityNPC playerIn, List<String> tooltip) public void addInformation(ItemStack stack, EntityNPC playerIn, List<String> tooltip) {
{
tooltip.add(TextColor.DGREEN + "Reichweite: " + TextColor.GREEN + this.getRange(stack, playerIn) + " Blöcke"); tooltip.add(TextColor.DGREEN + "Reichweite: " + TextColor.GREEN + this.getRange(stack, playerIn) + " Blöcke");
} }
// public boolean hitEntity(ItemStack stack, EntityLivingBase target, EntityLivingBase attacker) {
// if(attacker.worldObj.client)
// return true;
// this.onUse(stack, (EntityNPCMP)attacker, (IWorldServer)attacker.worldObj, new Vec3(target.posX, target.posY + target.height / 2.0, target.posZ));
// return true;
// }
public abstract int getRange(ItemStack stack, EntityNPC player); public abstract int getRange(ItemStack stack, EntityNPC player);
public abstract void onUse(ItemStack stack, EntityNPC player, AWorldServer world, Vec3 vec); public abstract void onUse(ItemStack stack, EntityNPC player, AWorldServer world, Vec3 vec);
public WieldType getWieldType() { public WieldType getWieldType() {

View file

@ -11,7 +11,6 @@ import common.item.Item;
import common.item.ItemAction; import common.item.ItemAction;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.util.Clientside; import common.util.Clientside;
import common.world.World; import common.world.World;

View file

@ -11,7 +11,6 @@ import common.item.Item;
import common.item.ItemAction; import common.item.ItemAction;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.rng.Random; import common.rng.Random;
import common.util.Clientside; import common.util.Clientside;
import common.world.World; import common.world.World;

View file

@ -11,7 +11,6 @@ import common.item.Item;
import common.item.ItemAction; import common.item.ItemAction;
import common.item.ItemStack; import common.item.ItemStack;
import common.item.WieldType; import common.item.WieldType;
import common.model.GuiPosition;
import common.util.BlockPos; import common.util.BlockPos;
import common.world.World; import common.world.World;

View file

@ -5,123 +5,110 @@ import common.util.Facing;
import common.util.Matrix4f; import common.util.Matrix4f;
import common.util.Vector3f; import common.util.Vector3f;
public enum ModelRotation public enum ModelRotation {
{ X0_Y0(0, 0),
X0_Y0(0, 0), X0_Y90(0, 90),
X0_Y90(0, 90), X0_Y180(0, 180),
X0_Y180(0, 180), X0_Y270(0, 270),
X0_Y270(0, 270), X90_Y0(90, 0),
X90_Y0(90, 0), X90_Y90(90, 90),
X90_Y90(90, 90), X90_Y180(90, 180),
X90_Y180(90, 180), X90_Y270(90, 270),
X90_Y270(90, 270), X180_Y0(180, 0),
X180_Y0(180, 0), X180_Y90(180, 90),
X180_Y90(180, 90), X180_Y180(180, 180),
X180_Y180(180, 180), X180_Y270(180, 270),
X180_Y270(180, 270), X270_Y0(270, 0),
X270_Y0(270, 0), X270_Y90(270, 90),
X270_Y90(270, 90), X270_Y180(270, 180),
X270_Y180(270, 180), X270_Y270(270, 270);
X270_Y270(270, 270);
private final Matrix4f matrix4d; private final Matrix4f matrix4d;
private final int quartersX; private final int quartersX;
private final int quartersY; private final int quartersY;
private ModelRotation(int x, int y) private ModelRotation(int x, int y) {
{ this.matrix4d = new Matrix4f();
this.matrix4d = new Matrix4f(); Matrix4f mat1 = new Matrix4f();
Matrix4f mat1 = new Matrix4f(); mat1.setIdentity();
mat1.setIdentity(); Matrix4f.rotate((float)(-x) * 0.017453292F, new Vector3f(1.0F, 0.0F, 0.0F), mat1, mat1);
Matrix4f.rotate((float)(-x) * 0.017453292F, new Vector3f(1.0F, 0.0F, 0.0F), mat1, mat1); this.quartersX = ExtMath.absi(x / 90);
this.quartersX = ExtMath.absi(x / 90); Matrix4f mat2 = new Matrix4f();
Matrix4f mat2 = new Matrix4f(); mat2.setIdentity();
mat2.setIdentity(); Matrix4f.rotate((float)(-y) * 0.017453292F, new Vector3f(0.0F, 1.0F, 0.0F), mat2, mat2);
Matrix4f.rotate((float)(-y) * 0.017453292F, new Vector3f(0.0F, 1.0F, 0.0F), mat2, mat2); this.quartersY = ExtMath.absi(y / 90);
this.quartersY = ExtMath.absi(y / 90); Matrix4f.mul(mat2, mat1, this.matrix4d);
Matrix4f.mul(mat2, mat1, this.matrix4d); }
}
public Matrix4f getMatrix4d() public Matrix4f getMatrix4d() {
{ return this.matrix4d;
return this.matrix4d; }
}
public Facing rotateFace(Facing face) public Facing rotateFace(Facing face) {
{ Facing dir = face;
Facing enumfacing = face;
for (int i = 0; i < this.quartersX; ++i) for(int i = 0; i < this.quartersX; ++i) {
{ dir = dir.rotateAround(Facing.Axis.X);
enumfacing = enumfacing.rotateAround(Facing.Axis.X); }
}
if (enumfacing.getAxis() != Facing.Axis.Y) if(dir.getAxis() != Facing.Axis.Y) {
{ for(int j = 0; j < this.quartersY; ++j) {
for (int j = 0; j < this.quartersY; ++j) dir = dir.rotateAround(Facing.Axis.Y);
{ }
enumfacing = enumfacing.rotateAround(Facing.Axis.Y); }
}
}
return enumfacing; return dir;
} }
public int rotateVertex(Facing facing, int vertexIndex) public int rotateVertex(Facing face, int index) {
{ int idx = index;
int i = vertexIndex;
if (facing.getAxis() == Facing.Axis.X) if(face.getAxis() == Facing.Axis.X) {
{ idx = (index + this.quartersX) % 4;
i = (vertexIndex + this.quartersX) % 4; }
}
Facing enumfacing = facing; Facing dir = face;
for (int j = 0; j < this.quartersX; ++j) for(int j = 0; j < this.quartersX; ++j) {
{ dir = dir.rotateAround(Facing.Axis.X);
enumfacing = enumfacing.rotateAround(Facing.Axis.X); }
}
if (enumfacing.getAxis() == Facing.Axis.Y) if(dir.getAxis() == Facing.Axis.Y) {
{ idx = (idx + this.quartersY) % 4;
i = (i + this.quartersY) % 4; }
}
return i; return idx;
} }
public static ModelRotation getNorthRot(Facing face) public static ModelRotation getNorthRot(Facing face) {
{ switch(face) {
switch(face) { case NORTH:
case NORTH: default:
default: return X0_Y0;
return X0_Y0; case SOUTH:
case SOUTH: return X0_Y180;
return X0_Y180; case WEST:
case WEST: return X0_Y270;
return X0_Y270; case EAST:
case EAST: return X0_Y90;
return X0_Y90; case DOWN:
case DOWN: return X270_Y0;
return X270_Y0; case UP:
case UP: return X90_Y0;
return X90_Y0; }
} }
}
public static ModelRotation getEastRot(Facing face, boolean flip) public static ModelRotation getEastRot(Facing face, boolean flip) {
{ switch(face) {
switch(face) { case NORTH:
case NORTH: default:
default: return flip ? X180_Y270 : X0_Y270;
return flip ? X180_Y270 : X0_Y270; case SOUTH:
case SOUTH: return flip ? X180_Y90 : X0_Y90;
return flip ? X180_Y90 : X0_Y90; case WEST:
case WEST: return flip ? X180_Y180 : X0_Y180;
return flip ? X180_Y180 : X0_Y180; case EAST:
case EAST: return flip ? X180_Y0 : X0_Y0;
return flip ? X180_Y0 : X0_Y0; }
} }
}
} }

View file

@ -1,5 +1,16 @@
package common.model; package common.model;
public enum TextureAnimation { public enum TextureAnimation {
FLAME_BASE, FLAME_OFFSET, BLACK_FLAME_BASE, BLACK_FLAME_OFFSET, BLUE_FLAME_BASE, BLUE_FLAME_OFFSET, MAGMA_FLOW, MAGMA_STILL, WATER_FLOW, WATER_STILL, SWAMP_WATER_FLOW, SWAMP_WATER_STILL; FLAME_BASE,
FLAME_OFFSET,
BLACK_FLAME_BASE,
BLACK_FLAME_OFFSET,
BLUE_FLAME_BASE,
BLUE_FLAME_OFFSET,
MAGMA_FLOW,
MAGMA_STILL,
WATER_FLOW,
WATER_STILL,
SWAMP_WATER_FLOW,
SWAMP_WATER_STILL;
} }