Made covers automatically adjust to the model size. Fixes #1862
This commit is contained in:
@@ -16,7 +16,7 @@ public class NetworkNodeCable extends NetworkNode implements ICoverable {
|
||||
|
||||
private static final String NBT_COVERS = "Covers";
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.ALLOW_ALL);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.ANY);
|
||||
|
||||
public NetworkNodeCable(World world, BlockPos pos) {
|
||||
super(world, pos);
|
||||
|
||||
@@ -67,7 +67,7 @@ public class NetworkNodeConstructor extends NetworkNode implements IComparable,
|
||||
private int type = IType.ITEMS;
|
||||
private boolean drop = false;
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.NONE_ON_FACE);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_LARGE_ON_FACE);
|
||||
|
||||
public NetworkNodeConstructor(World world, BlockPos pos) {
|
||||
super(world, pos);
|
||||
|
||||
@@ -73,7 +73,7 @@ public class NetworkNodeDestructor extends NetworkNode implements IComparable, I
|
||||
private int type = IType.ITEMS;
|
||||
private boolean pickupItem = false;
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.NONE_ON_FACE);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_LARGE_ON_FACE);
|
||||
|
||||
public NetworkNodeDestructor(World world, BlockPos pos) {
|
||||
super(world, pos);
|
||||
|
||||
@@ -44,7 +44,7 @@ public class NetworkNodeExporter extends NetworkNode implements IComparable, ITy
|
||||
private int compare = IComparer.COMPARE_NBT | IComparer.COMPARE_DAMAGE;
|
||||
private int type = IType.ITEMS;
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_WIDE_ON_FACE);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_ON_FACE);
|
||||
|
||||
private int filterSlot;
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ public class NetworkNodeExternalStorage extends NetworkNode implements IStorageP
|
||||
private AccessType accessType = AccessType.INSERT_EXTRACT;
|
||||
private int networkTicks;
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_WIDE_ON_FACE);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_MEDIUM_ON_FACE);
|
||||
|
||||
private List<IStorageExternal<ItemStack>> itemStorages = new CopyOnWriteArrayList<>();
|
||||
private List<IStorageExternal<FluidStack>> fluidStorages = new CopyOnWriteArrayList<>();
|
||||
|
||||
@@ -49,7 +49,7 @@ public class NetworkNodeImporter extends NetworkNode implements IComparable, IFi
|
||||
private int mode = IFilterable.BLACKLIST;
|
||||
private int type = IType.ITEMS;
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_WIDE_ON_FACE);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_MEDIUM_ON_FACE);
|
||||
|
||||
private int currentSlot;
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ public class NetworkNodeReader extends NetworkNode implements IReader, IGuiReade
|
||||
|
||||
private String channel = "";
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.NONE_ON_FACE);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_LARGE_ON_FACE);
|
||||
|
||||
public NetworkNodeReader(World world, BlockPos pos) {
|
||||
super(world, pos);
|
||||
|
||||
@@ -27,7 +27,7 @@ public class NetworkNodeWriter extends NetworkNode implements IWriter, IGuiReade
|
||||
private int redstoneStrength;
|
||||
private int lastRedstoneStrength;
|
||||
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.NONE_ON_FACE);
|
||||
private CoverManager coverManager = new CoverManager(this, CoverManager.CoverPlacementMode.HOLLOW_LARGE_ON_FACE);
|
||||
|
||||
public NetworkNodeWriter(World world, BlockPos pos) {
|
||||
super(world, pos);
|
||||
|
||||
@@ -25,9 +25,10 @@ import java.util.Map;
|
||||
|
||||
public class CoverManager {
|
||||
public enum CoverPlacementMode {
|
||||
ALLOW_ALL,
|
||||
NONE_ON_FACE,
|
||||
HOLLOW_WIDE_ON_FACE
|
||||
ANY,
|
||||
HOLLOW_ON_FACE,
|
||||
HOLLOW_MEDIUM_ON_FACE,
|
||||
HOLLOW_LARGE_ON_FACE
|
||||
}
|
||||
|
||||
private static final String NBT_DIRECTION = "Direction";
|
||||
@@ -74,15 +75,15 @@ public class CoverManager {
|
||||
if (isValidCover(cover.getStack()) && !hasCover(facing)) {
|
||||
if (facing == node.getDirection()) {
|
||||
switch (placementMode) {
|
||||
case ALLOW_ALL:
|
||||
case ANY:
|
||||
break;
|
||||
case NONE_ON_FACE:
|
||||
return false;
|
||||
case HOLLOW_WIDE_ON_FACE:
|
||||
case HOLLOW_ON_FACE:
|
||||
case HOLLOW_MEDIUM_ON_FACE:
|
||||
case HOLLOW_LARGE_ON_FACE:
|
||||
if (!cover.getType().isHollow()) {
|
||||
return false;
|
||||
}
|
||||
cover = new Cover(cover.getStack(), CoverType.HOLLOW_WIDE);
|
||||
cover = new Cover(cover.getStack(), placementMode == CoverPlacementMode.HOLLOW_ON_FACE ? CoverType.HOLLOW : (placementMode == CoverPlacementMode.HOLLOW_MEDIUM_ON_FACE ? CoverType.HOLLOW_MEDIUM : CoverType.HOLLOW_LARGE));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,10 +6,11 @@ import net.minecraft.item.ItemStack;
|
||||
public enum CoverType {
|
||||
NORMAL,
|
||||
HOLLOW,
|
||||
HOLLOW_WIDE;
|
||||
HOLLOW_MEDIUM,
|
||||
HOLLOW_LARGE;
|
||||
|
||||
public boolean isHollow() {
|
||||
return this == HOLLOW || this == HOLLOW_WIDE;
|
||||
return this == HOLLOW || this == HOLLOW_MEDIUM || this == HOLLOW_LARGE;
|
||||
}
|
||||
|
||||
public ItemStack createStack() {
|
||||
|
||||
@@ -76,10 +76,13 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
addNormalCover(quads, sprite, coverSide, hasUp, hasDown, hasEast, hasWest, handle);
|
||||
break;
|
||||
case HOLLOW:
|
||||
addHollowCover(quads, sprite, coverSide, hasUp, hasDown, hasEast, hasWest);
|
||||
addHollowCover(quads, sprite, coverSide, hasUp, hasDown, hasEast, hasWest, 6);
|
||||
break;
|
||||
case HOLLOW_WIDE:
|
||||
addHollowWideCover(quads, sprite, coverSide, hasUp, hasDown, hasEast, hasWest);
|
||||
case HOLLOW_MEDIUM:
|
||||
addHollowCover(quads, sprite, coverSide, hasUp, hasDown, hasEast, hasWest, 3);
|
||||
break;
|
||||
case HOLLOW_LARGE:
|
||||
addHollowCover(quads, sprite, coverSide, hasUp, hasDown, hasEast, hasWest, 2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -134,7 +137,7 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
}
|
||||
}
|
||||
|
||||
private static void addHollowCover(List<BakedQuad> quads, TextureAtlasSprite sprite, EnumFacing coverSide, boolean hasUp, boolean hasDown, boolean hasEast, boolean hasWest) {
|
||||
private static void addHollowCover(List<BakedQuad> quads, TextureAtlasSprite sprite, EnumFacing coverSide, boolean hasUp, boolean hasDown, boolean hasEast, boolean hasWest, int size) {
|
||||
AxisAlignedBB bounds = ConstantsCable.getCoverBounds(coverSide);
|
||||
|
||||
Vector3f from = new Vector3f((float) bounds.minX * 16, (float) bounds.minY * 16, (float) bounds.minZ * 16);
|
||||
@@ -158,7 +161,7 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
from.setX(0);
|
||||
}
|
||||
|
||||
to.setX(6);
|
||||
to.setX(size);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
if (hasEast) {
|
||||
to.setX(14);
|
||||
@@ -166,15 +169,15 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
to.setX(16);
|
||||
}
|
||||
|
||||
from.setX(10);
|
||||
from.setX(16 - size);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
from.setZ(0);
|
||||
to.setZ(6);
|
||||
to.setZ(size);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(10);
|
||||
from.setZ(16 - size);
|
||||
to.setZ(16);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(10);
|
||||
from.setZ(16 - size);
|
||||
to.setZ(16);
|
||||
}
|
||||
|
||||
@@ -193,7 +196,7 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
to.setX(16);
|
||||
}
|
||||
|
||||
from.setX(10);
|
||||
from.setX(16 - size);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
if (hasWest) {
|
||||
from.setX(2);
|
||||
@@ -201,16 +204,16 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
from.setX(0);
|
||||
}
|
||||
|
||||
to.setX(6);
|
||||
to.setX(size);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
from.setZ(16 - size);
|
||||
to.setZ(16);
|
||||
from.setZ(10);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(0);
|
||||
to.setZ(6);
|
||||
to.setZ(size);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(0);
|
||||
to.setZ(6);
|
||||
to.setZ(size);
|
||||
}
|
||||
|
||||
quads.addAll(new CubeBuilder()
|
||||
@@ -222,8 +225,8 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
|
||||
// Bottom
|
||||
if (coverSide == EnumFacing.NORTH) {
|
||||
from.setX(6);
|
||||
to.setX(10);
|
||||
from.setX(size);
|
||||
to.setX(16 - size);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
@@ -231,10 +234,10 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(6);
|
||||
to.setY(size);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
from.setX(6);
|
||||
to.setX(10);
|
||||
from.setX(size);
|
||||
to.setX(16 - size);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
@@ -242,10 +245,10 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(6);
|
||||
to.setY(size);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
from.setZ(6);
|
||||
to.setZ(10);
|
||||
from.setZ(size);
|
||||
to.setZ(16 - size);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
@@ -253,10 +256,10 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(6);
|
||||
to.setY(size);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(6);
|
||||
to.setZ(10);
|
||||
from.setZ(size);
|
||||
to.setZ(16 - size);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
@@ -264,13 +267,13 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(6);
|
||||
to.setY(size);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(6);
|
||||
to.setZ(10);
|
||||
from.setZ(size);
|
||||
to.setZ(16 - size);
|
||||
|
||||
from.setX(0);
|
||||
to.setX(6);
|
||||
to.setX(size);
|
||||
}
|
||||
|
||||
quads.addAll(new CubeBuilder()
|
||||
@@ -282,8 +285,8 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
|
||||
// Up
|
||||
if (coverSide == EnumFacing.NORTH) {
|
||||
from.setX(6);
|
||||
to.setX(10);
|
||||
from.setX(size);
|
||||
to.setX(16 - size);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
@@ -291,10 +294,10 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(10);
|
||||
from.setY(16 - size);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
from.setX(6);
|
||||
to.setX(10);
|
||||
from.setX(size);
|
||||
to.setX(16 - size);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
@@ -302,10 +305,10 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(10);
|
||||
from.setY(16 - size);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
from.setZ(6);
|
||||
to.setZ(10);
|
||||
from.setZ(size);
|
||||
to.setZ(16 - size);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
@@ -313,10 +316,10 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(10);
|
||||
from.setY(16 - size);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(6);
|
||||
to.setZ(10);
|
||||
from.setZ(size);
|
||||
to.setZ(16 - size);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
@@ -324,219 +327,12 @@ public class BakedModelCableCover implements IBakedModel {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(10);
|
||||
from.setY(16 - size);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(6);
|
||||
to.setZ(10);
|
||||
from.setZ(size);
|
||||
to.setZ(16 - size);
|
||||
|
||||
from.setX(10);
|
||||
to.setX(16);
|
||||
}
|
||||
|
||||
quads.addAll(new CubeBuilder()
|
||||
.from(from.getX(), from.getY(), from.getZ())
|
||||
.to(to.getX(), to.getY(), to.getZ())
|
||||
.addFaces(face -> new CubeBuilder.Face(face, sprite))
|
||||
.bake()
|
||||
);
|
||||
}
|
||||
|
||||
private static void addHollowWideCover(List<BakedQuad> quads, TextureAtlasSprite sprite, EnumFacing coverSide, boolean hasUp, boolean hasDown, boolean hasEast, boolean hasWest) {
|
||||
AxisAlignedBB bounds = ConstantsCable.getCoverBounds(coverSide);
|
||||
|
||||
Vector3f from = new Vector3f((float) bounds.minX * 16, (float) bounds.minY * 16, (float) bounds.minZ * 16);
|
||||
Vector3f to = new Vector3f((float) bounds.maxX * 16, (float) bounds.maxY * 16, (float) bounds.maxZ * 16);
|
||||
|
||||
if (coverSide.getAxis() != EnumFacing.Axis.Y) {
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
}
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
}
|
||||
}
|
||||
|
||||
// Right
|
||||
if (coverSide == EnumFacing.NORTH) {
|
||||
if (hasWest) {
|
||||
from.setX(2);
|
||||
} else {
|
||||
from.setX(0);
|
||||
}
|
||||
|
||||
to.setX(3);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
if (hasEast) {
|
||||
to.setX(14);
|
||||
} else {
|
||||
to.setX(16);
|
||||
}
|
||||
|
||||
from.setX(13);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
from.setZ(0);
|
||||
to.setZ(3);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(13);
|
||||
to.setZ(16);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(13);
|
||||
to.setZ(16);
|
||||
}
|
||||
|
||||
quads.addAll(new CubeBuilder()
|
||||
.from(from.getX(), from.getY(), from.getZ())
|
||||
.to(to.getX(), to.getY(), to.getZ())
|
||||
.addFaces(face -> new CubeBuilder.Face(face, sprite))
|
||||
.bake()
|
||||
);
|
||||
|
||||
// Left
|
||||
if (coverSide == EnumFacing.NORTH) {
|
||||
if (hasEast) {
|
||||
to.setX(14);
|
||||
} else {
|
||||
to.setX(16);
|
||||
}
|
||||
|
||||
from.setX(13);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
if (hasWest) {
|
||||
from.setX(2);
|
||||
} else {
|
||||
from.setX(0);
|
||||
}
|
||||
|
||||
to.setX(3);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
to.setZ(16);
|
||||
from.setZ(13);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(0);
|
||||
to.setZ(3);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(0);
|
||||
to.setZ(3);
|
||||
}
|
||||
|
||||
quads.addAll(new CubeBuilder()
|
||||
.from(from.getX(), from.getY(), from.getZ())
|
||||
.to(to.getX(), to.getY(), to.getZ())
|
||||
.addFaces(face -> new CubeBuilder.Face(face, sprite))
|
||||
.bake()
|
||||
);
|
||||
|
||||
// Bottom
|
||||
if (coverSide == EnumFacing.NORTH) {
|
||||
from.setX(3);
|
||||
to.setX(13);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
} else {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(3);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
from.setX(3);
|
||||
to.setX(13);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
} else {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(3);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
from.setZ(3);
|
||||
to.setZ(13);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
} else {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(3);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(3);
|
||||
to.setZ(13);
|
||||
|
||||
if (hasDown) {
|
||||
from.setY(2);
|
||||
} else {
|
||||
from.setY(0);
|
||||
}
|
||||
|
||||
to.setY(3);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(3);
|
||||
to.setZ(13);
|
||||
|
||||
from.setX(0);
|
||||
to.setX(3);
|
||||
}
|
||||
|
||||
quads.addAll(new CubeBuilder()
|
||||
.from(from.getX(), from.getY(), from.getZ())
|
||||
.to(to.getX(), to.getY(), to.getZ())
|
||||
.addFaces(face -> new CubeBuilder.Face(face, sprite))
|
||||
.bake()
|
||||
);
|
||||
|
||||
// Up
|
||||
if (coverSide == EnumFacing.NORTH) {
|
||||
from.setX(3);
|
||||
to.setX(13);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
} else {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(13);
|
||||
} else if (coverSide == EnumFacing.SOUTH) {
|
||||
from.setX(3);
|
||||
to.setX(13);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
} else {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(13);
|
||||
} else if (coverSide == EnumFacing.EAST) {
|
||||
from.setZ(3);
|
||||
to.setZ(13);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
} else {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(13);
|
||||
} else if (coverSide == EnumFacing.WEST) {
|
||||
from.setZ(3);
|
||||
to.setZ(13);
|
||||
|
||||
if (hasUp) {
|
||||
to.setY(14);
|
||||
} else {
|
||||
to.setY(16);
|
||||
}
|
||||
|
||||
from.setY(13);
|
||||
} else if (coverSide == EnumFacing.DOWN || coverSide == EnumFacing.UP) {
|
||||
from.setZ(3);
|
||||
to.setZ(13);
|
||||
|
||||
from.setX(13);
|
||||
from.setX(16 - size);
|
||||
to.setX(16);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,210 +1,209 @@
|
||||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
|
||||
"elements": [
|
||||
{
|
||||
"name": "Line1",
|
||||
"from": [
|
||||
6.0,
|
||||
6.0,
|
||||
0.0
|
||||
6,
|
||||
6,
|
||||
0
|
||||
],
|
||||
"to": [
|
||||
10.0,
|
||||
10.0,
|
||||
2.0
|
||||
10,
|
||||
10,
|
||||
2
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"south": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"west": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"up": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"down": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Line2",
|
||||
"from": [
|
||||
5.0,
|
||||
5.0,
|
||||
2.0
|
||||
5,
|
||||
5,
|
||||
2
|
||||
],
|
||||
"to": [
|
||||
11.0,
|
||||
11.0,
|
||||
4.0
|
||||
11,
|
||||
11,
|
||||
4
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"south": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"west": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"up": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"down": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Line3",
|
||||
"from": [
|
||||
3.0,
|
||||
3.0,
|
||||
4.0
|
||||
3,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"to": [
|
||||
13.0,
|
||||
13.0,
|
||||
6.0
|
||||
13,
|
||||
13,
|
||||
6
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"south": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"west": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"up": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"down": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,207 +4,207 @@
|
||||
{
|
||||
"name": "Line1",
|
||||
"from": [
|
||||
6.0,
|
||||
6.0,
|
||||
0.0
|
||||
6,
|
||||
6,
|
||||
0
|
||||
],
|
||||
"to": [
|
||||
10.0,
|
||||
10.0,
|
||||
2.0
|
||||
10,
|
||||
10,
|
||||
2
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"south": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"west": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
10.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
4
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"up": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"down": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
10.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Line2",
|
||||
"from": [
|
||||
5.0,
|
||||
5.0,
|
||||
2.0
|
||||
5,
|
||||
5,
|
||||
2
|
||||
],
|
||||
"to": [
|
||||
11.0,
|
||||
11.0,
|
||||
4.0
|
||||
11,
|
||||
11,
|
||||
4
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"south": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"west": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
6.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
6
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"up": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"down": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
6.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
6,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Line3",
|
||||
"from": [
|
||||
3.0,
|
||||
3.0,
|
||||
4.0
|
||||
3,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"to": [
|
||||
13.0,
|
||||
13.0,
|
||||
6.0
|
||||
13,
|
||||
13,
|
||||
6
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"south": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"west": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
2,
|
||||
10
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"up": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
},
|
||||
"down": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
0,
|
||||
0,
|
||||
10,
|
||||
2
|
||||
],
|
||||
"texture": "#line"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -14,22 +14,13 @@
|
||||
6.0
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
4.0
|
||||
]
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
},
|
||||
"south": {
|
||||
@@ -46,8 +37,8 @@
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
},
|
||||
"up": {
|
||||
@@ -55,8 +46,8 @@
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
},
|
||||
"down": {
|
||||
@@ -64,8 +55,8 @@
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,22 +14,13 @@
|
||||
6.0
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
4.0
|
||||
]
|
||||
},
|
||||
"east": {
|
||||
"texture": "#line",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
},
|
||||
"south": {
|
||||
@@ -46,8 +37,8 @@
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
2.0,
|
||||
4.0
|
||||
4.0,
|
||||
2.0
|
||||
]
|
||||
},
|
||||
"up": {
|
||||
@@ -55,8 +46,8 @@
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
},
|
||||
"down": {
|
||||
@@ -64,8 +55,8 @@
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
4.0,
|
||||
2.0
|
||||
2.0,
|
||||
4.0
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user