diff --git a/src/main/java/cr0s/warpdrive/block/movement/BlockTransporterBeacon.java b/src/main/java/cr0s/warpdrive/block/movement/BlockTransporterBeacon.java index bd99f4d9..2699b818 100644 --- a/src/main/java/cr0s/warpdrive/block/movement/BlockTransporterBeacon.java +++ b/src/main/java/cr0s/warpdrive/block/movement/BlockTransporterBeacon.java @@ -17,6 +17,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.AxisAlignedBB; @@ -80,9 +81,20 @@ public class BlockTransporterBeacon extends BlockAbstractContainer { @Override public void modelInitialisation() { super.modelInitialisation(); - - // Bind our TESR to our tile entity - // @TODO ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTransporterBeacon.class, new TileEntityForceFieldProjectorRenderer()); + } + + @Override + public boolean isNormalCube(final IBlockState blockState, final IBlockAccess blockAccess, final BlockPos blockPos) { + return false; + } + + @SuppressWarnings("deprecation") + @Override + public boolean isBlockNormalCube(final IBlockState blockState) { + // not supposed to be called, upstream should use isNormalCube(IBlockState, IBlockAccess, BlockPos) instead + // practically, Forge still use it in WorldEntitySpawner.isValidEmptySpawnBlock(), Block.getAmbientOcclusionLightValue(), BlockRedstoneWire.getAttachPosition() + // calling BlockStateContainer$StateImplementation.isBlockNormalCube() + return false; } @SuppressWarnings("deprecation") @@ -91,6 +103,25 @@ public class BlockTransporterBeacon extends BlockAbstractContainer { return false; } + @SuppressWarnings("deprecation") + @Override + public boolean isFullCube(final IBlockState blockState) { + return false; + } + + @SuppressWarnings("deprecation") + @Override + public boolean isFullBlock(final IBlockState blockState) { + return false; + } + + @Nonnull + @SideOnly(Side.CLIENT) + @Override + public BlockRenderLayer getRenderLayer() { + return BlockRenderLayer.TRANSLUCENT; + } + @SuppressWarnings("deprecation") @Nonnull @Override diff --git a/src/main/java/cr0s/warpdrive/block/movement/ItemBlockTransporterBeacon.java b/src/main/java/cr0s/warpdrive/block/movement/ItemBlockTransporterBeacon.java index 5380a60e..3c2d5d99 100644 --- a/src/main/java/cr0s/warpdrive/block/movement/ItemBlockTransporterBeacon.java +++ b/src/main/java/cr0s/warpdrive/block/movement/ItemBlockTransporterBeacon.java @@ -9,17 +9,22 @@ import cr0s.warpdrive.config.WarpDriveConfig; import cr0s.warpdrive.data.EnergyWrapper; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import net.minecraft.block.Block; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.SoundEvents; +import net.minecraft.item.IItemPropertyGetter; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentTranslation; @@ -27,6 +32,9 @@ import net.minecraft.world.World; import java.util.UUID; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + public class ItemBlockTransporterBeacon extends ItemBlockAbstractBase implements IItemTransporterBeacon { public ItemBlockTransporterBeacon(final Block block) { @@ -34,6 +42,25 @@ public class ItemBlockTransporterBeacon extends ItemBlockAbstractBase implements setMaxStackSize(1); setMaxDamage(100 * 8); + + addPropertyOverride(new ResourceLocation(WarpDrive.MODID, "active"), new IItemPropertyGetter() { + @SideOnly(Side.CLIENT) + @Override + public float apply(@Nonnull final ItemStack itemStack, @Nullable final World world, @Nullable final EntityLivingBase entity) { + final boolean isActive = isActive(itemStack); + return isActive ? 1.0F : 0.0F; + } + }); + } + + @Nonnull + @SideOnly(Side.CLIENT) + @Override + public ModelResourceLocation getModelResourceLocation(@Nonnull final ItemStack itemStack) { + // suffix registry name to grab the item model so we can use overrides + final ResourceLocation resourceLocation = getRegistryName(); + assert resourceLocation != null; + return new ModelResourceLocation(resourceLocation.toString() + "-item", "inventory"); } private static String getTransporterName(final ItemStack itemStack) { diff --git a/src/main/java/cr0s/warpdrive/client/ClientProxy.java b/src/main/java/cr0s/warpdrive/client/ClientProxy.java index 1cff27a1..fc19c492 100644 --- a/src/main/java/cr0s/warpdrive/client/ClientProxy.java +++ b/src/main/java/cr0s/warpdrive/client/ClientProxy.java @@ -62,10 +62,6 @@ public class ClientProxy extends CommonProxy { // entity rendering // RenderingRegistry.registerEntityRenderingHandler(EntityParticleBunch.class, new RenderEntityParticleBunch()); // @TODO MC1.10 force field rendering - /* - RenderBlockTransporterBeacon.renderId = RenderingRegistry.getNextAvailableRenderId(); - RenderingRegistry.registerBlockHandler(RenderBlockTransporterBeacon.instance); - /**/ } @Override diff --git a/src/main/java/cr0s/warpdrive/render/RenderBlockTransporterBeacon.java b/src/main/java/cr0s/warpdrive/render/RenderBlockTransporterBeacon.java deleted file mode 100644 index c0de113d..00000000 --- a/src/main/java/cr0s/warpdrive/render/RenderBlockTransporterBeacon.java +++ /dev/null @@ -1,184 +0,0 @@ -package cr0s.warpdrive.render; - - -public class RenderBlockTransporterBeacon { - -} -/* @TODO MC1.10 ISBRH -public class RenderBlockTransporterBeacon implements ISimpleBlockRenderingHandler { - - public static int renderId = 0; - public static RenderBlockTransporterBeacon instance = new RenderBlockTransporterBeacon(); - - private static final double CORE_RADIUS = 2.0D / 32.0D; - private static final double CORE_Y_MIN_PACKED_INACTIVE = 0.0D / 32.0D; - private static final double CORE_Y_MIN_PACKED_ACTIVE = 0.0D / 32.0D; - private static final double CORE_Y_MIN_DEPLOYED_INACTIVE = 1.0D / 32.0D; - private static final double CORE_Y_MIN_DEPLOYED_ACTIVE = 1.0D / 32.0D; - private static final double CORE_Y_MAX_PACKED_INACTIVE = 11.0D / 32.0D; - private static final double CORE_Y_MAX_PACKED_ACTIVE = 15.0D / 32.0D; - private static final double CORE_Y_MAX_DEPLOYED_INACTIVE = 12.0D / 32.0D; - private static final double CORE_Y_MAX_DEPLOYED_ACTIVE = 20.0D / 32.0D; - private static final double BRANCH_HEIGHT = 24.0D / 32.0D; - private static final double BRANCH_RADIUS = 16.0D / 32.0D; - - @Override - public void renderInventoryBlock(final Block block, final int metadata, final int modelId, final RenderBlocks renderer) { - if (!(block instanceof BlockTransporterBeacon)) { - return; - } - - final isActive = (metadata & 0x2) != 0; - final isDeployed = (metadata & 0x1) != 0; - - final IIcon icon = RenderBlocks.getInstance().getBlockIconFromSideAndMetadata(block, 0, enumTransporterBeaconState.getMetadata()); - - GL11.glPushMatrix(); - - final Tessellator tessellator = Tessellator.instance; - - // (block bounds aren't used in our render => no need to grab them here) - - // disable lightning in item rendering, no need to set brightness - GL11.glDisable(GL11.GL_LIGHTING); - - // (blending already by caller) - // (color already set by caller?) - // (transformation already done by caller) - - tessellator.startDrawingQuads(); - renderTransporterBeacon(tessellator, 0.0D, 0.0D, 0.0D, isActive, isDeployed, icon); - tessellator.draw(); - - GL11.glEnable(GL11.GL_LIGHTING); - - GL11.glPopMatrix(); - } - - @Override - public boolean renderWorldBlock(final IBlockAccess blockAccess, final int x, final int y, final int z, final Block block, final int modelId, final RenderBlocks renderer) { - if (!(block instanceof BlockTransporterBeacon)) { - return false; - } - final TileEntity tileEntity = blockAccess.getTileEntity(x, y, z); - if (!(tileEntity instanceof TileEntityTransporterBeacon)) { - return false; - } - - final int metadata = blockAccess.getBlockMetadata(x, y, z); - final EnumTransporterBeaconState enumTransporterBeaconState = EnumTransporterBeaconState.get(metadata); - if (enumTransporterBeaconState == null) { - return false; - } - - final IIcon icon = RenderBlocks.getInstance().getBlockIconFromSideAndMetadata(block, 0, metadata); - - renderTransporterBeacon(tessellator, x, y, z, enumTransporterBeaconState, icon); - - return true; - } - - private void renderTransporterBeacon(final Tessellator tessellator, - final double x, final double y, final double z, - final boolean isActive, final boolean isDeployed, - final IIcon icon) { - final Tessellator tessellator = Tessellator.instance; - - // texture coordinates - final double uMin_side = icon.getInterpolatedU( 0.0D); - final double vMin_side = icon.getInterpolatedV( 4.0D); - final double uMax_side = icon.getInterpolatedU(16.0D); - final double vMax_side = icon.getInterpolatedV(16.0D); - final double uMin_top = icon.getInterpolatedU( 1.0D); - final double vMin_top = icon.getInterpolatedV( 1.0D); - final double uMax_top = icon.getInterpolatedU( 3.0D); - final double vMax_top = icon.getInterpolatedV( 3.0D); - final double uMin_bottom = icon.getInterpolatedU( 5.0D); - final double vMin_bottom = icon.getInterpolatedV( 1.0D); - final double uMax_bottom = icon.getInterpolatedU( 7.0D); - final double vMax_bottom = icon.getInterpolatedV( 3.0D); - - // vertex coordinates - final double xCenter = x + 0.5D; - final double zCenter = z + 0.5D; - final double xMin_core = xCenter - CORE_RADIUS; - final double xMax_core = xCenter + CORE_RADIUS; - final double zMin_core = zCenter - CORE_RADIUS; - final double zMax_core = zCenter + CORE_RADIUS; - final double xMin_branch = xCenter - BRANCH_RADIUS; - final double xMax_branch = xCenter + BRANCH_RADIUS; - final double zMin_branch = zCenter - BRANCH_RADIUS; - final double zMax_branch = zCenter + BRANCH_RADIUS; - - final double yMin_branch = y + 0.0D; - final double yMin_core; - final double yMax_core; - switch (enumTransporterBeaconState) { - default: - case PACKED_INACTIVE: - yMin_core = y + CORE_Y_MIN_PACKED_INACTIVE; - yMax_core = y + CORE_Y_MAX_PACKED_INACTIVE; - break; - - case PACKED_ACTIVE: - yMin_core = y + CORE_Y_MIN_PACKED_ACTIVE; - yMax_core = y + CORE_Y_MAX_PACKED_ACTIVE; - break; - - case DEPLOYED_INACTIVE: - yMin_core = y + CORE_Y_MIN_DEPLOYED_INACTIVE; - yMax_core = y + CORE_Y_MAX_DEPLOYED_INACTIVE; - break; - - case DEPLOYED_ACTIVE: - yMin_core = y + CORE_Y_MIN_DEPLOYED_ACTIVE; - yMax_core = y + CORE_Y_MAX_DEPLOYED_ACTIVE; - break; - } - final double yMax_branch = y + BRANCH_HEIGHT; - - // add top face - tessellator.addVertexWithUV(xMin_core , yMax_core , zMin_core , uMin_top, vMin_top); - tessellator.addVertexWithUV(xMin_core , yMax_core , zMax_core , uMin_top, vMax_top); - tessellator.addVertexWithUV(xMax_core , yMax_core , zMax_core , uMax_top, vMax_top); - tessellator.addVertexWithUV(xMax_core , yMax_core , zMin_core , uMax_top, vMin_top); - - // add bottom face - tessellator.addVertexWithUV(xMax_core , yMin_core , zMin_core , uMax_bottom, vMin_bottom); - tessellator.addVertexWithUV(xMax_core , yMin_core , zMax_core , uMax_bottom, vMax_bottom); - tessellator.addVertexWithUV(xMin_core , yMin_core , zMax_core , uMin_bottom, vMax_bottom); - tessellator.addVertexWithUV(xMin_core , yMin_core , zMin_core , uMin_bottom, vMin_bottom); - - // add side/branch faces - tessellator.addVertexWithUV(xMin_core , yMax_branch, zMin_branch, uMin_side, vMin_side); - tessellator.addVertexWithUV(xMin_core , yMin_branch, zMin_branch, uMin_side, vMax_side); - tessellator.addVertexWithUV(xMin_core , yMin_branch, zMax_branch, uMax_side, vMax_side); - tessellator.addVertexWithUV(xMin_core , yMax_branch, zMax_branch, uMax_side, vMin_side); - - tessellator.addVertexWithUV(xMax_core , yMax_branch, zMax_branch, uMin_side, vMin_side); - tessellator.addVertexWithUV(xMax_core , yMin_branch, zMax_branch, uMin_side, vMax_side); - tessellator.addVertexWithUV(xMax_core , yMin_branch, zMin_branch, uMax_side, vMax_side); - tessellator.addVertexWithUV(xMax_core , yMax_branch, zMin_branch, uMax_side, vMin_side); - - tessellator.addVertexWithUV(xMin_branch, yMax_branch, zMax_core , uMin_side, vMin_side); - tessellator.addVertexWithUV(xMin_branch, yMin_branch, zMax_core , uMin_side, vMax_side); - tessellator.addVertexWithUV(xMax_branch, yMin_branch, zMax_core , uMax_side, vMax_side); - tessellator.addVertexWithUV(xMax_branch, yMax_branch, zMax_core , uMax_side, vMin_side); - - tessellator.addVertexWithUV(xMax_branch, yMax_branch, zMin_core , uMin_side, vMin_side); - tessellator.addVertexWithUV(xMax_branch, yMin_branch, zMin_core , uMin_side, vMax_side); - tessellator.addVertexWithUV(xMin_branch, yMin_branch, zMin_core , uMax_side, vMax_side); - tessellator.addVertexWithUV(xMin_branch, yMax_branch, zMin_core , uMax_side, vMin_side); - } - - @Override - public boolean shouldRender3DInInventory(final int modelId) { - return true; - } - - @Override - public int getRenderId() { - return renderId; - } -} -/**/ \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/blockstates/transporter_beacon.json b/src/main/resources/assets/warpdrive/blockstates/transporter_beacon.json index 533c5f44..df946eb4 100644 --- a/src/main/resources/assets/warpdrive/blockstates/transporter_beacon.json +++ b/src/main/resources/assets/warpdrive/blockstates/transporter_beacon.json @@ -5,21 +5,28 @@ }, "variants": { "normal": [{}], - "inventory": { "model": "minecraft:normal_torch", "textures": { + "inventory": { + "model": "minecraft:normal_torch", + "textures": { "torch" : "warpdrive:blocks/movement/transporter_beacon-deployed_active" - } }, + } + }, - "active=false,deployed=false": { "model": "minecraft:normal_torch", "textures": { - "torch" : "warpdrive:blocks/movement/transporter_beacon-packed_inactive" - } }, - "active=true,deployed=false" : { "model": "minecraft:normal_torch", "textures": { - "torch" : "warpdrive:blocks/movement/transporter_beacon-packed_active" - } }, - "active=false,deployed=true" : { "model": "minecraft:normal_torch", "textures": { - "torch" : "warpdrive:blocks/movement/transporter_beacon-deployed_inactive" - } }, - "active=true,deployed=true" : { "model": "minecraft:normal_torch", "textures": { - "torch" : "warpdrive:blocks/movement/transporter_beacon-deployed_active" - } } + "active=false,deployed=false": { + "model": "warpdrive:movement/transporter_beacon-packed_inactive", + "textures": { "beacon" : "warpdrive:blocks/movement/transporter_beacon-packed_inactive" } + }, + "active=true,deployed=false" : { + "model": "warpdrive:movement/transporter_beacon-packed_active", + "textures": { "beacon" : "warpdrive:blocks/movement/transporter_beacon-packed_active" } + }, + "active=false,deployed=true" : { + "model": "warpdrive:movement/transporter_beacon-deployed_inactive", + "textures": { "beacon" : "warpdrive:blocks/movement/transporter_beacon-deployed_inactive" } + }, + "active=true,deployed=true" : { + "model": "warpdrive:movement/transporter_beacon-deployed_active", + "textures": { "beacon" : "warpdrive:blocks/movement/transporter_beacon-deployed_active" } + } } } \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-deployed_active.json b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-deployed_active.json new file mode 100644 index 00000000..725b3877 --- /dev/null +++ b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-deployed_active.json @@ -0,0 +1,38 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#beacon" + }, + "elements": [ + { + "__comments": "core", + "from": [ 7.0, 0.5, 7.0 ], + "to": [ 9.0, 10.0, 9.0 ], + "shade": false, + "faces": { + "down": { "uv": [ 5, 1, 7, 3 ], "texture": "#beacon" }, + "up": { "uv": [ 1, 1, 3, 3 ], "texture": "#beacon" } + } + }, + { + "__comments": "z planes", + "from": [ 7.0, 0.0, 0.0 ], + "to": [ 9.0, 12.0, 16.0 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + }, + { + "__comments": "x planes", + "from": [ 0, 0, 7 ], + "to": [ 16, 12, 9 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + } + ] +} diff --git a/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-deployed_inactive.json b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-deployed_inactive.json new file mode 100644 index 00000000..a6075dc1 --- /dev/null +++ b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-deployed_inactive.json @@ -0,0 +1,38 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#beacon" + }, + "elements": [ + { + "__comments": "core", + "from": [ 7.0, 0.5, 7.0 ], + "to": [ 9.0, 6.0, 9.0 ], + "shade": false, + "faces": { + "down": { "uv": [ 5, 1, 7, 3 ], "texture": "#beacon" }, + "up": { "uv": [ 1, 1, 3, 3 ], "texture": "#beacon" } + } + }, + { + "__comments": "z planes", + "from": [ 7.0, 0.0, 0.0 ], + "to": [ 9.0, 12.0, 16.0 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + }, + { + "__comments": "x planes", + "from": [ 0, 0, 7 ], + "to": [ 16, 12, 9 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + } + ] +} diff --git a/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-packed_active.json b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-packed_active.json new file mode 100644 index 00000000..291e497b --- /dev/null +++ b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-packed_active.json @@ -0,0 +1,38 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#beacon" + }, + "elements": [ + { + "__comments": "core", + "from": [ 7.0, 0.0, 7.0 ], + "to": [ 9.0, 7.5, 9.0 ], + "shade": false, + "faces": { + "down": { "uv": [ 5, 1, 7, 3 ], "texture": "#beacon" }, + "up": { "uv": [ 1, 1, 3, 3 ], "texture": "#beacon" } + } + }, + { + "__comments": "z planes", + "from": [ 7.0, 0.0, 0.0 ], + "to": [ 9.0, 12.0, 16.0 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + }, + { + "__comments": "x planes", + "from": [ 0, 0, 7 ], + "to": [ 16, 12, 9 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + } + ] +} diff --git a/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-packed_inactive.json b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-packed_inactive.json new file mode 100644 index 00000000..1ae98014 --- /dev/null +++ b/src/main/resources/assets/warpdrive/models/block/movement/transporter_beacon-packed_inactive.json @@ -0,0 +1,38 @@ +{ + "ambientocclusion": false, + "textures": { + "particle": "#beacon" + }, + "elements": [ + { + "__comments": "core", + "from": [ 7.0, 0.0, 7.0 ], + "to": [ 9.0, 5.5, 9.0 ], + "shade": false, + "faces": { + "down": { "uv": [ 5, 1, 7, 3 ], "texture": "#beacon" }, + "up": { "uv": [ 1, 1, 3, 3 ], "texture": "#beacon" } + } + }, + { + "__comments": "z planes", + "from": [ 7.0, 0.0, 0.0 ], + "to": [ 9.0, 12.0, 16.0 ], + "shade": false, + "faces": { + "west": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "east": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + }, + { + "__comments": "x planes", + "from": [ 0, 0, 7 ], + "to": [ 16, 12, 9 ], + "shade": false, + "faces": { + "north": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" }, + "south": { "uv": [ 0, 4, 16, 16 ], "texture": "#beacon" } + } + } + ] +} diff --git a/src/main/resources/assets/warpdrive/models/item/movement/transporter_beacon-deployed_active.json b/src/main/resources/assets/warpdrive/models/item/movement/transporter_beacon-deployed_active.json new file mode 100644 index 00000000..5376c94b --- /dev/null +++ b/src/main/resources/assets/warpdrive/models/item/movement/transporter_beacon-deployed_active.json @@ -0,0 +1,6 @@ +{ + "parent": "warpdrive:block/movement/transporter_beacon-deployed_active", + "textures": { + "beacon": "warpdrive:blocks/movement/transporter_beacon-deployed_active" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/models/item/movement/transporter_beacon-packed_inactive.json b/src/main/resources/assets/warpdrive/models/item/movement/transporter_beacon-packed_inactive.json new file mode 100644 index 00000000..f8c5cf56 --- /dev/null +++ b/src/main/resources/assets/warpdrive/models/item/movement/transporter_beacon-packed_inactive.json @@ -0,0 +1,6 @@ +{ + "parent": "warpdrive:block/movement/transporter_beacon-packed_inactive", + "textures": { + "beacon": "warpdrive:blocks/movement/transporter_beacon-packed_inactive" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/warpdrive/models/item/transporter_beacon-item.json b/src/main/resources/assets/warpdrive/models/item/transporter_beacon-item.json new file mode 100644 index 00000000..37510c0a --- /dev/null +++ b/src/main/resources/assets/warpdrive/models/item/transporter_beacon-item.json @@ -0,0 +1,16 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "warpdrive:blocks/movement/transporter_beacon-packed_inactive" + }, + "overrides": [ + { + "predicate": { "warpdrive:active": 0.00 }, + "model": "warpdrive:item/movement/transporter_beacon-packed_inactive" + }, + { + "predicate": { "warpdrive:active": 0.99 }, + "model": "warpdrive:item/movement/transporter_beacon-deployed_active" + } + ] +} \ No newline at end of file