Example #1
0
        public override bool ShouldRenderFace(BlockFace face, Block neighbor)
        {
            if (neighbor.BlockMaterial == Material.Water)
            {
                var neighborLevel = neighbor.BlockState.GetTypedValue(LEVEL);

                if (neighborLevel < BlockState.GetTypedValue(LEVEL))
                {
                    return(true);
                }

                return(false);
            }

            if (neighbor.IsWater)
            {
                return(false);
            }

            if (neighbor.Solid && (!neighbor.Transparent || neighbor.BlockMaterial.IsOpaque))
            {
                return(false);
            }

            if (neighbor.Solid && neighbor.Transparent && !neighbor.IsFullCube)
            {
                return(true);
            }

            //else if (neighbor.Transparent)
            return(base.ShouldRenderFace(face, neighbor));
        }
Example #2
0
 public override bool CanCollide()
 {
     return(!BlockState.GetTypedValue(OPEN));
 }
Example #3
0
 private int GetLevel(BlockState state)
 {
     return(7 - (state.GetTypedValue(LEVEL) & 0x7));
 }