From 3f6607028df6da5170191ab51adef0a0b3abcdf1 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sun, 9 Oct 2016 19:43:01 +0200 Subject: [PATCH] Fixes #2432: New model for wireless access point which includes status indicators, correct model rotation, and lit/unlit torch variants. --- .../block/networking/BlockWireless.java | 57 +- .../block/networking/WirelessRendering.java | 22 + .../client/render/StaticBlockColor.java | 51 ++ .../core/api/definitions/ApiBlocks.java | 6 +- .../blockstates/wireless_access_point.json | 39 +- .../models/block/wireless_access_point.json | 769 ------------------ .../block/wireless_access_point_chassis.json | 140 ++++ .../block/wireless_access_point_off.json | 18 + .../block/wireless_access_point_on.json | 45 + ...eless_access_point_status_has_channel.json | 17 + .../wireless_access_point_status_off.json | 17 + .../wireless_access_point_status_on.json | 17 + .../textures/blocks/wireless_access_point.png | Bin 252 -> 2841 bytes .../blocks/wireless_access_point_on.png | Bin 267 -> 2864 bytes 14 files changed, 424 insertions(+), 774 deletions(-) create mode 100644 src/main/java/appeng/block/networking/WirelessRendering.java create mode 100644 src/main/java/appeng/client/render/StaticBlockColor.java delete mode 100644 src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point.json create mode 100644 src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_chassis.json create mode 100644 src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_off.json create mode 100644 src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json create mode 100644 src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_has_channel.json create mode 100644 src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_off.json create mode 100644 src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_on.json diff --git a/src/main/java/appeng/block/networking/BlockWireless.java b/src/main/java/appeng/block/networking/BlockWireless.java index 4286ee188..b2110afcb 100644 --- a/src/main/java/appeng/block/networking/BlockWireless.java +++ b/src/main/java/appeng/block/networking/BlockWireless.java @@ -21,9 +21,10 @@ package appeng.block.networking; import java.util.Collections; import java.util.List; - import javax.annotation.Nullable; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; @@ -31,8 +32,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; +import net.minecraft.util.IStringSerializable; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import appeng.api.util.AEPartLocation; @@ -46,6 +49,22 @@ import appeng.util.Platform; public class BlockWireless extends AEBaseTileBlock implements ICustomCollision { + enum State implements IStringSerializable + { + OFF, + ON, + HAS_CHANNEL; + + @Override + public String getName() + { + return name().toLowerCase(); + } + } + + + public static final PropertyEnum STATE = PropertyEnum.create( "state", State.class ); + public BlockWireless() { super( AEGlassMaterial.INSTANCE ); @@ -53,6 +72,7 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision this.setLightOpacity( 0 ); this.setFullSize( false ); this.setOpaque( false ); + this.setDefaultState( getDefaultState().withProperty( STATE, State.OFF ) ); } @Override @@ -61,6 +81,34 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision return BlockRenderLayer.CUTOUT; } + @Override + public IBlockState getActualState( IBlockState state, IBlockAccess worldIn, BlockPos pos ) + { + State teState = State.OFF; + + TileWireless te = getTileEntity( worldIn, pos ); + if( te != null ) + { + if( te.isActive() ) + { + teState = State.HAS_CHANNEL; + } + else if( te.isPowered() ) + { + teState = State.ON; + } + } + + return super.getActualState( state, worldIn, pos ) + .withProperty( STATE, teState ); + } + + @Override + protected IProperty[] getAEStates() + { + return new IProperty[] { STATE }; + } + @Override public boolean onBlockActivated( final World w, final BlockPos pos, final IBlockState state, final EntityPlayer player, final EnumHand hand, final @Nullable ItemStack heldItem, final EnumFacing side, final float hitX, final float hitY, final float hitZ ) { @@ -207,4 +255,11 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision out.add( new AxisAlignedBB( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) ); } } + + @Override + public boolean isFullCube( IBlockState state ) + { + return false; + } + } diff --git a/src/main/java/appeng/block/networking/WirelessRendering.java b/src/main/java/appeng/block/networking/WirelessRendering.java new file mode 100644 index 000000000..aa3703c2d --- /dev/null +++ b/src/main/java/appeng/block/networking/WirelessRendering.java @@ -0,0 +1,22 @@ +package appeng.block.networking; + + +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import appeng.api.util.AEColor; +import appeng.bootstrap.BlockRenderingCustomizer; +import appeng.bootstrap.IBlockRendering; +import appeng.bootstrap.IItemRendering; +import appeng.client.render.StaticBlockColor; + + +public class WirelessRendering extends BlockRenderingCustomizer +{ + @Override + @SideOnly( Side.CLIENT ) + public void customize( IBlockRendering rendering, IItemRendering itemRendering ) + { + rendering.blockColor( new StaticBlockColor( AEColor.TRANSPARENT ) ); + } +} diff --git a/src/main/java/appeng/client/render/StaticBlockColor.java b/src/main/java/appeng/client/render/StaticBlockColor.java new file mode 100644 index 000000000..bf5b89a95 --- /dev/null +++ b/src/main/java/appeng/client/render/StaticBlockColor.java @@ -0,0 +1,51 @@ +/* + * This file is part of Applied Energistics 2. + * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. + * + * Applied Energistics 2 is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Applied Energistics 2 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Applied Energistics 2. If not, see . + */ + +package appeng.client.render; + + +import javax.annotation.Nullable; + +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.color.IBlockColor; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; + +import appeng.api.util.AEColor; + + +/** + * Returns the shades of a single AE color for tint indices 0, 1, and 2. + */ +public class StaticBlockColor implements IBlockColor +{ + + private final AEColor color; + + public StaticBlockColor( AEColor color ) + { + this.color = color; + } + + @Override + public int colorMultiplier( IBlockState state, @Nullable IBlockAccess worldIn, @Nullable BlockPos pos, int tintIndex ) + { + return color.getVariantByTintIndex( tintIndex ); + } + +} diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index bdb8dd7e3..454bf0cd2 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -66,6 +66,7 @@ import appeng.block.networking.BlockEnergyCellRendering; import appeng.block.networking.BlockWireless; import appeng.block.networking.CableBusRendering; import appeng.block.networking.ControllerRendering; +import appeng.block.networking.WirelessRendering; import appeng.block.qnb.BlockQuantumLinkChamber; import appeng.block.qnb.BlockQuantumRing; import appeng.block.spatial.BlockMatrixFrame; @@ -258,7 +259,10 @@ public final class ApiBlocks implements IBlocks .features( AEFeature.Inscriber ) .rendering( new InscriberRendering() ) .build(); - this.wirelessAccessPoint = registry.block( "wireless_access_point", BlockWireless::new ).features( AEFeature.WirelessAccessTerminal ).build(); + this.wirelessAccessPoint = registry.block( "wireless_access_point", BlockWireless::new ) + .features( AEFeature.WirelessAccessTerminal ) + .rendering( new WirelessRendering() ) + .build(); this.charger = registry.block( "charger", BlockCharger::new ) .rendering( new BlockRenderingCustomizer() { diff --git a/src/main/resources/assets/appliedenergistics2/blockstates/wireless_access_point.json b/src/main/resources/assets/appliedenergistics2/blockstates/wireless_access_point.json index f489f80b8..f439db5f6 100644 --- a/src/main/resources/assets/appliedenergistics2/blockstates/wireless_access_point.json +++ b/src/main/resources/assets/appliedenergistics2/blockstates/wireless_access_point.json @@ -1,8 +1,41 @@ { + "forge_marker": 1, + "defaults": { + "model": "appliedenergistics2:wireless_access_point_chassis", + "y": 180 + }, "variants": { - "normal": { - "model": "appliedenergistics2:wireless_access_point", - "y": 180 + "state": { + "off": { + "submodel": { + "state": { + "model": "appliedenergistics2:wireless_access_point_status_off" + }, + "torch": { + "model": "appliedenergistics2:wireless_access_point_off" + } + } + }, + "on": { + "submodel": { + "state": { + "model": "appliedenergistics2:wireless_access_point_status_on" + }, + "torch": { + "model": "appliedenergistics2:wireless_access_point_off" + } + } + }, + "has_channel": { + "submodel": { + "state": { + "model": "appliedenergistics2:wireless_access_point_status_has_channel" + }, + "torch": { + "model": "appliedenergistics2:wireless_access_point_on" + } + } + } } } } diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point.json deleted file mode 100644 index d65f76b40..000000000 --- a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point.json +++ /dev/null @@ -1,769 +0,0 @@ -{ - "parent": "block/block", - "elements": [ - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 4.0, - 4.0, - 12.0, - 12.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 4.0, - 0.0, - 12.0, - 2.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 4.0, - 14.0, - 12.0, - 16.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 8.0, - 2.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 4.0, - 4.0, - 12.0, - 12.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 8.0, - 2.0 - ] - } - }, - "from": [ - 4.0, - 0.0, - 4.0 - ], - "name": "Base", - "to": [ - 12.0, - 2.0, - 12.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 5.0, - 1.0, - 11.0, - 3.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 15.0, - 7.0, - 13.0, - 5.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 6.0, - 2.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 11.0, - 3.0, - 5.0, - 5.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 5.0, - 13.0, - 11.0, - 15.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 13.0, - 3.0, - 15.0, - 5.0 - ] - } - }, - "from": [ - 5.0, - 2.0, - 3.0 - ], - "name": "Front_B", - "to": [ - 11.0, - 4.0, - 5.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 5.0, - 13.0, - 11.0, - 15.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 13.0, - 4.0, - 15.0, - 6.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 10.0, - 0.0, - 16.0, - 2.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 11.0, - 11.0, - 5.0, - 13.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 5.0, - 1.0, - 11.0, - 3.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 1.0, - 4.0, - 3.0, - 6.0 - ] - } - }, - "from": [ - 5.0, - 2.0, - 11.0 - ], - "name": "Back_B", - "to": [ - 11.0, - 4.0, - 13.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 1.0, - 5.0, - 3.0, - 11.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 5.0, - 11.0, - 11.0, - 13.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 13.0, - 4.0, - 15.0, - 6.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 1.0, - 6.0, - 3.0, - 8.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 1.0, - 5.0, - 3.0, - 11.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 5.0, - 3.0, - 11.0, - 5.0 - ] - } - }, - "from": [ - 11.0, - 2.0, - 5.0 - ], - "name": "Left_B", - "to": [ - 13.0, - 4.0, - 11.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 13.0, - 5.0, - 15.0, - 11.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 5.0, - 11.0, - 11.0, - 13.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 1.0, - 4.0, - 3.0, - 6.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 13.0, - 6.0, - 15.0, - 8.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 13.0, - 5.0, - 15.0, - 11.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 5.0, - 3.0, - 11.0, - 5.0 - ] - } - }, - "from": [ - 3.0, - 2.0, - 5.0 - ], - "name": "Right_B", - "to": [ - 5.0, - 4.0, - 11.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 2.0, - 1.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 0.0, - 5.0, - 1.0, - 10.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 0.0, - 5.0, - 2.0, - 10.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 0.0, - 5.0, - 2.0, - 10.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 2.0, - 1.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 0.0, - 5.0, - 1.0, - 10.0 - ] - } - }, - "from": [ - 7.0, - 3.0, - 2.0 - ], - "name": "Front_S", - "to": [ - 9.0, - 8.0, - 3.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 14.0, - 1.0, - 16.0, - 2.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 14.0, - 2.0, - 15.0, - 7.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 14.0, - 2.0, - 16.0, - 7.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 14.0, - 2.0, - 16.0, - 7.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 14.0, - 0.0, - 16.0, - 1.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 15.0, - 2.0, - 16.0, - 7.0 - ] - } - }, - "from": [ - 7.0, - 3.0, - 13.0 - ], - "name": "Back_S", - "to": [ - 9.0, - 8.0, - 14.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 11.0, - 3.0, - 12.0, - 5.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 11.0, - 3.0, - 13.0, - 8.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 12.0, - 3.0, - 13.0, - 8.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 13.0, - 3.0, - 11.0, - 8.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 12.0, - 3.0, - 13.0, - 5.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 11.0, - 3.0, - 13.0, - 8.0 - ] - } - }, - "from": [ - 2.0, - 3.0, - 7.0 - ], - "name": "Left_S", - "to": [ - 3.0, - 8.0, - 9.0 - ] - }, - { - "faces": { - "down": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 1.0, - 2.0 - ] - }, - "east": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 2.0, - 5.0 - ] - }, - "north": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 1.0, - 5.0 - ] - }, - "south": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 1.0, - 5.0 - ] - }, - "up": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 1.0, - 2.0 - ] - }, - "west": { - "texture": "#0", - "uv": [ - 0.0, - 0.0, - 2.0, - 5.0 - ] - } - }, - "from": [ - 13.0, - 3.0, - 7.0 - ], - "name": "Right_S", - "to": [ - 14.0, - 8.0, - 9.0 - ] - }, - { - "faces": { - "down": { - "texture": "#1", - "uv": [ - 7.0, - 9.0, - 9.0, - 11.0 - ] - }, - "east": { - "texture": "#1", - "uv": [ - 7.0, - 9.0, - 9.0, - 15.0 - ] - }, - "north": { - "texture": "#1", - "uv": [ - 7.0, - 9.0, - 9.0, - 15.0 - ] - }, - "south": { - "texture": "#1", - "uv": [ - 7.0, - 9.0, - 9.0, - 15.0 - ] - }, - "up": { - "texture": "#1", - "uv": [ - 7.0, - 9.0, - 9.0, - 11.0 - ] - }, - "west": { - "texture": "#1", - "uv": [ - 7.0, - 9.0, - 9.0, - 15.0 - ] - } - }, - "from": [ - 7.0, - 2.0, - 7.0 - ], - "name": "Torch_B", - "to": [ - 9.0, - 8.0, - 9.0 - ] - }, - { - "faces": { - "down": { - "texture": "#1", - "uv": [ - 7.0, - 7.0, - 9.0, - 9.0 - ] - }, - "east": { - "texture": "#1", - "uv": [ - 7.0, - 7.0, - 9.0, - 9.0 - ] - }, - "north": { - "texture": "#1", - "uv": [ - 7.0, - 7.0, - 9.0, - 9.0 - ] - }, - "south": { - "texture": "#1", - "uv": [ - 7.0, - 7.0, - 9.0, - 9.0 - ] - }, - "up": { - "texture": "#1", - "uv": [ - 7.0, - 7.0, - 9.0, - 9.0 - ] - }, - "west": { - "texture": "#1", - "uv": [ - 7.0, - 7.0, - 9.0, - 9.0 - ] - } - }, - "from": [ - 7.0, - 8.0, - 7.0 - ], - "name": "Torch_Off", - "to": [ - 9.0, - 10.0, - 9.0 - ] - } - ], - "textures": { - "particle": "appliedenergistics2:blocks/wireless_access_point_inside", - "0": "appliedenergistics2:blocks/wireless_access_point_inside", - "1": "appliedenergistics2:blocks/wireless_access_point" - } -} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_chassis.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_chassis.json new file mode 100644 index 000000000..c47470d58 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_chassis.json @@ -0,0 +1,140 @@ +{ + "parent": "block/block", + "textures": { + "particle": "appliedenergistics2:blocks/wireless_access_point_inside", + "inside": "appliedenergistics2:blocks/wireless_access_point_inside", + "1": "appliedenergistics2:blocks/wireless_access_point", + "sides": "appliedenergistics2:parts/monitor_sides", + "sidesStatus": "appliedenergistics2:parts/monitor_sides_status" + }, + "elements": [ + { + "from": [5, 5, 0], + "to": [11, 11, 1], + "faces": { + "north": { "texture": "#sides"}, + "south": { "texture": "#sides"}, + "east": { "texture": "#sidesStatus"}, + "west": { "texture": "#sidesStatus"}, + "up": { "texture": "#sidesStatus"}, + "down": { "texture": "#sidesStatus"} + } + }, + { + "from": [5, 5, 1], + "to": [11, 11, 2], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna I Up", + "from": [6, 10, 2], + "to": [10, 12, 4], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna I Down", + "from": [6, 4, 2], + "to": [10, 6, 4], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna I West", + "from": [4, 6, 2], + "to": [6, 10, 4], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna I East", + "from": [10, 6, 2], + "to": [12, 10, 4], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna II Up", + "from": [7, 12, 3], + "to": [9, 13, 6], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna II Down", + "from": [7, 3, 3], + "to": [9, 4, 6], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna II West", + "from": [3, 7, 3], + "to": [4, 9, 6], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + }, + { + "name": "Side Antenna II East", + "from": [12, 7, 3], + "to": [13, 9, 6], + "faces": { + "north": { "texture": "#inside"}, + "south": { "texture": "#inside"}, + "east": { "texture": "#sides"}, + "west": { "texture": "#sides"}, + "up": { "texture": "#sides"}, + "down": { "texture": "#sides"} + } + } + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_off.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_off.json new file mode 100644 index 000000000..f1bf8acf3 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_off.json @@ -0,0 +1,18 @@ +{ + "textures": { + "torch": "appliedenergistics2:blocks/wireless_access_point" + }, + "elements": [ + { + "from": [7, 7, 1], + "to": [9, 9, 9], + "faces": { + "up": { "texture": "#torch", "uv": [1, 7, 9, 9], "rotation": 90 }, + "down": { "texture": "#torch", "uv": [1, 7, 9, 9], "rotation": 270 }, + "east": { "texture": "#torch", "uv": [1, 7, 9, 9], "rotation": 180 }, + "west": { "texture": "#torch", "uv": [1, 7, 9, 9] }, + "south": { "texture": "#torch", "uv": [7, 7, 9, 9], "rotation": 270 } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json new file mode 100644 index 000000000..ef2fc0333 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_on.json @@ -0,0 +1,45 @@ +{ + "uvlMarker": true, + "ambientocclusion": false, + "textures": { + "torch": "appliedenergistics2:blocks/wireless_access_point_on" + }, + "elements": [ + { + "from": [7, 7, 1], + "to": [9, 9, 6], + "faces": { + "up": { "texture": "#torch", "uv": [1, 7, 6, 9], "rotation": 90 }, + "down": { "texture": "#torch", "uv": [1, 7, 6, 9], "rotation": 270 }, + "east": { "texture": "#torch", "uv": [1, 7, 6, 9], "rotation": 180 }, + "west": { "texture": "#torch", "uv": [1, 7, 6, 9] } + } + }, + { + "from": [7, 7, 7], + "to": [9, 9, 9], + "shade": false, + "faces": { + "south": { "texture": "#torch", "uv": [7, 7, 9, 9], "rotation": 270, "uvlightmap": { "sky": 0.007, "block": 0.007 } } + } + }, + { + "from": [6, 7, 6], + "to": [10, 9, 10], + "shade": false, + "faces": { + "up": { "texture": "#torch", "uv": [6, 6, 10, 10], "rotation": 90, "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "down": { "texture": "#torch", "uv": [6, 6, 10, 10], "rotation": 270, "uvlightmap": { "sky": 0.007, "block": 0.007 } } + } + }, + { + "from": [7, 6, 6], + "to": [9, 10, 10], + "shade": false, + "faces": { + "west": { "texture": "#torch", "uv": [6, 6, 10, 10], "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "east": { "texture": "#torch", "uv": [6, 6, 10, 10], "rotation": 180, "uvlightmap": { "sky": 0.007, "block": 0.007 } } + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_has_channel.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_has_channel.json new file mode 100644 index 000000000..b93f4be20 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_has_channel.json @@ -0,0 +1,17 @@ +{ + "textures": { + "indicator": "appliedenergistics2:parts/monitor_sides_status_has_channel" + }, + "elements": [ + { + "from": [5, 5, 0], + "to": [11, 11, 1], + "faces": { + "down": { "texture": "#indicator", "tintindex": 1, "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "up": { "texture": "#indicator", "tintindex": 1, "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "east": { "texture": "#indicator", "tintindex": 1, "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "west": { "texture": "#indicator", "tintindex": 1, "uvlightmap": { "sky": 0.007, "block": 0.007 } } + } + } + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_off.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_off.json new file mode 100644 index 000000000..5d4ed3dfe --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_off.json @@ -0,0 +1,17 @@ +{ + "textures": { + "indicator": "appliedenergistics2:parts/monitor_sides_status_off" + }, + "elements": [ + { + "from": [5, 5, 0], + "to": [11, 11, 1], + "faces": { + "down": { "texture": "#indicator" }, + "up": { "texture": "#indicator" }, + "east": { "texture": "#indicator" }, + "west": { "texture": "#indicator" } + } + } + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_on.json b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_on.json new file mode 100644 index 000000000..e06ef7ae5 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/block/wireless_access_point_status_on.json @@ -0,0 +1,17 @@ +{ + "textures": { + "indicator": "appliedenergistics2:parts/monitor_sides_status_on" + }, + "elements": [ + { + "from": [5, 5, 0], + "to": [11, 11, 1], + "faces": { + "down": { "texture": "#indicator", "tintindex": 3, "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "up": { "texture": "#indicator", "tintindex": 3, "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "east": { "texture": "#indicator", "tintindex": 3, "uvlightmap": { "sky": 0.007, "block": 0.007 } }, + "west": { "texture": "#indicator", "tintindex": 3, "uvlightmap": { "sky": 0.007, "block": 0.007 } } + } + } + ] +} diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/wireless_access_point.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/wireless_access_point.png index d09b2aecc11865eadedabecc37c75f5130c311e2..7c9ce76120ae21131cde285a44f46526def46484 100644 GIT binary patch delta 2816 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 D@99tX delta 205 zcmbO!_J?tTiX}_Bqpu?a!^VE@KZ&di3=9g%9znhg3{`3j3=J&|48Ir{7#dzMFq9fF zFuY1&V6d9Oz#v{QXIG%jL`Cs>2B{L)h?3y^w370~qEv=}#LT=BJwMkFg)(D3Q$0gN z_s>q|3=9lDo-U3d7XHZ+tcT?yj9dPir+oOq|8x?c!>m*ZlauBNN4rG-OG`@bjL)QQR diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/wireless_access_point_on.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/wireless_access_point_on.png index 716188fe91f30cf72db0049ae66b5944f3c1e547..9eb86d947dabe444b161858da5855b1dbe37636d 100644 GIT binary patch delta 2840 zcmeBX+8{PTWnzLzJ(qu`vvWW|Mt(_taYlZDf~T{yLP1e}T4qiv14G5Fxxwin!7s&Z zzu)`fr+`<7;=-Gvfd>U$U0I}0Ea+hF>ucx{4b|F&MYd%ouL+|B3N4{-2ItM@PtG;QEn=_Duk zp!xWbV-KI`IW%&q6fg*IY)(-u{;SN$@T1PgMqB9s`#uK7ip$&_3Qz`~GlIyvbvLx3(rf_nY4%M1;3 zf6T0AWQd-kD9X5CB7=f(YJGuAXn*xpQWH z+xX&jU+ri6uauPZ_}|m>s|y?$7#^0?UHqq`zgeomnyn%C-y+p_EE#d!3rfFtr)}bQ z*vhcr<*o3~1)$JzT{vOq&6`i3Jh|a@#3?%QRCw*b^h5Cn!vE&{th4#^{p*8$k5n3s zVjJCAemppI=8Ml#ne&r4TaxZP>vymJvz`0@AKA-FM?8~uMresV4iqZvbD7oi*=VU! zr_&_OqpFwwr#!l^^PAc3zA3|oEIY>PiMlIdlbOGHs|!Sw9C-Adf#K8c{DW6CIG7tU znjfAo|Nq|puloX3hK4lHNremyaV{!)A*VLmALn3Ta9Pl(wZT#P%Rvd918gz}S??U= zuK$x@*5agcj}HTE=evN)dL5KdIQ)xnt56`|b6AwIM9hvGpG7NKqxg_9j3flA&JO+5^Qx#y)^b>6wcT&l%w5%-0Z62n>jVhd(p zDB2=r+hexy`GwUP{I~k;oR1qEcp<@Vd?d#}@7Q6djTSnblao(xR9eHc`k2&)ur_`qP9!$ z=Mjk{Bg6Xk2oD|QYeN0P`U2G*&PU8uggTv#)OSu`^4z#2$7^upaP<@@uNznd{{UtGgHpZw+b zD)&DBB~z>aH{@^bujOCec_P?0^Qf@h<~b)}bJVmj-$qvd`0bB@&asCboR=m}O`QI) zW#Z0@HjA&i^}6x*WFCuotnxVbSnjdKYV~YtifZ1zuYBLl3i92#OmmsFkG0S7vuDmO zI(u!V>1qgIKKc9Vl_WkV%Q58`-+g5Dbk?OhWNz}5)ciZ;lwMJP+E{zC{irwtC zcJ5l$YrEI(UM{$Nr{841)$^{UAKvhB+sSP!w@Yq#dV}rux^21JY7^6w#M8GQU3d81 zcNRB)?&$9HZaS?u-A-?|^s&1q_CE0{`C1tJu-etaPzcc@g$$ZUuk;cUr4xey-5cu?>J@@>n2HE%5)cMyt`!}Xte?weiF{Ks~WZOrc(-HVJrV}4-!iS4KT59iN|Z@uqaulzsdf7Sns z49go-8Pl0N8yy>?nSTGMs!`nEXK!^o_1mVKZykFU>~s`$>~C7z^z`6b#f%egCahKb z{(Q!{iRUu;S_A4{T)V)Y_^dv$`*0nPdTV=Yc$%S)rh$fo;lt!mU>$2%<^*f-T(9UbNi#Y zkGLOKi_g$M5nE8X@Z6yIvysO>^++@Uxim!BIeKg;dcPOB7sCvQuCmHsTP?DU${)=mG8=5=q^mz&CdGJErcHLQ`kT-%(My$FfY zxUR*%DLpkjZU5QMQbK$3*VXM+tMbimj5~O$>EKqz?AP3(Tu)nT zU*Ea@Hr78vKl1+8#9wW5rR_vJyVi-^7N0I!e?#L=#Z&3_{8Rg9-kGvxvqOu?|fIacWZUp_m|T1%+KBZvbXZ1*#B!+=ULj`-TS#J|NGJJU+;_Ett(Rhd+zk^ zo8{{7*6#7&6aU5Gt>aDSyX{x)qyOEx@%~PI)`9W`pD*5V|IXIheE#3Wul@Yato<|l z>rc1ww!NNbVP|Ri$iC?B%RkGV&!?PMn)vKyU{FZ*2=ZlMs8VHMXlQ0&sQ>w&fuZ3g14F3+1H-EX1_rAc z3=HD=lj4uMF)%Phd%8G=RNQ)V$&jnTfyd>d<+o`&Tf;qsb&_8noR+WH#j&oV=`34Y ziwHlH-~#hNb~~nZS|OaFDq9=R9Jy=xEub}#X=-U6W7;uGS7nBbeeBzAP51YIQUAes d0}n&O$t!c;f8#qQ%fP_E;OXk;vd$@?2>|gjQ$GLz delta 220 zcmdlW*3C3Q#gZl6(btiIVPik{pF~y$1_p&>k04(LhAK4%hK3dfhF=T}3=J`gH(xYL`iUdT1k0gQ7S_~VrE{6o}X)oLYc9ish**s z`)4O}1_p*`PZ!4!3;$#Z)@Io?sXuKlqtMb}nj4 zw5^=wnDG1C+yBy1QYXw4j&_MAFgG+Xws|rch)>96IKvvC_p)J;fkT;@8IJ@b4-bQk XMB4i+R`%5l3=9mOu6{1-oD!M<>rzIB