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 client.Client;
import client.renderer.chunk.BlockLayer;
import client.renderer.texture.DynamicTexture;
import client.renderer.texture.TextureMap;
import common.block.Block;
@ -22,7 +23,6 @@ import common.entity.types.EntityLiving;
import common.init.Blocks;
import common.init.Items;
import common.init.SoundEvent;
import common.model.BlockLayer;
import common.rng.Random;
import common.sound.PositionedSound;
import common.util.BlockPos;

View file

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

View file

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

View file

@ -16,6 +16,7 @@ import org.lwjgl.opengl.GL13;
import org.lwjgl.opengl.GL15;
import client.Client;
import client.renderer.chunk.BlockLayer;
import client.renderer.chunk.ChunkRenderDispatcher;
import client.renderer.chunk.CompiledChunk;
import client.renderer.chunk.RenderChunk;
@ -35,7 +36,6 @@ import common.entity.Entity;
import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving;
import common.init.Blocks;
import common.model.BlockLayer;
import common.rng.Random;
import common.sound.Sound;
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 {
SOLID("Solid"),
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.ListenableFutureTask;
import common.collect.Lists;
import common.model.BlockLayer;
public class ChunkRenderDispatcher
{

View file

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

View file

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

View file

@ -24,7 +24,6 @@ import common.block.ITileEntityProvider;
import common.collect.Maps;
import common.collect.Sets;
import common.init.Blocks;
import common.model.BlockLayer;
import common.tileentity.TileEntity;
import common.util.BlockPos;
import common.util.BoundingBox;
@ -170,11 +169,10 @@ public class RenderChunk
}
}
BlockLayer layer = block.getRenderLayer();
int idx = layer.ordinal();
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);
if (!compiledchunk.isLayerStarted(layer))

View file

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

View file

@ -10,7 +10,6 @@ import common.item.CheatTab;
import common.item.Item;
import common.item.ItemStack;
import common.item.StackSize;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.model.ModelRotation;
@ -170,8 +169,8 @@ public class BlockBed extends Block implements Rotatable {
}
@Clientside
public BlockLayer getRenderLayer() {
return BlockLayer.CUTOUT;
public boolean hasTransparency() {
return true;
}
// 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.entity.npc.EntityNPC;
import common.item.Item;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.properties.Property;
@ -12,6 +11,7 @@ import common.properties.PropertyInteger;
import common.rng.Random;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing;
import common.world.AWorldServer;
import common.world.IWorldAccess;
@ -192,10 +192,10 @@ public class BlockCake extends Block
return null;
}
public BlockLayer getRenderLayer()
{
return BlockLayer.CUTOUT;
}
@Clientside
public boolean hasTransparency() {
return true;
}
protected Property[] getProperties()
{

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -7,31 +7,24 @@ import common.block.Block;
import common.block.Rotatable;
import common.block.Material;
import common.entity.Entity;
import common.entity.npc.EntityNPC;
import common.entity.types.EntityLiving;
import common.init.BlockRegistry;
import common.init.Blocks;
import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.model.GuiPosition;
import common.properties.Property;
import common.properties.PropertyEnum;
import common.rng.Random;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing;
import common.util.HitPosition;
import common.util.Identifyable;
import common.util.Vec3;
import common.world.Explosion;
import common.world.IBlockAccess;
import common.world.IWorldAccess;
import common.world.State;
import common.world.World;
import common.world.AWorldServer;
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);
}
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
* IBlockstate

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -9,12 +9,12 @@ import common.entity.Entity;
import common.init.Blocks;
import common.init.SoundEvent;
import common.item.Item;
import common.model.BlockLayer;
import common.properties.Property;
import common.properties.PropertyInteger;
import common.rng.Random;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.ExtMath;
import common.util.Facing;
import common.util.Pair;
@ -223,10 +223,10 @@ public abstract class BlockLiquid extends Block
return (k > l ? k : l) | (i1 > j1 ? i1 : j1) << 16;
}
public BlockLayer getRenderLayer()
{
return this.opaque ? BlockLayer.SOLID : BlockLayer.TRANSLUCENT;
}
@Clientside
public boolean hasTransparency() {
return !this.opaque;
}
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.artificial.BlockPortal;
import common.init.SoundEvent;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.model.ModelRotation;
@ -17,6 +16,7 @@ import common.properties.PropertyInteger;
import common.rng.Random;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing;
import common.util.ParticleType;
import common.util.PortalType;
@ -427,10 +427,10 @@ public class BlockFire extends Block
// return MapColor.tntColor;
// }
public BlockLayer getRenderLayer()
{
return BlockLayer.CUTOUT;
}
@Clientside
public boolean hasTransparency() {
return true;
}
protected Property[] getProperties()
{

View file

@ -6,10 +6,10 @@ import common.enchantment.EnchantmentHelper;
import common.entity.npc.EntityNPC;
import common.init.Blocks;
import common.item.CheatTab;
import common.model.BlockLayer;
import common.rng.Random;
import common.tileentity.TileEntity;
import common.util.BlockPos;
import common.util.Clientside;
import common.util.Facing;
import common.vars.Vars;
import common.world.LightType;
@ -30,8 +30,9 @@ public class BlockIce extends Block {
return false;
}
public BlockLayer getRenderLayer() {
return BlockLayer.CUTOUT;
@Clientside
public boolean hasTransparency() {
return true;
}
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.item.CheatTab;
import common.item.Item;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.properties.Property;
import common.properties.PropertyBool;
import common.rng.Random;
import common.util.BlockPos;
import common.util.Clientside;
import common.world.IWorldAccess;
import common.world.State;
@ -38,10 +38,10 @@ public class BlockPodzol extends Block {
return Items.dirt;
}
public BlockLayer getRenderLayer()
{
return BlockLayer.CUTOUT;
}
@Clientside
public boolean hasTransparency() {
return true;
}
public Model getModel(ModelProvider provider, String name, State state) {
if(state.getValue(SNOWY))

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -2,10 +2,10 @@ package common.block.tech;
import common.block.Material;
import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.tileentity.TileEntity;
import common.util.Clientside;
import common.tileentity.DeviceEffectGenerator;
import common.world.State;
@ -52,8 +52,9 @@ public class BlockEffectGenerator extends BlockMachine {
return false;
}
public BlockLayer getRenderLayer() {
return BlockLayer.CUTOUT;
@Clientside
public boolean hasTransparency() {
return true;
}
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.types.EntityLiving;
import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.model.ModelRotation;
@ -19,6 +18,7 @@ import common.tileentity.TileEntity;
import common.tileentity.TileEntityHopper;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.Facing;
import common.world.IWorldAccess;
import common.world.State;
@ -179,10 +179,10 @@ public class BlockHopper extends Block implements ITileEntityProvider, Direction
return true;
}
public BlockLayer getRenderLayer()
{
return BlockLayer.CUTOUT;
}
@Clientside
public boolean hasTransparency() {
return true;
}
protected Property[] getProperties()
{

View file

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

View file

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

View file

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

View file

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

View file

@ -7,7 +7,6 @@ import common.block.Material;
import common.collect.Lists;
import common.init.Blocks;
import common.item.CheatTab;
import common.model.BlockLayer;
import common.model.Model;
import common.model.ModelProvider;
import common.model.ModelRotation;
@ -16,6 +15,7 @@ import common.properties.Property;
import common.properties.PropertyEnum;
import common.util.BlockPos;
import common.util.BoundingBox;
import common.util.Clientside;
import common.util.DirectionVec;
import common.util.Facing;
import common.util.HitPosition;
@ -158,10 +158,10 @@ public class BlockRail extends Block
return 0;
}
public BlockLayer getRenderLayer()
{
return BlockLayer.CUTOUT;
}
@Clientside
public boolean hasTransparency() {
return true;
}
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.Items;
import common.item.Item;
import common.item.ItemStack;
import common.rng.Random;
import common.util.BlockPos;
import common.util.Facing;
import common.world.State;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -9,7 +9,6 @@ import common.item.Item;
import common.item.ItemControl;
import common.item.ItemStack;
import common.item.WieldType;
import common.model.GuiPosition;
import common.util.BlockPos;
import common.util.Clientside;
import common.util.ExtMath;
@ -22,35 +21,14 @@ public abstract class ItemWand extends Item {
public ItemWand() {
this.setUnstackable();
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) {
if(control == ItemControl.SECONDARY && !world.client && block == null) {
BlockPos vec = world.getBlockTrace(player, this.getRange(stack, player));
if(vec != null)
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));
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));
}
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) {
if(world.client)
return true;
// EntityNPCMP entity = (EntityNPCMP)player;
if(pos != null) {
// 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));
}
if(pos != null)
this.onUse(stack, player, (AWorldServer)world, new Vec3(pos.getX() + hitX, pos.getY() + hitY, pos.getZ() + hitZ));
return true;
}
@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");
}
// 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 void onUse(ItemStack stack, EntityNPC player, AWorldServer world, Vec3 vec);
public WieldType getWieldType() {

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,16 @@
package common.model;
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;
}