mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-22 15:18:34 +01:00
Added Fluid Laser Relays
This commit is contained in:
parent
e75a0ee64e
commit
39baccc762
12 changed files with 1095 additions and 4 deletions
|
@ -23,7 +23,7 @@ if(hasProperty('buildnumber')){
|
||||||
}
|
}
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
version = "1.10.2-12.18.1.2044"
|
version = "1.10.2-12.18.1.2076"
|
||||||
runDir = "idea"
|
runDir = "idea"
|
||||||
|
|
||||||
mappings = "snapshot_20160519"
|
mappings = "snapshot_20160519"
|
||||||
|
|
|
@ -19,6 +19,7 @@ import java.util.List;
|
||||||
public class ConnectionPair{
|
public class ConnectionPair{
|
||||||
|
|
||||||
//TODO Remove eventually, just for making the implementation of LaserType work
|
//TODO Remove eventually, just for making the implementation of LaserType work
|
||||||
|
//TODO Also remove those deprecated methods in the API
|
||||||
public static final List<ConnectionPair> PAIRS_FOR_FIXING = new ArrayList<ConnectionPair>();
|
public static final List<ConnectionPair> PAIRS_FOR_FIXING = new ArrayList<ConnectionPair>();
|
||||||
|
|
||||||
public final BlockPos[] positions = new BlockPos[2];
|
public final BlockPos[] positions = new BlockPos[2];
|
||||||
|
|
|
@ -133,6 +133,8 @@ public class BlockLaserRelay extends BlockContainerBase{
|
||||||
return new TileEntityLaserRelayEnergyAdvanced();
|
return new TileEntityLaserRelayEnergyAdvanced();
|
||||||
case ENERGY_EXTREME:
|
case ENERGY_EXTREME:
|
||||||
return new TileEntityLaserRelayEnergyExtreme();
|
return new TileEntityLaserRelayEnergyExtreme();
|
||||||
|
case FLUIDS:
|
||||||
|
return new TileEntityLaserRelayFluids();
|
||||||
default:
|
default:
|
||||||
return new TileEntityLaserRelayEnergy();
|
return new TileEntityLaserRelayEnergy();
|
||||||
}
|
}
|
||||||
|
@ -142,6 +144,7 @@ public class BlockLaserRelay extends BlockContainerBase{
|
||||||
ENERGY_BASIC,
|
ENERGY_BASIC,
|
||||||
ENERGY_ADVANCED,
|
ENERGY_ADVANCED,
|
||||||
ENERGY_EXTREME,
|
ENERGY_EXTREME,
|
||||||
|
FLUIDS,
|
||||||
ITEM,
|
ITEM,
|
||||||
ITEM_WHITELIST
|
ITEM_WHITELIST
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,7 @@ public final class InitBlocks{
|
||||||
public static Block blockLaserRelay;
|
public static Block blockLaserRelay;
|
||||||
public static Block blockLaserRelayAdvanced;
|
public static Block blockLaserRelayAdvanced;
|
||||||
public static Block blockLaserRelayExtreme;
|
public static Block blockLaserRelayExtreme;
|
||||||
|
public static Block blockLaserRelayFluids;
|
||||||
public static Block blockLaserRelayItem;
|
public static Block blockLaserRelayItem;
|
||||||
public static Block blockLaserRelayItemWhitelist;
|
public static Block blockLaserRelayItemWhitelist;
|
||||||
public static Block blockItemViewer;
|
public static Block blockItemViewer;
|
||||||
|
@ -147,6 +148,7 @@ public final class InitBlocks{
|
||||||
blockLaserRelay = new BlockLaserRelay("blockLaserRelay", Type.ENERGY_BASIC);
|
blockLaserRelay = new BlockLaserRelay("blockLaserRelay", Type.ENERGY_BASIC);
|
||||||
blockLaserRelayAdvanced = new BlockLaserRelay("blockLaserRelayAdvanced", Type.ENERGY_ADVANCED);
|
blockLaserRelayAdvanced = new BlockLaserRelay("blockLaserRelayAdvanced", Type.ENERGY_ADVANCED);
|
||||||
blockLaserRelayExtreme = new BlockLaserRelay("blockLaserRelayExtreme", Type.ENERGY_EXTREME);
|
blockLaserRelayExtreme = new BlockLaserRelay("blockLaserRelayExtreme", Type.ENERGY_EXTREME);
|
||||||
|
blockLaserRelayFluids = new BlockLaserRelay("blockLaserRelayFluids", Type.FLUIDS);
|
||||||
blockLaserRelayItem = new BlockLaserRelay("blockLaserRelayItem", Type.ITEM);
|
blockLaserRelayItem = new BlockLaserRelay("blockLaserRelayItem", Type.ITEM);
|
||||||
blockLaserRelayItemWhitelist = new BlockLaserRelay("blockLaserRelayItemWhitelist", Type.ITEM_WHITELIST);
|
blockLaserRelayItemWhitelist = new BlockLaserRelay("blockLaserRelayItemWhitelist", Type.ITEM_WHITELIST);
|
||||||
blockRangedCollector = new BlockRangedCollector("blockRangedCollector");
|
blockRangedCollector = new BlockRangedCollector("blockRangedCollector");
|
||||||
|
|
|
@ -69,6 +69,7 @@ public class CreativeTab extends CreativeTabs{
|
||||||
this.add(InitBlocks.blockLaserRelay);
|
this.add(InitBlocks.blockLaserRelay);
|
||||||
this.add(InitBlocks.blockLaserRelayAdvanced);
|
this.add(InitBlocks.blockLaserRelayAdvanced);
|
||||||
this.add(InitBlocks.blockLaserRelayExtreme);
|
this.add(InitBlocks.blockLaserRelayExtreme);
|
||||||
|
this.add(InitBlocks.blockLaserRelayFluids);
|
||||||
this.add(InitBlocks.blockLaserRelayItem);
|
this.add(InitBlocks.blockLaserRelayItem);
|
||||||
this.add(InitBlocks.blockLaserRelayItemWhitelist);
|
this.add(InitBlocks.blockLaserRelayItemWhitelist);
|
||||||
this.add(InitBlocks.blockItemViewer);
|
this.add(InitBlocks.blockItemViewer);
|
||||||
|
|
|
@ -35,7 +35,8 @@ public abstract class TileEntityLaserRelay extends TileEntityBase{
|
||||||
|
|
||||||
public static final int MAX_DISTANCE = 15;
|
public static final int MAX_DISTANCE = 15;
|
||||||
private static final float[] COLOR = new float[]{1F, 0F, 0F};
|
private static final float[] COLOR = new float[]{1F, 0F, 0F};
|
||||||
private static final float[] COLOR_ITEM = new float[]{139F/255F, 94F/255F, 1F};
|
private static final float[] COLOR_ITEM = new float[]{43F/255F, 158F/255F, 39/255F};
|
||||||
|
private static final float[] COLOR_FLUIDS = new float[]{139F/255F, 94F/255F, 1F};
|
||||||
|
|
||||||
public final LaserType type;
|
public final LaserType type;
|
||||||
|
|
||||||
|
@ -113,7 +114,7 @@ public abstract class TileEntityLaserRelay extends TileEntityBase{
|
||||||
if(network != null){
|
if(network != null){
|
||||||
for(ConnectionPair aPair : network.connections){
|
for(ConnectionPair aPair : network.connections){
|
||||||
if(!aPair.suppressConnectionRender && aPair.contains(this.pos) && this.pos.equals(aPair.positions[0])){
|
if(!aPair.suppressConnectionRender && aPair.contains(this.pos) && this.pos.equals(aPair.positions[0])){
|
||||||
AssetUtil.renderParticlesFromAToB(aPair.positions[0].getX(), aPair.positions[0].getY(), aPair.positions[0].getZ(), aPair.positions[1].getX(), aPair.positions[1].getY(), aPair.positions[1].getZ(), ConfigBoolValues.LESS_PARTICLES.isEnabled() ? 1 : Util.RANDOM.nextInt(3)+1, 0.8F, this.type == LaserType.ITEM ? COLOR_ITEM : COLOR, 1F);
|
AssetUtil.renderParticlesFromAToB(aPair.positions[0].getX(), aPair.positions[0].getY(), aPair.positions[0].getZ(), aPair.positions[1].getX(), aPair.positions[1].getY(), aPair.positions[1].getZ(), ConfigBoolValues.LESS_PARTICLES.isEnabled() ? 1 : Util.RANDOM.nextInt(3)+1, 0.8F, this.type == LaserType.ITEM ? COLOR_ITEM : (this.type == LaserType.FLUID ? COLOR_FLUIDS : COLOR), 1F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class TileEntityLaserRelayEnergy extends TileEntityLaserRelay implements
|
||||||
return this.getEnergyCap();
|
return this.getEnergyCap();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int transmitEnergy(EnumFacing from, int maxTransmit, boolean simulate){
|
private int transmitEnergy(EnumFacing from, int maxTransmit, boolean simulate){
|
||||||
int transmitted = 0;
|
int transmitted = 0;
|
||||||
if(maxTransmit > 0){
|
if(maxTransmit > 0){
|
||||||
Network network = ActuallyAdditionsAPI.connectionHandler.getNetworkFor(this.pos, this.worldObj);
|
Network network = ActuallyAdditionsAPI.connectionHandler.getNetworkFor(this.pos, this.worldObj);
|
||||||
|
|
|
@ -0,0 +1,183 @@
|
||||||
|
/*
|
||||||
|
* This file ("TileEntityLaserRelayFluids.java") is part of the Actually Additions mod for Minecraft.
|
||||||
|
* It is created and owned by Ellpeck and distributed
|
||||||
|
* under the Actually Additions License to be found at
|
||||||
|
* http://ellpeck.de/actaddlicense
|
||||||
|
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
||||||
|
*
|
||||||
|
* © 2015-2016 Ellpeck
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.ellpeck.actuallyadditions.mod.tile;
|
||||||
|
|
||||||
|
import cofh.api.energy.IEnergyReceiver;
|
||||||
|
import de.ellpeck.actuallyadditions.api.ActuallyAdditionsAPI;
|
||||||
|
import de.ellpeck.actuallyadditions.api.laser.ConnectionPair;
|
||||||
|
import de.ellpeck.actuallyadditions.api.laser.LaserType;
|
||||||
|
import de.ellpeck.actuallyadditions.api.laser.Network;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.ActuallyAdditions;
|
||||||
|
import de.ellpeck.actuallyadditions.mod.util.compat.TeslaUtil;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.EnumFacing;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
|
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
|
||||||
|
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
public class TileEntityLaserRelayFluids extends TileEntityLaserRelay implements ISharingFluidHandler{
|
||||||
|
|
||||||
|
public final ConcurrentHashMap<EnumFacing, TileEntity> receiversAround = new ConcurrentHashMap<EnumFacing, TileEntity>();
|
||||||
|
|
||||||
|
public TileEntityLaserRelayFluids(){
|
||||||
|
super("laserRelayFluids", LaserType.FLUID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void saveAllHandlersAround(){
|
||||||
|
this.receiversAround.clear();
|
||||||
|
|
||||||
|
for(EnumFacing side : EnumFacing.values()){
|
||||||
|
BlockPos pos = this.getPos().offset(side);
|
||||||
|
TileEntity tile = this.worldObj.getTileEntity(pos);
|
||||||
|
if(tile != null && !(tile instanceof TileEntityLaserRelay)){
|
||||||
|
if(tile instanceof net.minecraftforge.fluids.IFluidHandler || tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side.getOpposite())){
|
||||||
|
this.receiversAround.put(side, tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getFluidAmountToSplitShare(){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean doesShareFluid(){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EnumFacing[] getFluidShareSides(){
|
||||||
|
return new EnumFacing[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int fill(EnumFacing from, FluidStack resource, boolean doFill){
|
||||||
|
return this.transmitEnergy(from, resource, doFill);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int transmitEnergy(EnumFacing from, FluidStack stack, boolean doFill){
|
||||||
|
int transmitted = 0;
|
||||||
|
if(stack != null){
|
||||||
|
Network network = ActuallyAdditionsAPI.connectionHandler.getNetworkFor(this.pos, this.worldObj);
|
||||||
|
if(network != null){
|
||||||
|
transmitted = this.transferEnergyToReceiverInNeed(from, network, stack, doFill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return transmitted;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int transferEnergyToReceiverInNeed(EnumFacing from, Network network, FluidStack stack, boolean doFill){
|
||||||
|
int transmitted = 0;
|
||||||
|
//Keeps track of all the Laser Relays and Energy Acceptors that have been checked already to make nothing run multiple times
|
||||||
|
List<BlockPos> alreadyChecked = new ArrayList<BlockPos>();
|
||||||
|
|
||||||
|
List<TileEntityLaserRelayFluids> relaysThatWork = new ArrayList<TileEntityLaserRelayFluids>();
|
||||||
|
int totalReceiverAmount = 0;
|
||||||
|
|
||||||
|
for(ConnectionPair pair : network.connections){
|
||||||
|
for(BlockPos relay : pair.positions){
|
||||||
|
if(relay != null && !alreadyChecked.contains(relay)){
|
||||||
|
alreadyChecked.add(relay);
|
||||||
|
TileEntity relayTile = this.worldObj.getTileEntity(relay);
|
||||||
|
if(relayTile instanceof TileEntityLaserRelayFluids){
|
||||||
|
TileEntityLaserRelayFluids theRelay = (TileEntityLaserRelayFluids)relayTile;
|
||||||
|
int amount = theRelay.receiversAround.size();
|
||||||
|
if(amount > 0){
|
||||||
|
relaysThatWork.add(theRelay);
|
||||||
|
totalReceiverAmount += amount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(totalReceiverAmount > 0 && !relaysThatWork.isEmpty()){
|
||||||
|
int amountPer = stack.amount/totalReceiverAmount;
|
||||||
|
if(amountPer <= 0){
|
||||||
|
amountPer = stack.amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(TileEntityLaserRelayFluids theRelay : relaysThatWork){
|
||||||
|
for(Map.Entry<EnumFacing, TileEntity> receiver : theRelay.receiversAround.entrySet()){
|
||||||
|
if(receiver != null){
|
||||||
|
EnumFacing side = receiver.getKey();
|
||||||
|
EnumFacing opp = side.getOpposite();
|
||||||
|
TileEntity tile = receiver.getValue();
|
||||||
|
if(!alreadyChecked.contains(tile.getPos())){
|
||||||
|
alreadyChecked.add(tile.getPos());
|
||||||
|
if(theRelay != this || side != from){
|
||||||
|
if(tile instanceof net.minecraftforge.fluids.IFluidHandler){
|
||||||
|
net.minecraftforge.fluids.IFluidHandler iHandler = (net.minecraftforge.fluids.IFluidHandler)tile;
|
||||||
|
if(iHandler.canFill(opp, stack.getFluid())){
|
||||||
|
FluidStack copy = stack.copy();
|
||||||
|
copy.amount = amountPer;
|
||||||
|
transmitted += iHandler.fill(opp, copy, doFill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(tile.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, opp)){
|
||||||
|
IFluidHandler cap = tile.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, opp);
|
||||||
|
if(cap != null){
|
||||||
|
FluidStack copy = stack.copy();
|
||||||
|
copy.amount = amountPer;
|
||||||
|
transmitted += cap.fill(copy, doFill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//If everything that could be transmitted was transmitted
|
||||||
|
if(transmitted >= stack.amount){
|
||||||
|
return transmitted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return transmitted;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidStack drain(EnumFacing from, FluidStack resource, boolean doDrain){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidStack drain(EnumFacing from, int maxDrain, boolean doDrain){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canFill(EnumFacing from, Fluid fluid){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canDrain(EnumFacing from, Fluid fluid){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTankInfo[] getTankInfo(EnumFacing from){
|
||||||
|
return new FluidTankInfo[0];
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"forge_marker": 1,
|
||||||
|
"defaults": {
|
||||||
|
"model": "actuallyadditions:blockLaserRelayFluids",
|
||||||
|
"transform": "forge:default-block"
|
||||||
|
},
|
||||||
|
"variants": {
|
||||||
|
"normal": [{}],
|
||||||
|
"inventory": [{}],
|
||||||
|
"meta": {
|
||||||
|
"0": { "x": 180 },
|
||||||
|
"1": {},
|
||||||
|
"2": { "x": 90 },
|
||||||
|
"3": { "x": 270 },
|
||||||
|
"4": { "x": 90, "y": 270 },
|
||||||
|
"5": { "x": 270, "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -188,6 +188,7 @@ tile.actuallyadditions.blockRangedCollector.name=Ranged Collector
|
||||||
tile.actuallyadditions.blockLaserRelay.name=Energy Laser Relay
|
tile.actuallyadditions.blockLaserRelay.name=Energy Laser Relay
|
||||||
tile.actuallyadditions.blockLaserRelayAdvanced.name=Advanced Energy Laser Relay
|
tile.actuallyadditions.blockLaserRelayAdvanced.name=Advanced Energy Laser Relay
|
||||||
tile.actuallyadditions.blockLaserRelayExtreme.name=Extreme Energy Laser Relay
|
tile.actuallyadditions.blockLaserRelayExtreme.name=Extreme Energy Laser Relay
|
||||||
|
tile.actuallyadditions.blockLaserRelayFluids.name=Fluid Laser Relay
|
||||||
tile.actuallyadditions.blockMiscIronCasing.name=Iron Casing
|
tile.actuallyadditions.blockMiscIronCasing.name=Iron Casing
|
||||||
tile.actuallyadditions.blockBlackLotus.name=Black Lotus
|
tile.actuallyadditions.blockBlackLotus.name=Black Lotus
|
||||||
tile.actuallyadditions.blockTestifiBucksWhiteFence.name=Ethetic Quartz Wall
|
tile.actuallyadditions.blockTestifiBucksWhiteFence.name=Ethetic Quartz Wall
|
||||||
|
|
|
@ -0,0 +1,880 @@
|
||||||
|
{
|
||||||
|
"__createdBy": "canitzp",
|
||||||
|
"ambientocclusion": false,
|
||||||
|
"textures": {
|
||||||
|
"particle": "actuallyadditions:blocks/models/modelLaserRelayFluids",
|
||||||
|
"laserRelay": "actuallyadditions:blocks/models/modelLaserRelayFluids"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [4,0,4],
|
||||||
|
"to": [12,1,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,1,3],
|
||||||
|
"to": [12,4,4],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,1,12],
|
||||||
|
"to": [12,4,13],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,11,12],
|
||||||
|
"to": [12,14,13],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,11,3],
|
||||||
|
"to": [12,14,4],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,4,2],
|
||||||
|
"to": [12,5,3],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,10,2],
|
||||||
|
"to": [12,11,3],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,10,13],
|
||||||
|
"to": [12,11,14],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,4,13],
|
||||||
|
"to": [12,5,14],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [5.5,1,5.5],
|
||||||
|
"to": [10.5,3,10.5],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [13.5,13.5,16,16],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,5.0,5.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,5,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,5,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,5,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,5,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7,3,7],
|
||||||
|
"to": [9,14,9],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,2.0,2.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,2.0,2.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [14,2,16,7.5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [14,2,16,7.5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [14,2,16,7.5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [14,2,16,7.5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,14,4],
|
||||||
|
"to": [12,15,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [1,12,5,15],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,8,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5,6.5,6.5],
|
||||||
|
"to": [9.5,9.5,9.5],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [14,0,16,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [14,0,16,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [14,0,16,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [14,0,16,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [14,0,16,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [14,0,16,2],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,5,2],
|
||||||
|
"to": [5,10,3],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11,5,2],
|
||||||
|
"to": [12,10,3],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [11,5,13],
|
||||||
|
"to": [12,10,14],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [4,5,13],
|
||||||
|
"to": [5,10,14],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3,1,4],
|
||||||
|
"to": [4,4,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [12,1,4],
|
||||||
|
"to": [13,4,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [12,11,4],
|
||||||
|
"to": [13,14,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [3,11,4],
|
||||||
|
"to": [4,14,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,3],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2,4,4],
|
||||||
|
"to": [3,5,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2,10,4],
|
||||||
|
"to": [3,11,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13,10,4],
|
||||||
|
"to": [14,11,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13,4,4],
|
||||||
|
"to": [14,5,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0,0,1,8],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,8,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,1],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2,5,4],
|
||||||
|
"to": [3,10,5],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2,5,11],
|
||||||
|
"to": [3,10,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13,5,11],
|
||||||
|
"to": [14,10,12],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [13,5,4],
|
||||||
|
"to": [14,10,5],
|
||||||
|
"faces": {
|
||||||
|
"up": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"down": {
|
||||||
|
"uv": [0.0,0.0,1.0,1.0],
|
||||||
|
"texture": "missingtexture"
|
||||||
|
},
|
||||||
|
"west": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"east": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"north": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
},
|
||||||
|
"south": {
|
||||||
|
"uv": [0,0,1,5],
|
||||||
|
"texture": "#laserRelay"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 266 B |
Loading…
Reference in a new issue