Merge pull request #203 from SquidDev-CC/feature/turtle-models
Convert turtle rendering to use tinting
@ -13,16 +13,19 @@ import dan200.computercraft.client.render.TurtleSmartItemModel;
|
|||||||
import dan200.computercraft.shared.proxy.CCTurtleProxyCommon;
|
import dan200.computercraft.shared.proxy.CCTurtleProxyCommon;
|
||||||
import dan200.computercraft.shared.turtle.blocks.TileTurtle;
|
import dan200.computercraft.shared.turtle.blocks.TileTurtle;
|
||||||
import dan200.computercraft.shared.turtle.core.TurtleBrain;
|
import dan200.computercraft.shared.turtle.core.TurtleBrain;
|
||||||
|
import dan200.computercraft.shared.turtle.items.ItemTurtleBase;
|
||||||
|
import dan200.computercraft.shared.util.Colour;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.ItemMeshDefinition;
|
import net.minecraft.client.renderer.ItemMeshDefinition;
|
||||||
|
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
|
import net.minecraft.client.renderer.color.IItemColor;
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||||
import net.minecraft.client.resources.IResourceManager;
|
import net.minecraft.client.resources.IResourceManager;
|
||||||
import net.minecraft.client.resources.SimpleReloadableResourceManager;
|
import net.minecraft.client.resources.SimpleReloadableResourceManager;
|
||||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
@ -32,12 +35,9 @@ import net.minecraftforge.client.model.IModel;
|
|||||||
import net.minecraftforge.client.model.ModelLoaderRegistry;
|
import net.minecraftforge.client.model.ModelLoaderRegistry;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||||
import net.minecraftforge.fml.common.FMLCommonHandler;
|
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
import net.minecraftforge.fml.common.gameevent.TickEvent;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class CCTurtleProxyClient extends CCTurtleProxyCommon
|
public class CCTurtleProxyClient extends CCTurtleProxyCommon
|
||||||
{
|
{
|
||||||
public CCTurtleProxyClient()
|
public CCTurtleProxyClient()
|
||||||
@ -65,16 +65,19 @@ public class CCTurtleProxyClient extends CCTurtleProxyCommon
|
|||||||
String[] turtleModelNames = new String[] {
|
String[] turtleModelNames = new String[] {
|
||||||
"turtle_dynamic",
|
"turtle_dynamic",
|
||||||
"CC-Turtle", "CC-TurtleAdvanced",
|
"CC-Turtle", "CC-TurtleAdvanced",
|
||||||
"turtle_black", "turtle_red", "turtle_green", "turtle_brown",
|
"turtle_white",
|
||||||
"turtle_blue", "turtle_purple", "turtle_cyan", "turtle_lightGrey",
|
|
||||||
"turtle_grey", "turtle_pink", "turtle_lime", "turtle_yellow",
|
|
||||||
"turtle_lightBlue", "turtle_magenta", "turtle_orange", "turtle_white",
|
|
||||||
"turtle_elf_overlay"
|
"turtle_elf_overlay"
|
||||||
};
|
};
|
||||||
registerItemModel( ComputerCraft.Blocks.turtle, turtleMeshDefinition, turtleModelNames );
|
registerItemModel( ComputerCraft.Blocks.turtle, turtleMeshDefinition, turtleModelNames );
|
||||||
registerItemModel( ComputerCraft.Blocks.turtleExpanded, turtleMeshDefinition, turtleModelNames );
|
registerItemModel( ComputerCraft.Blocks.turtleExpanded, turtleMeshDefinition, turtleModelNames );
|
||||||
registerItemModel( ComputerCraft.Blocks.turtleAdvanced, turtleMeshDefinition, turtleModelNames );
|
registerItemModel( ComputerCraft.Blocks.turtleAdvanced, turtleMeshDefinition, turtleModelNames );
|
||||||
|
|
||||||
|
// Setup turtle colours
|
||||||
|
Minecraft.getMinecraft().getItemColors().registerItemColorHandler(
|
||||||
|
new TurtleItemColour(),
|
||||||
|
ComputerCraft.Blocks.turtle, ComputerCraft.Blocks.turtleExpanded, ComputerCraft.Blocks.turtleAdvanced
|
||||||
|
);
|
||||||
|
|
||||||
// Setup renderers
|
// Setup renderers
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer( TileTurtle.class, new TileEntityTurtleRenderer() );
|
ClientRegistry.bindTileEntitySpecialRenderer( TileTurtle.class, new TileEntityTurtleRenderer() );
|
||||||
|
|
||||||
@ -181,4 +184,20 @@ public class CCTurtleProxyClient extends CCTurtleProxyCommon
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class TurtleItemColour implements IItemColor
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public int getColorFromItemstack( ItemStack stack, int tintIndex )
|
||||||
|
{
|
||||||
|
if( tintIndex == 0 )
|
||||||
|
{
|
||||||
|
ItemTurtleBase turtle = (ItemTurtleBase) stack.getItem();
|
||||||
|
Colour colour = turtle.getColour( stack );
|
||||||
|
if( colour != null ) return colour.getHex();
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0xFFFFFF;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,47 +22,33 @@ import net.minecraft.client.renderer.GlStateManager;
|
|||||||
import net.minecraft.client.renderer.Tessellator;
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
import net.minecraft.client.renderer.VertexBuffer;
|
import net.minecraft.client.renderer.VertexBuffer;
|
||||||
import net.minecraft.client.renderer.block.model.BakedQuad;
|
import net.minecraft.client.renderer.block.model.BakedQuad;
|
||||||
|
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||||
import net.minecraft.client.renderer.block.model.ModelManager;
|
import net.minecraft.client.renderer.block.model.ModelManager;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.renderer.entity.RenderManager;
|
import net.minecraft.client.renderer.entity.RenderManager;
|
||||||
import net.minecraft.client.renderer.texture.TextureMap;
|
import net.minecraft.client.renderer.texture.TextureMap;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
||||||
import net.minecraft.client.renderer.block.model.IBakedModel;
|
|
||||||
import net.minecraft.client.renderer.vertex.VertexFormat;
|
import net.minecraft.client.renderer.vertex.VertexFormat;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.util.*;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.util.math.*;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.RayTraceResult;
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
import net.minecraftforge.client.ForgeHooksClient;
|
import net.minecraftforge.client.ForgeHooksClient;
|
||||||
|
import net.minecraftforge.client.model.pipeline.LightUtil;
|
||||||
import org.apache.commons.lang3.tuple.Pair;
|
import org.apache.commons.lang3.tuple.Pair;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import javax.vecmath.Matrix4f;
|
import javax.vecmath.Matrix4f;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurtle>
|
public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurtle>
|
||||||
{
|
{
|
||||||
private static ModelResourceLocation NORMAL_TURTLE_MODEL = new ModelResourceLocation( "computercraft:CC-Turtle", "inventory" );
|
private static ModelResourceLocation NORMAL_TURTLE_MODEL = new ModelResourceLocation( "computercraft:CC-Turtle", "inventory" );
|
||||||
private static ModelResourceLocation ADVANCED_TURTLE_MODEL = new ModelResourceLocation( "computercraft:CC-TurtleAdvanced", "inventory" );
|
private static ModelResourceLocation ADVANCED_TURTLE_MODEL = new ModelResourceLocation( "computercraft:CC-TurtleAdvanced", "inventory" );
|
||||||
private static ModelResourceLocation[] COLOUR_TURTLE_MODELS = new ModelResourceLocation[] {
|
private static ModelResourceLocation COLOUR_TURTLE_MODEL = new ModelResourceLocation( "computercraft:turtle_white", "inventory" );
|
||||||
new ModelResourceLocation( "computercraft:turtle_black", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_red", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_green", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_brown", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_blue", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_purple", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_cyan", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_lightGrey", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_grey", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_pink", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_lime", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_yellow", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_lightBlue", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_magenta", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_orange", "inventory" ),
|
|
||||||
new ModelResourceLocation( "computercraft:turtle_white", "inventory" ),
|
|
||||||
};
|
|
||||||
private static ModelResourceLocation BEGINNER_TURTLE_MODEL = new ModelResourceLocation( "computercraftedu:CC-TurtleJunior", "inventory" );
|
private static ModelResourceLocation BEGINNER_TURTLE_MODEL = new ModelResourceLocation( "computercraftedu:CC-TurtleJunior", "inventory" );
|
||||||
private static ModelResourceLocation[] BEGINNER_TURTLE_COLOUR_MODELS = new ModelResourceLocation[] {
|
private static ModelResourceLocation[] BEGINNER_TURTLE_COLOUR_MODELS = new ModelResourceLocation[] {
|
||||||
new ModelResourceLocation( "computercraftedu:turtleJunior_black", "inventory" ),
|
new ModelResourceLocation( "computercraftedu:turtleJunior_black", "inventory" ),
|
||||||
@ -115,38 +101,11 @@ public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurt
|
|||||||
{
|
{
|
||||||
case Normal:
|
case Normal:
|
||||||
default:
|
default:
|
||||||
{
|
return colour != null ? COLOUR_TURTLE_MODEL : NORMAL_TURTLE_MODEL;
|
||||||
if( colour != null )
|
|
||||||
{
|
|
||||||
return COLOUR_TURTLE_MODELS[ colour.ordinal() ];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return NORMAL_TURTLE_MODEL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case Advanced:
|
case Advanced:
|
||||||
{
|
return colour != null ? COLOUR_TURTLE_MODEL : ADVANCED_TURTLE_MODEL;
|
||||||
if( colour != null )
|
|
||||||
{
|
|
||||||
return COLOUR_TURTLE_MODELS[ colour.ordinal() ];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return ADVANCED_TURTLE_MODEL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case Beginners:
|
case Beginners:
|
||||||
{
|
return colour != null ? BEGINNER_TURTLE_COLOUR_MODELS[ colour.ordinal() ] : BEGINNER_TURTLE_MODEL;
|
||||||
if( colour != null )
|
|
||||||
{
|
|
||||||
return BEGINNER_TURTLE_COLOUR_MODELS[ colour.ordinal() ];
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return BEGINNER_TURTLE_MODEL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,7 +175,8 @@ public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurt
|
|||||||
family = ComputerFamily.Normal;
|
family = ComputerFamily.Normal;
|
||||||
overlay = null;
|
overlay = null;
|
||||||
}
|
}
|
||||||
renderModel( state, getTurtleModel( family, colour ) );
|
|
||||||
|
renderModel( state, getTurtleModel( family, colour ), colour == null ? null : new int[] { colour.getHex() } );
|
||||||
|
|
||||||
// Render the overlay
|
// Render the overlay
|
||||||
ModelResourceLocation overlayModel = getTurtleOverlayModel(
|
ModelResourceLocation overlayModel = getTurtleOverlayModel(
|
||||||
@ -231,7 +191,7 @@ public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurt
|
|||||||
GlStateManager.blendFunc( GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA );
|
GlStateManager.blendFunc( GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA );
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
renderModel( state, overlayModel );
|
renderModel( state, overlayModel, null );
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
@ -275,7 +235,7 @@ public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurt
|
|||||||
}
|
}
|
||||||
if( pair.getLeft() != null )
|
if( pair.getLeft() != null )
|
||||||
{
|
{
|
||||||
renderModel( state, pair.getLeft() );
|
renderModel( state, pair.getLeft(), null );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -286,35 +246,32 @@ public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderModel( IBlockState state, ModelResourceLocation modelLocation )
|
private void renderModel( IBlockState state, ModelResourceLocation modelLocation, int[] tints )
|
||||||
{
|
{
|
||||||
Minecraft mc = Minecraft.getMinecraft();
|
Minecraft mc = Minecraft.getMinecraft();
|
||||||
ModelManager modelManager = mc.getRenderItem().getItemModelMesher().getModelManager();
|
ModelManager modelManager = mc.getRenderItem().getItemModelMesher().getModelManager();
|
||||||
renderModel( state, modelManager.getModel( modelLocation ) );
|
renderModel( state, modelManager.getModel( modelLocation ), tints );
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderModel( IBlockState state, IBakedModel model )
|
private void renderModel( IBlockState state, IBakedModel model, int[] tints )
|
||||||
{
|
{
|
||||||
Minecraft mc = Minecraft.getMinecraft();
|
Minecraft mc = Minecraft.getMinecraft();
|
||||||
Tessellator tessellator = Tessellator.getInstance();
|
Tessellator tessellator = Tessellator.getInstance();
|
||||||
mc.getTextureManager().bindTexture( TextureMap.LOCATION_BLOCKS_TEXTURE );
|
mc.getTextureManager().bindTexture( TextureMap.LOCATION_BLOCKS_TEXTURE );
|
||||||
renderQuads( tessellator, model.getQuads( state, null, 0 ) );
|
renderQuads( tessellator, model.getQuads( state, null, 0 ), tints );
|
||||||
for( EnumFacing facing : EnumFacing.VALUES )
|
for( EnumFacing facing : EnumFacing.VALUES )
|
||||||
{
|
{
|
||||||
renderQuads( tessellator, model.getQuads( state, facing, 0 ) );
|
renderQuads( tessellator, model.getQuads( state, facing, 0 ), tints );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void renderQuads( Tessellator tessellator, List quads )
|
private void renderQuads( Tessellator tessellator, List<BakedQuad> quads, int[] tints )
|
||||||
{
|
{
|
||||||
int color = 0xFFFFFFFF;
|
|
||||||
Iterator it = quads.iterator();
|
|
||||||
VertexBuffer buffer = tessellator.getBuffer();
|
VertexBuffer buffer = tessellator.getBuffer();
|
||||||
VertexFormat format = DefaultVertexFormats.ITEM;
|
VertexFormat format = DefaultVertexFormats.ITEM;
|
||||||
buffer.begin( GL11.GL_QUADS, format );
|
buffer.begin( GL11.GL_QUADS, format );
|
||||||
while( it.hasNext() )
|
for (BakedQuad quad : quads)
|
||||||
{
|
{
|
||||||
BakedQuad quad = (BakedQuad)it.next();
|
|
||||||
VertexFormat quadFormat = quad.getFormat();
|
VertexFormat quadFormat = quad.getFormat();
|
||||||
if( quadFormat != format )
|
if( quadFormat != format )
|
||||||
{
|
{
|
||||||
@ -322,7 +279,15 @@ public class TileEntityTurtleRenderer extends TileEntitySpecialRenderer<TileTurt
|
|||||||
format = quadFormat;
|
format = quadFormat;
|
||||||
buffer.begin( GL11.GL_QUADS, format );
|
buffer.begin( GL11.GL_QUADS, format );
|
||||||
}
|
}
|
||||||
net.minecraftforge.client.model.pipeline.LightUtil.renderQuadColor( buffer, quad, color );
|
|
||||||
|
int colour = 0xFFFFFFFF;
|
||||||
|
if( quad.hasTintIndex() && tints != null )
|
||||||
|
{
|
||||||
|
int index = quad.getTintIndex();
|
||||||
|
if( index >= 0 && index < tints.length ) colour = tints[ index ] | 0xFF000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
LightUtil.renderQuadColor( buffer, quad, colour );
|
||||||
}
|
}
|
||||||
tessellator.draw();
|
tessellator.draw();
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,18 @@
|
|||||||
package dan200.computercraft.client.render;
|
package dan200.computercraft.client.render;
|
||||||
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.client.renderer.block.model.*;
|
import net.minecraft.client.renderer.block.model.BakedQuad;
|
||||||
|
import net.minecraft.client.renderer.block.model.IBakedModel;
|
||||||
|
import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
|
||||||
|
import net.minecraft.client.renderer.block.model.ItemOverrideList;
|
||||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||||
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
|
|
||||||
import net.minecraft.client.renderer.vertex.VertexFormat;
|
import net.minecraft.client.renderer.vertex.VertexFormat;
|
||||||
import net.minecraft.client.renderer.vertex.VertexFormatElement;
|
import net.minecraft.client.renderer.vertex.VertexFormatElement;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
import javax.vecmath.Matrix4f;
|
import javax.vecmath.Matrix4f;
|
||||||
import javax.vecmath.Point3f;
|
import javax.vecmath.Point3f;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Dictionary;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class TurtleMultiModel implements IBakedModel
|
public class TurtleMultiModel implements IBakedModel
|
||||||
@ -49,7 +46,7 @@ public class TurtleMultiModel implements IBakedModel
|
|||||||
{
|
{
|
||||||
if( m_faceQuads[ side.ordinal() ] == null )
|
if( m_faceQuads[ side.ordinal() ] == null )
|
||||||
{
|
{
|
||||||
List<BakedQuad> quads = new ArrayList<BakedQuad>();
|
ArrayList<BakedQuad> quads = new ArrayList<BakedQuad>();
|
||||||
if( m_overlayModel != null )
|
if( m_overlayModel != null )
|
||||||
{
|
{
|
||||||
quads.addAll( m_overlayModel.getQuads( state, side, rand ) );
|
quads.addAll( m_overlayModel.getQuads( state, side, rand ) );
|
||||||
@ -62,6 +59,7 @@ public class TurtleMultiModel implements IBakedModel
|
|||||||
{
|
{
|
||||||
quads.addAll( transformQuads( m_rightUpgradeModel.getQuads( state, side, rand ), m_rightUpgradeTransform ) );
|
quads.addAll( transformQuads( m_rightUpgradeModel.getQuads( state, side, rand ), m_rightUpgradeTransform ) );
|
||||||
}
|
}
|
||||||
|
quads.trimToSize();
|
||||||
m_faceQuads[ side.ordinal() ] = quads;
|
m_faceQuads[ side.ordinal() ] = quads;
|
||||||
}
|
}
|
||||||
return m_faceQuads[ side.ordinal() ];
|
return m_faceQuads[ side.ordinal() ];
|
||||||
@ -70,20 +68,22 @@ public class TurtleMultiModel implements IBakedModel
|
|||||||
{
|
{
|
||||||
if( m_generalQuads == null )
|
if( m_generalQuads == null )
|
||||||
{
|
{
|
||||||
m_generalQuads = new ArrayList<BakedQuad>();
|
ArrayList<BakedQuad> quads = new ArrayList<BakedQuad>();
|
||||||
m_generalQuads.addAll( m_baseModel.getQuads( state, side, rand ) );
|
quads.addAll( m_baseModel.getQuads( state, side, rand ) );
|
||||||
if( m_overlayModel != null )
|
if( m_overlayModel != null )
|
||||||
{
|
{
|
||||||
m_generalQuads.addAll( m_overlayModel.getQuads( state, side, rand ) );
|
quads.addAll( m_overlayModel.getQuads( state, side, rand ) );
|
||||||
}
|
}
|
||||||
if( m_leftUpgradeModel != null )
|
if( m_leftUpgradeModel != null )
|
||||||
{
|
{
|
||||||
m_generalQuads.addAll( transformQuads( m_leftUpgradeModel.getQuads( state, side, rand ), m_leftUpgradeTransform ) );
|
quads.addAll( transformQuads( m_leftUpgradeModel.getQuads( state, side, rand ), m_leftUpgradeTransform ) );
|
||||||
}
|
}
|
||||||
if( m_rightUpgradeModel != null )
|
if( m_rightUpgradeModel != null )
|
||||||
{
|
{
|
||||||
m_generalQuads.addAll( transformQuads( m_rightUpgradeModel.getQuads( state, side, rand ), m_rightUpgradeTransform ) );
|
quads.addAll( transformQuads( m_rightUpgradeModel.getQuads( state, side, rand ), m_rightUpgradeTransform ) );
|
||||||
}
|
}
|
||||||
|
quads.trimToSize();
|
||||||
|
m_generalQuads = quads;
|
||||||
}
|
}
|
||||||
return m_generalQuads;
|
return m_generalQuads;
|
||||||
}
|
}
|
||||||
@ -147,7 +147,7 @@ public class TurtleMultiModel implements IBakedModel
|
|||||||
{
|
{
|
||||||
int[] vertexData = quad.getVertexData().clone();
|
int[] vertexData = quad.getVertexData().clone();
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
BakedQuad copy = new BakedQuad( vertexData, quad.getTintIndex(), quad.getFace(), quad.getSprite(), quad.shouldApplyDiffuseLighting(), quad.getFormat() );
|
BakedQuad copy = new BakedQuad( vertexData, -1, quad.getFace(), quad.getSprite(), quad.shouldApplyDiffuseLighting(), quad.getFormat() );
|
||||||
VertexFormat format = copy.getFormat();
|
VertexFormat format = copy.getFormat();
|
||||||
for( int i=0; i<format.getElementCount(); ++i ) // For each vertex element
|
for( int i=0; i<format.getElementCount(); ++i ) // For each vertex element
|
||||||
{
|
{
|
||||||
|
@ -34,7 +34,6 @@ public class BlockTurtle extends BlockComputerBase
|
|||||||
public static class Properties
|
public static class Properties
|
||||||
{
|
{
|
||||||
public static final PropertyDirection FACING = PropertyDirection.create( "facing", EnumFacing.Plane.HORIZONTAL );
|
public static final PropertyDirection FACING = PropertyDirection.create( "facing", EnumFacing.Plane.HORIZONTAL );
|
||||||
public static final PropertyEnum<BlockTurtleDyeVariant> DYE = PropertyEnum.<BlockTurtleDyeVariant>create( "dye", BlockTurtleDyeVariant.class );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BlockTurtle createTurtleBlock()
|
public static BlockTurtle createTurtleBlock()
|
||||||
@ -52,7 +51,6 @@ public class BlockTurtle extends BlockComputerBase
|
|||||||
setCreativeTab( ComputerCraft.mainCreativeTab );
|
setCreativeTab( ComputerCraft.mainCreativeTab );
|
||||||
setDefaultState( this.blockState.getBaseState()
|
setDefaultState( this.blockState.getBaseState()
|
||||||
.withProperty( Properties.FACING, EnumFacing.NORTH )
|
.withProperty( Properties.FACING, EnumFacing.NORTH )
|
||||||
.withProperty( Properties.DYE, BlockTurtleDyeVariant.None )
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,10 +75,7 @@ public class BlockTurtle extends BlockComputerBase
|
|||||||
@Override
|
@Override
|
||||||
protected BlockStateContainer createBlockState()
|
protected BlockStateContainer createBlockState()
|
||||||
{
|
{
|
||||||
return new BlockStateContainer(this, new IProperty[] {
|
return new BlockStateContainer(this, Properties.FACING );
|
||||||
Properties.FACING,
|
|
||||||
Properties.DYE
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -98,18 +93,7 @@ public class BlockTurtle extends BlockComputerBase
|
|||||||
@Override
|
@Override
|
||||||
public IBlockState getActualState( IBlockState state, IBlockAccess world, BlockPos pos )
|
public IBlockState getActualState( IBlockState state, IBlockAccess world, BlockPos pos )
|
||||||
{
|
{
|
||||||
state = state.withProperty( Properties.FACING, getDirection( world, pos ) );
|
return state.withProperty( Properties.FACING, getDirection( world, pos ) );
|
||||||
TileEntity tile = world.getTileEntity( pos );
|
|
||||||
if( tile != null && tile instanceof ITurtleTile )
|
|
||||||
{
|
|
||||||
ITurtleTile turtle = (ITurtleTile)tile;
|
|
||||||
state = state.withProperty( Properties.DYE, BlockTurtleDyeVariant.fromColour( turtle.getColour() ) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
state = state.withProperty( Properties.DYE, BlockTurtleDyeVariant.None );
|
|
||||||
}
|
|
||||||
return state;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
/**
|
|
||||||
* This file is part of ComputerCraft - http://www.computercraft.info
|
|
||||||
* Copyright Daniel Ratcliffe, 2011-2016. Do not distribute without permission.
|
|
||||||
* Send enquiries to dratcliffe@gmail.com
|
|
||||||
*/
|
|
||||||
|
|
||||||
package dan200.computercraft.shared.turtle.blocks;
|
|
||||||
|
|
||||||
import dan200.computercraft.shared.util.Colour;
|
|
||||||
import net.minecraft.util.IStringSerializable;
|
|
||||||
|
|
||||||
public enum BlockTurtleDyeVariant implements IStringSerializable
|
|
||||||
{
|
|
||||||
None( "none", null ),
|
|
||||||
Black( "black", Colour.Black ),
|
|
||||||
Red( "red", Colour.Red ),
|
|
||||||
Green( "green", Colour.Green ),
|
|
||||||
Brown( "brown", Colour.Brown ),
|
|
||||||
Blue( "blue", Colour.Blue ),
|
|
||||||
Purple( "purple", Colour.Purple ),
|
|
||||||
Cyan( "cyan", Colour.Cyan ),
|
|
||||||
LightGrey( "light_grey", Colour.LightGrey ),
|
|
||||||
Grey( "grey", Colour.Grey ),
|
|
||||||
Pink( "pink", Colour.Pink ),
|
|
||||||
Lime( "lime", Colour.Lime ),
|
|
||||||
Yellow( "yellow", Colour.Yellow ),
|
|
||||||
LightBlue( "light_blue", Colour.LightBlue ),
|
|
||||||
Magenta( "magenta", Colour.Magenta ),
|
|
||||||
Orange( "orange", Colour.Orange ),
|
|
||||||
White( "white", Colour.Orange );
|
|
||||||
|
|
||||||
public static BlockTurtleDyeVariant fromColour( Colour colour )
|
|
||||||
{
|
|
||||||
if( colour != null )
|
|
||||||
{
|
|
||||||
switch( colour )
|
|
||||||
{
|
|
||||||
case Black: return Black;
|
|
||||||
case Red: return Red;
|
|
||||||
case Green: return Green;
|
|
||||||
case Brown: return Brown;
|
|
||||||
case Blue: return Blue;
|
|
||||||
case Purple: return Purple;
|
|
||||||
case Cyan: return Cyan;
|
|
||||||
case LightGrey: return LightGrey;
|
|
||||||
case Grey: return Grey;
|
|
||||||
case Pink: return Pink;
|
|
||||||
case Lime: return Lime;
|
|
||||||
case Yellow: return Yellow;
|
|
||||||
case LightBlue: return LightBlue;
|
|
||||||
case Magenta: return Magenta;
|
|
||||||
case Orange: return Orange;
|
|
||||||
case White: return White;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String m_name;
|
|
||||||
private Colour m_colour;
|
|
||||||
|
|
||||||
private BlockTurtleDyeVariant( String name, Colour colour )
|
|
||||||
{
|
|
||||||
m_name = name;
|
|
||||||
m_colour = colour;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName()
|
|
||||||
{
|
|
||||||
return m_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Colour getColour()
|
|
||||||
{
|
|
||||||
return m_colour;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString()
|
|
||||||
{
|
|
||||||
return getName();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,72 +1,8 @@
|
|||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"dye=none,facing=north": { "model": "computercraft:turtle" },
|
"facing=north": { "model": "computercraft:turtle" },
|
||||||
"dye=none,facing=south": { "model": "computercraft:turtle", "y": 180 },
|
"facing=south": { "model": "computercraft:turtle", "y": 180 },
|
||||||
"dye=none,facing=west": { "model": "computercraft:turtle", "y": 270 },
|
"facing=west": { "model": "computercraft:turtle", "y": 270 },
|
||||||
"dye=none,facing=east": { "model": "computercraft:turtle", "y": 90 },
|
"facing=east": { "model": "computercraft:turtle", "y": 90 }
|
||||||
"dye=black,facing=north": { "model": "computercraft:turtle_black" },
|
|
||||||
"dye=black,facing=south": { "model": "computercraft:turtle_black", "y": 180 },
|
|
||||||
"dye=black,facing=west": { "model": "computercraft:turtle_black", "y": 270 },
|
|
||||||
"dye=black,facing=east": { "model": "computercraft:turtle_black", "y": 90 },
|
|
||||||
"dye=blue,facing=north": { "model": "computercraft:turtle_blue" },
|
|
||||||
"dye=blue,facing=south": { "model": "computercraft:turtle_blue", "y": 180 },
|
|
||||||
"dye=blue,facing=west": { "model": "computercraft:turtle_blue", "y": 270 },
|
|
||||||
"dye=blue,facing=east": { "model": "computercraft:turtle_blue", "y": 90 },
|
|
||||||
"dye=brown,facing=north": { "model": "computercraft:turtle_brown" },
|
|
||||||
"dye=brown,facing=south": { "model": "computercraft:turtle_brown", "y": 180 },
|
|
||||||
"dye=brown,facing=west": { "model": "computercraft:turtle_brown", "y": 270 },
|
|
||||||
"dye=brown,facing=east": { "model": "computercraft:turtle_brown", "y": 90 },
|
|
||||||
"dye=cyan,facing=north": { "model": "computercraft:turtle_cyan" },
|
|
||||||
"dye=cyan,facing=south": { "model": "computercraft:turtle_cyan", "y": 180 },
|
|
||||||
"dye=cyan,facing=west": { "model": "computercraft:turtle_cyan", "y": 270 },
|
|
||||||
"dye=cyan,facing=east": { "model": "computercraft:turtle_cyan", "y": 90 },
|
|
||||||
"dye=green,facing=north": { "model": "computercraft:turtle_green" },
|
|
||||||
"dye=green,facing=south": { "model": "computercraft:turtle_green", "y": 180 },
|
|
||||||
"dye=green,facing=west": { "model": "computercraft:turtle_green", "y": 270 },
|
|
||||||
"dye=green,facing=east": { "model": "computercraft:turtle_green", "y": 90 },
|
|
||||||
"dye=grey,facing=north": { "model": "computercraft:turtle_grey" },
|
|
||||||
"dye=grey,facing=south": { "model": "computercraft:turtle_grey", "y": 180 },
|
|
||||||
"dye=grey,facing=west": { "model": "computercraft:turtle_grey", "y": 270 },
|
|
||||||
"dye=grey,facing=east": { "model": "computercraft:turtle_grey", "y": 90 },
|
|
||||||
"dye=light_blue,facing=north": { "model": "computercraft:turtle_lightBlue" },
|
|
||||||
"dye=light_blue,facing=south": { "model": "computercraft:turtle_lightBlue", "y": 180 },
|
|
||||||
"dye=light_blue,facing=west": { "model": "computercraft:turtle_lightBlue", "y": 270 },
|
|
||||||
"dye=light_blue,facing=east": { "model": "computercraft:turtle_lightBlue", "y": 90 },
|
|
||||||
"dye=light_grey,facing=north": { "model": "computercraft:turtle_lightGrey" },
|
|
||||||
"dye=light_grey,facing=south": { "model": "computercraft:turtle_lightGrey", "y": 180 },
|
|
||||||
"dye=light_grey,facing=west": { "model": "computercraft:turtle_lightGrey", "y": 270 },
|
|
||||||
"dye=light_grey,facing=east": { "model": "computercraft:turtle_lightGrey", "y": 90 },
|
|
||||||
"dye=lime,facing=north": { "model": "computercraft:turtle_lime" },
|
|
||||||
"dye=lime,facing=south": { "model": "computercraft:turtle_lime", "y": 180 },
|
|
||||||
"dye=lime,facing=west": { "model": "computercraft:turtle_lime", "y": 270 },
|
|
||||||
"dye=lime,facing=east": { "model": "computercraft:turtle_lime", "y": 90 },
|
|
||||||
"dye=magenta,facing=north": { "model": "computercraft:turtle_magenta" },
|
|
||||||
"dye=magenta,facing=south": { "model": "computercraft:turtle_magenta", "y": 180 },
|
|
||||||
"dye=magenta,facing=west": { "model": "computercraft:turtle_magenta", "y": 270 },
|
|
||||||
"dye=magenta,facing=east": { "model": "computercraft:turtle_magenta", "y": 90 },
|
|
||||||
"dye=orange,facing=north": { "model": "computercraft:turtle_orange" },
|
|
||||||
"dye=orange,facing=south": { "model": "computercraft:turtle_orange", "y": 180 },
|
|
||||||
"dye=orange,facing=west": { "model": "computercraft:turtle_orange", "y": 270 },
|
|
||||||
"dye=orange,facing=east": { "model": "computercraft:turtle_orange", "y": 90 },
|
|
||||||
"dye=pink,facing=north": { "model": "computercraft:turtle_pink" },
|
|
||||||
"dye=pink,facing=south": { "model": "computercraft:turtle_pink", "y": 180 },
|
|
||||||
"dye=pink,facing=west": { "model": "computercraft:turtle_pink", "y": 270 },
|
|
||||||
"dye=pink,facing=east": { "model": "computercraft:turtle_pink", "y": 90 },
|
|
||||||
"dye=purple,facing=north": { "model": "computercraft:turtle_purple" },
|
|
||||||
"dye=purple,facing=south": { "model": "computercraft:turtle_purple", "y": 180 },
|
|
||||||
"dye=purple,facing=west": { "model": "computercraft:turtle_purple", "y": 270 },
|
|
||||||
"dye=purple,facing=east": { "model": "computercraft:turtle_purple", "y": 90 },
|
|
||||||
"dye=red,facing=north": { "model": "computercraft:turtle_red" },
|
|
||||||
"dye=red,facing=south": { "model": "computercraft:turtle_red", "y": 180 },
|
|
||||||
"dye=red,facing=west": { "model": "computercraft:turtle_red", "y": 270 },
|
|
||||||
"dye=red,facing=east": { "model": "computercraft:turtle_red", "y": 90 },
|
|
||||||
"dye=white,facing=north": { "model": "computercraft:turtle_white" },
|
|
||||||
"dye=white,facing=south": { "model": "computercraft:turtle_white", "y": 180 },
|
|
||||||
"dye=white,facing=west": { "model": "computercraft:turtle_white", "y": 270 },
|
|
||||||
"dye=white,facing=east": { "model": "computercraft:turtle_white", "y": 90 },
|
|
||||||
"dye=yellow,facing=north": { "model": "computercraft:turtle_yellow" },
|
|
||||||
"dye=yellow,facing=south": { "model": "computercraft:turtle_yellow", "y": 180 },
|
|
||||||
"dye=yellow,facing=west": { "model": "computercraft:turtle_yellow", "y": 270 },
|
|
||||||
"dye=yellow,facing=east": { "model": "computercraft:turtle_yellow", "y": 90 }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,72 +1,8 @@
|
|||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"dye=none,facing=north": { "model": "computercraft:advanced_turtle" },
|
"facing=north": { "model": "computercraft:advanced_turtle" },
|
||||||
"dye=none,facing=south": { "model": "computercraft:advanced_turtle", "y": 180 },
|
"facing=south": { "model": "computercraft:advanced_turtle", "y": 180 },
|
||||||
"dye=none,facing=west": { "model": "computercraft:advanced_turtle", "y": 270 },
|
"facing=west": { "model": "computercraft:advanced_turtle", "y": 270 },
|
||||||
"dye=none,facing=east": { "model": "computercraft:advanced_turtle", "y": 90 },
|
"facing=east": { "model": "computercraft:advanced_turtle", "y": 90 }
|
||||||
"dye=black,facing=north": { "model": "computercraft:turtle_black" },
|
|
||||||
"dye=black,facing=south": { "model": "computercraft:turtle_black", "y": 180 },
|
|
||||||
"dye=black,facing=west": { "model": "computercraft:turtle_black", "y": 270 },
|
|
||||||
"dye=black,facing=east": { "model": "computercraft:turtle_black", "y": 90 },
|
|
||||||
"dye=blue,facing=north": { "model": "computercraft:turtle_blue" },
|
|
||||||
"dye=blue,facing=south": { "model": "computercraft:turtle_blue", "y": 180 },
|
|
||||||
"dye=blue,facing=west": { "model": "computercraft:turtle_blue", "y": 270 },
|
|
||||||
"dye=blue,facing=east": { "model": "computercraft:turtle_blue", "y": 90 },
|
|
||||||
"dye=brown,facing=north": { "model": "computercraft:turtle_brown" },
|
|
||||||
"dye=brown,facing=south": { "model": "computercraft:turtle_brown", "y": 180 },
|
|
||||||
"dye=brown,facing=west": { "model": "computercraft:turtle_brown", "y": 270 },
|
|
||||||
"dye=brown,facing=east": { "model": "computercraft:turtle_brown", "y": 90 },
|
|
||||||
"dye=cyan,facing=north": { "model": "computercraft:turtle_cyan" },
|
|
||||||
"dye=cyan,facing=south": { "model": "computercraft:turtle_cyan", "y": 180 },
|
|
||||||
"dye=cyan,facing=west": { "model": "computercraft:turtle_cyan", "y": 270 },
|
|
||||||
"dye=cyan,facing=east": { "model": "computercraft:turtle_cyan", "y": 90 },
|
|
||||||
"dye=green,facing=north": { "model": "computercraft:turtle_green" },
|
|
||||||
"dye=green,facing=south": { "model": "computercraft:turtle_green", "y": 180 },
|
|
||||||
"dye=green,facing=west": { "model": "computercraft:turtle_green", "y": 270 },
|
|
||||||
"dye=green,facing=east": { "model": "computercraft:turtle_green", "y": 90 },
|
|
||||||
"dye=grey,facing=north": { "model": "computercraft:turtle_grey" },
|
|
||||||
"dye=grey,facing=south": { "model": "computercraft:turtle_grey", "y": 180 },
|
|
||||||
"dye=grey,facing=west": { "model": "computercraft:turtle_grey", "y": 270 },
|
|
||||||
"dye=grey,facing=east": { "model": "computercraft:turtle_grey", "y": 90 },
|
|
||||||
"dye=light_blue,facing=north": { "model": "computercraft:turtle_lightBlue" },
|
|
||||||
"dye=light_blue,facing=south": { "model": "computercraft:turtle_lightBlue", "y": 180 },
|
|
||||||
"dye=light_blue,facing=west": { "model": "computercraft:turtle_lightBlue", "y": 270 },
|
|
||||||
"dye=light_blue,facing=east": { "model": "computercraft:turtle_lightBlue", "y": 90 },
|
|
||||||
"dye=light_grey,facing=north": { "model": "computercraft:turtle_lightGrey" },
|
|
||||||
"dye=light_grey,facing=south": { "model": "computercraft:turtle_lightGrey", "y": 180 },
|
|
||||||
"dye=light_grey,facing=west": { "model": "computercraft:turtle_lightGrey", "y": 270 },
|
|
||||||
"dye=light_grey,facing=east": { "model": "computercraft:turtle_lightGrey", "y": 90 },
|
|
||||||
"dye=lime,facing=north": { "model": "computercraft:turtle_lime" },
|
|
||||||
"dye=lime,facing=south": { "model": "computercraft:turtle_lime", "y": 180 },
|
|
||||||
"dye=lime,facing=west": { "model": "computercraft:turtle_lime", "y": 270 },
|
|
||||||
"dye=lime,facing=east": { "model": "computercraft:turtle_lime", "y": 90 },
|
|
||||||
"dye=magenta,facing=north": { "model": "computercraft:turtle_magenta" },
|
|
||||||
"dye=magenta,facing=south": { "model": "computercraft:turtle_magenta", "y": 180 },
|
|
||||||
"dye=magenta,facing=west": { "model": "computercraft:turtle_magenta", "y": 270 },
|
|
||||||
"dye=magenta,facing=east": { "model": "computercraft:turtle_magenta", "y": 90 },
|
|
||||||
"dye=orange,facing=north": { "model": "computercraft:turtle_orange" },
|
|
||||||
"dye=orange,facing=south": { "model": "computercraft:turtle_orange", "y": 180 },
|
|
||||||
"dye=orange,facing=west": { "model": "computercraft:turtle_orange", "y": 270 },
|
|
||||||
"dye=orange,facing=east": { "model": "computercraft:turtle_orange", "y": 90 },
|
|
||||||
"dye=pink,facing=north": { "model": "computercraft:turtle_pink" },
|
|
||||||
"dye=pink,facing=south": { "model": "computercraft:turtle_pink", "y": 180 },
|
|
||||||
"dye=pink,facing=west": { "model": "computercraft:turtle_pink", "y": 270 },
|
|
||||||
"dye=pink,facing=east": { "model": "computercraft:turtle_pink", "y": 90 },
|
|
||||||
"dye=purple,facing=north": { "model": "computercraft:turtle_purple" },
|
|
||||||
"dye=purple,facing=south": { "model": "computercraft:turtle_purple", "y": 180 },
|
|
||||||
"dye=purple,facing=west": { "model": "computercraft:turtle_purple", "y": 270 },
|
|
||||||
"dye=purple,facing=east": { "model": "computercraft:turtle_purple", "y": 90 },
|
|
||||||
"dye=red,facing=north": { "model": "computercraft:turtle_red" },
|
|
||||||
"dye=red,facing=south": { "model": "computercraft:turtle_red", "y": 180 },
|
|
||||||
"dye=red,facing=west": { "model": "computercraft:turtle_red", "y": 270 },
|
|
||||||
"dye=red,facing=east": { "model": "computercraft:turtle_red", "y": 90 },
|
|
||||||
"dye=white,facing=north": { "model": "computercraft:turtle_white" },
|
|
||||||
"dye=white,facing=south": { "model": "computercraft:turtle_white", "y": 180 },
|
|
||||||
"dye=white,facing=west": { "model": "computercraft:turtle_white", "y": 270 },
|
|
||||||
"dye=white,facing=east": { "model": "computercraft:turtle_white", "y": 90 },
|
|
||||||
"dye=yellow,facing=north": { "model": "computercraft:turtle_yellow" },
|
|
||||||
"dye=yellow,facing=south": { "model": "computercraft:turtle_yellow", "y": 180 },
|
|
||||||
"dye=yellow,facing=west": { "model": "computercraft:turtle_yellow", "y": 270 },
|
|
||||||
"dye=yellow,facing=east": { "model": "computercraft:turtle_yellow", "y": 90 }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,72 +1,8 @@
|
|||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"dye=none,facing=north": { "model": "computercraft:turtle" },
|
"facing=north": { "model": "computercraft:turtle" },
|
||||||
"dye=none,facing=south": { "model": "computercraft:turtle", "y": 180 },
|
"facing=south": { "model": "computercraft:turtle", "y": 180 },
|
||||||
"dye=none,facing=west": { "model": "computercraft:turtle", "y": 270 },
|
"facing=west": { "model": "computercraft:turtle", "y": 270 },
|
||||||
"dye=none,facing=east": { "model": "computercraft:turtle", "y": 90 },
|
"facing=east": { "model": "computercraft:turtle", "y": 90 }
|
||||||
"dye=black,facing=north": { "model": "computercraft:turtle_black" },
|
|
||||||
"dye=black,facing=south": { "model": "computercraft:turtle_black", "y": 180 },
|
|
||||||
"dye=black,facing=west": { "model": "computercraft:turtle_black", "y": 270 },
|
|
||||||
"dye=black,facing=east": { "model": "computercraft:turtle_black", "y": 90 },
|
|
||||||
"dye=blue,facing=north": { "model": "computercraft:turtle_blue" },
|
|
||||||
"dye=blue,facing=south": { "model": "computercraft:turtle_blue", "y": 180 },
|
|
||||||
"dye=blue,facing=west": { "model": "computercraft:turtle_blue", "y": 270 },
|
|
||||||
"dye=blue,facing=east": { "model": "computercraft:turtle_blue", "y": 90 },
|
|
||||||
"dye=brown,facing=north": { "model": "computercraft:turtle_brown" },
|
|
||||||
"dye=brown,facing=south": { "model": "computercraft:turtle_brown", "y": 180 },
|
|
||||||
"dye=brown,facing=west": { "model": "computercraft:turtle_brown", "y": 270 },
|
|
||||||
"dye=brown,facing=east": { "model": "computercraft:turtle_brown", "y": 90 },
|
|
||||||
"dye=cyan,facing=north": { "model": "computercraft:turtle_cyan" },
|
|
||||||
"dye=cyan,facing=south": { "model": "computercraft:turtle_cyan", "y": 180 },
|
|
||||||
"dye=cyan,facing=west": { "model": "computercraft:turtle_cyan", "y": 270 },
|
|
||||||
"dye=cyan,facing=east": { "model": "computercraft:turtle_cyan", "y": 90 },
|
|
||||||
"dye=green,facing=north": { "model": "computercraft:turtle_green" },
|
|
||||||
"dye=green,facing=south": { "model": "computercraft:turtle_green", "y": 180 },
|
|
||||||
"dye=green,facing=west": { "model": "computercraft:turtle_green", "y": 270 },
|
|
||||||
"dye=green,facing=east": { "model": "computercraft:turtle_green", "y": 90 },
|
|
||||||
"dye=grey,facing=north": { "model": "computercraft:turtle_grey" },
|
|
||||||
"dye=grey,facing=south": { "model": "computercraft:turtle_grey", "y": 180 },
|
|
||||||
"dye=grey,facing=west": { "model": "computercraft:turtle_grey", "y": 270 },
|
|
||||||
"dye=grey,facing=east": { "model": "computercraft:turtle_grey", "y": 90 },
|
|
||||||
"dye=light_blue,facing=north": { "model": "computercraft:turtle_lightBlue" },
|
|
||||||
"dye=light_blue,facing=south": { "model": "computercraft:turtle_lightBlue", "y": 180 },
|
|
||||||
"dye=light_blue,facing=west": { "model": "computercraft:turtle_lightBlue", "y": 270 },
|
|
||||||
"dye=light_blue,facing=east": { "model": "computercraft:turtle_lightBlue", "y": 90 },
|
|
||||||
"dye=light_grey,facing=north": { "model": "computercraft:turtle_lightGrey" },
|
|
||||||
"dye=light_grey,facing=south": { "model": "computercraft:turtle_lightGrey", "y": 180 },
|
|
||||||
"dye=light_grey,facing=west": { "model": "computercraft:turtle_lightGrey", "y": 270 },
|
|
||||||
"dye=light_grey,facing=east": { "model": "computercraft:turtle_lightGrey", "y": 90 },
|
|
||||||
"dye=lime,facing=north": { "model": "computercraft:turtle_lime" },
|
|
||||||
"dye=lime,facing=south": { "model": "computercraft:turtle_lime", "y": 180 },
|
|
||||||
"dye=lime,facing=west": { "model": "computercraft:turtle_lime", "y": 270 },
|
|
||||||
"dye=lime,facing=east": { "model": "computercraft:turtle_lime", "y": 90 },
|
|
||||||
"dye=magenta,facing=north": { "model": "computercraft:turtle_magenta" },
|
|
||||||
"dye=magenta,facing=south": { "model": "computercraft:turtle_magenta", "y": 180 },
|
|
||||||
"dye=magenta,facing=west": { "model": "computercraft:turtle_magenta", "y": 270 },
|
|
||||||
"dye=magenta,facing=east": { "model": "computercraft:turtle_magenta", "y": 90 },
|
|
||||||
"dye=orange,facing=north": { "model": "computercraft:turtle_orange" },
|
|
||||||
"dye=orange,facing=south": { "model": "computercraft:turtle_orange", "y": 180 },
|
|
||||||
"dye=orange,facing=west": { "model": "computercraft:turtle_orange", "y": 270 },
|
|
||||||
"dye=orange,facing=east": { "model": "computercraft:turtle_orange", "y": 90 },
|
|
||||||
"dye=pink,facing=north": { "model": "computercraft:turtle_pink" },
|
|
||||||
"dye=pink,facing=south": { "model": "computercraft:turtle_pink", "y": 180 },
|
|
||||||
"dye=pink,facing=west": { "model": "computercraft:turtle_pink", "y": 270 },
|
|
||||||
"dye=pink,facing=east": { "model": "computercraft:turtle_pink", "y": 90 },
|
|
||||||
"dye=purple,facing=north": { "model": "computercraft:turtle_purple" },
|
|
||||||
"dye=purple,facing=south": { "model": "computercraft:turtle_purple", "y": 180 },
|
|
||||||
"dye=purple,facing=west": { "model": "computercraft:turtle_purple", "y": 270 },
|
|
||||||
"dye=purple,facing=east": { "model": "computercraft:turtle_purple", "y": 90 },
|
|
||||||
"dye=red,facing=north": { "model": "computercraft:turtle_red" },
|
|
||||||
"dye=red,facing=south": { "model": "computercraft:turtle_red", "y": 180 },
|
|
||||||
"dye=red,facing=west": { "model": "computercraft:turtle_red", "y": 270 },
|
|
||||||
"dye=red,facing=east": { "model": "computercraft:turtle_red", "y": 90 },
|
|
||||||
"dye=white,facing=north": { "model": "computercraft:turtle_white" },
|
|
||||||
"dye=white,facing=south": { "model": "computercraft:turtle_white", "y": 180 },
|
|
||||||
"dye=white,facing=west": { "model": "computercraft:turtle_white", "y": 270 },
|
|
||||||
"dye=white,facing=east": { "model": "computercraft:turtle_white", "y": 90 },
|
|
||||||
"dye=yellow,facing=north": { "model": "computercraft:turtle_yellow" },
|
|
||||||
"dye=yellow,facing=south": { "model": "computercraft:turtle_yellow", "y": 180 },
|
|
||||||
"dye=yellow,facing=west": { "model": "computercraft:turtle_yellow", "y": 270 },
|
|
||||||
"dye=yellow,facing=east": { "model": "computercraft:turtle_yellow", "y": 90 }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_black"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_blue"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_brown"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_cyan"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_green"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_grey"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_lightBlue"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_lightGrey"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_lime"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_magenta"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_orange"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_pink"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_purple"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_red"
|
|
||||||
}
|
|
||||||
}
|
|
@ -2,5 +2,53 @@
|
|||||||
"parent": "computercraft:block/turtle_base",
|
"parent": "computercraft:block/turtle_base",
|
||||||
"textures": {
|
"textures": {
|
||||||
"texture": "computercraft:blocks/turtle_white"
|
"texture": "computercraft:blocks/turtle_white"
|
||||||
}
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [ 2, 2, 2 ],
|
||||||
|
"to": [ 14, 14, 13 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 2.75, 0, 5.75, 2.75 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 5.75, 0, 8.75, 2.75 ], "texture": "#texture" },
|
||||||
|
"north": { "uv": [ 8.5, 5.75, 11.5, 2.75 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 2.75, 5.75, 5.75, 2.75 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 0, 5.75, 2.75, 2.75 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 5.75, 5.75, 8.5, 2.75 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 3, 6, 13 ],
|
||||||
|
"to": [ 13, 13, 15 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 9.25, 0, 11.75, 0.5 ], "texture": "#texture" },
|
||||||
|
"up": { "uv": [ 11.75, 0, 14.25, 0.5 ], "texture": "#texture" },
|
||||||
|
"south": { "uv": [ 9.25, 2.25, 11.75, 0.5 ], "texture": "#texture" },
|
||||||
|
"west": { "uv": [ 8.75, 2.25, 9.25, 0.5 ], "texture": "#texture" },
|
||||||
|
"east": { "uv": [ 11.75, 2.25, 12.25, 0.5 ], "texture": "#texture" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 2, 2, 2 ],
|
||||||
|
"to": [ 14, 14, 13 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 2.75, 5.75, 5.75, 8.5 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"up": { "uv": [ 5.75, 5.75, 8.75, 8.5 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"north": { "uv": [ 8.5, 11.5, 11.5, 8.5 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"south": { "uv": [ 2.75, 11.5, 5.75, 8.5 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"west": { "uv": [ 0, 11.5, 2.75, 8.5 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"east": { "uv": [ 5.75, 11.5, 8.5, 8.555 ], "texture": "#texture", "tintindex":0 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [ 3, 6, 13 ],
|
||||||
|
"to": [ 13, 13, 15 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 9.25, 5.75, 11.75, 6.25 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"up": { "uv": [ 11.75, 5.75, 14.25, 6.25 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"south": { "uv": [ 9.25, 8, 11.75, 6.25 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"west": { "uv": [ 8.75, 8, 9.25, 6.25 ], "texture": "#texture", "tintindex":0 },
|
||||||
|
"east": { "uv": [ 11.75, 8, 12.25, 6.25 ], "texture": "#texture", "tintindex":0 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_base",
|
|
||||||
"textures": {
|
|
||||||
"texture": "computercraft:blocks/turtle_yellow"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_black"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_blue"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_brown"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_cyan"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_green"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_grey"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_lightBlue"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_lightGrey"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_lime"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_magenta"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_orange"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_pink"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_purple"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_red"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"parent": "computercraft:block/turtle_yellow"
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 1.9 KiB |