Added Connected Glass Blocks and Panes
- Added vertically connected glass blocks for all wood variants - Added horizontal and vertical connected windows in a neutral style - Fixed Oxidizing blocks not progressing when next to enclosed blocks
This commit is contained in:
parent
53a5ef6357
commit
6be5ed3d1b
202 changed files with 2259 additions and 83 deletions
|
@ -7,8 +7,6 @@ import com.simibubi.create.foundation.block.ProperStairsBlock;
|
|||
import com.simibubi.create.foundation.block.RenderUtilityAxisBlock;
|
||||
import com.simibubi.create.foundation.block.RenderUtilityBlock;
|
||||
import com.simibubi.create.foundation.block.RenderUtilityDirectionalBlock;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.world.OxidizingBlock;
|
||||
import com.simibubi.create.modules.IModule;
|
||||
|
@ -68,8 +66,11 @@ import com.simibubi.create.modules.logistics.block.inventories.FlexcrateBlock;
|
|||
import com.simibubi.create.modules.logistics.block.transposer.LinkedTransposerBlock;
|
||||
import com.simibubi.create.modules.logistics.block.transposer.TransposerBlock;
|
||||
import com.simibubi.create.modules.palettes.CTGlassBlock;
|
||||
import com.simibubi.create.modules.palettes.CTGlassPaneBlock;
|
||||
import com.simibubi.create.modules.palettes.GlassPaneBlock;
|
||||
import com.simibubi.create.modules.palettes.HorizontalCTGlassBlock;
|
||||
import com.simibubi.create.modules.palettes.LayeredCTBlock;
|
||||
import com.simibubi.create.modules.palettes.VerticalCTGlassBlock;
|
||||
import com.simibubi.create.modules.palettes.VolcanicRockBlock;
|
||||
import com.simibubi.create.modules.schematics.block.CreativeCrateBlock;
|
||||
import com.simibubi.create.modules.schematics.block.SchematicTableBlock;
|
||||
|
@ -90,7 +91,6 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.renderer.color.BlockColors;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.ToolType;
|
||||
|
@ -208,22 +208,37 @@ public enum AllBlocks {
|
|||
|
||||
__PALETTES__(),
|
||||
TILED_GLASS(new GlassBlock(Properties.from(Blocks.GLASS))),
|
||||
FRAMED_GLASS(new CTGlassBlock(AllCTs.FRAMED_GLASS, false)),
|
||||
HORIZONTAL_FRAMED_GLASS(new HorizontalCTGlassBlock(AllCTs.HORIZONTAL_FRAMED_GLASS, AllCTs.FRAMED_GLASS, false)),
|
||||
VERTICAL_FRAMED_GLASS(new VerticalCTGlassBlock(AllCTs.VERTICAL_FRAMED_GLASS, false)),
|
||||
|
||||
OAK_GLASS(new VerticalCTGlassBlock(AllCTs.OAK_GLASS, false)),
|
||||
SPRUCE_GLASS(new VerticalCTGlassBlock(AllCTs.SPRUCE_GLASS, false)),
|
||||
BIRCH_GLASS(new VerticalCTGlassBlock(AllCTs.BIRCH_GLASS, true)),
|
||||
JUNGLE_GLASS(new VerticalCTGlassBlock(AllCTs.JUNGLE_GLASS, false)),
|
||||
DARK_OAK_GLASS(new VerticalCTGlassBlock(AllCTs.DARK_OAK_GLASS, false)),
|
||||
ACACIA_GLASS(new VerticalCTGlassBlock(AllCTs.ACACIA_GLASS, false)),
|
||||
IRON_GLASS(new VerticalCTGlassBlock(AllCTs.IRON_GLASS, false)),
|
||||
|
||||
TILED_GLASS_PANE(new GlassPaneBlock(Properties.from(Blocks.GLASS))),
|
||||
FRAMED_GLASS(new CTGlassBlock(true)),
|
||||
FRAMED_GLASS_PANE(new CTGlassPaneBlock(FRAMED_GLASS.block)),
|
||||
HORIZONTAL_FRAMED_GLASS_PANE(new CTGlassPaneBlock(HORIZONTAL_FRAMED_GLASS.block)),
|
||||
VERTICAL_FRAMED_GLASS_PANE(new CTGlassPaneBlock(VERTICAL_FRAMED_GLASS.block)),
|
||||
OAK_GLASS_PANE(new CTGlassPaneBlock(OAK_GLASS.block)),
|
||||
SPRUCE_GLASS_PANE(new CTGlassPaneBlock(SPRUCE_GLASS.block)),
|
||||
BIRCH_GLASS_PANE(new CTGlassPaneBlock(BIRCH_GLASS.block)),
|
||||
JUNGLE_GLASS_PANE(new CTGlassPaneBlock(JUNGLE_GLASS.block)),
|
||||
DARK_OAK_GLASS_PANE(new CTGlassPaneBlock(DARK_OAK_GLASS.block)),
|
||||
ACACIA_GLASS_PANE(new CTGlassPaneBlock(ACACIA_GLASS.block)),
|
||||
IRON_GLASS_PANE(new CTGlassPaneBlock(IRON_GLASS.block)),
|
||||
|
||||
GRANITE_BRICKS(new Block(Properties.from(Blocks.GRANITE))),
|
||||
GRANITE_LAYERS(new LayeredCTBlock(Properties.from(Blocks.GRANITE),
|
||||
CTSpriteShifter.get(CTType.HORIZONTAL, "granite_layers"),
|
||||
CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, new ResourceLocation("block/polished_granite"), "polished_granite"))),
|
||||
GRANITE_LAYERS(new LayeredCTBlock(Properties.from(Blocks.GRANITE), AllCTs.GRANITE_LAYERS, AllCTs.POLISHED_GRANITE)),
|
||||
DIORITE_BRICKS(new Block(Properties.from(Blocks.DIORITE))),
|
||||
DIORITE_LAYERS(new LayeredCTBlock(Properties.from(Blocks.DIORITE),
|
||||
CTSpriteShifter.get(CTType.HORIZONTAL, "diorite_layers"),
|
||||
CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, new ResourceLocation("block/polished_diorite"), "polished_diorite"))),
|
||||
DIORITE_LAYERS(new LayeredCTBlock(Properties.from(Blocks.DIORITE), AllCTs.DIORITE_LAYERS, AllCTs.POLISHED_DIORITE)),
|
||||
ANDESITE_BRICKS(new Block(Properties.from(Blocks.ANDESITE))),
|
||||
ANDESITE_LAYERS(new LayeredCTBlock(Properties.from(Blocks.ANDESITE),
|
||||
CTSpriteShifter.get(CTType.HORIZONTAL, "andesite_layers"),
|
||||
CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, new ResourceLocation("block/polished_andesite"),
|
||||
"polished_andesite"))),
|
||||
ANDESITE_LAYERS(
|
||||
new LayeredCTBlock(Properties.from(Blocks.ANDESITE), AllCTs.ANDESITE_LAYERS, AllCTs.POLISHED_ANDESITE)),
|
||||
|
||||
GABBRO(new Block(Properties.from(Blocks.GRANITE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
|
||||
POLISHED_GABBRO(new Block(Properties.from(GABBRO.block))),
|
||||
|
@ -232,32 +247,26 @@ public enum AllBlocks {
|
|||
INDENTED_GABBRO(new Block(Properties.from(GABBRO.block)), ComesWith.SLAB),
|
||||
SLIGHTLY_MOSSY_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block))),
|
||||
MOSSY_GABBRO_BRICKS(new Block(Properties.from(GABBRO.block))),
|
||||
GABBRO_LAYERS(
|
||||
new LayeredCTBlock(Properties.from(GABBRO.block), CTSpriteShifter.get(CTType.HORIZONTAL, "gabbro_layers"),
|
||||
CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, "polished_gabbro"))),
|
||||
GABBRO_LAYERS(new LayeredCTBlock(Properties.from(GABBRO.block), AllCTs.GABBRO_LAYERS, AllCTs.POLISHED_GABBRO)),
|
||||
LIMESAND(new FallingBlock(Properties.from(Blocks.SAND))),
|
||||
LIMESTONE(new Block(Properties.from(Blocks.SANDSTONE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
|
||||
LIMESTONE_BRICKS(new Block(Properties.from(LIMESTONE.block)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
|
||||
POLISHED_LIMESTONE(new Block(Properties.from(LIMESTONE.block)), ComesWith.SLAB),
|
||||
LIMESTONE_PILLAR(new RotatedPillarBlock(Properties.from(LIMESTONE.block))),
|
||||
LIMESTONE_LAYERS(new LayeredCTBlock(Properties.from(LIMESTONE.block),
|
||||
CTSpriteShifter.get(CTType.HORIZONTAL, "limestone_layers"),
|
||||
CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, "polished_limestone"))),
|
||||
LIMESTONE_LAYERS(
|
||||
new LayeredCTBlock(Properties.from(LIMESTONE.block), AllCTs.LIMESTONE_LAYERS, AllCTs.POLISHED_LIMESTONE)),
|
||||
WEATHERED_LIMESTONE(new Block(Properties.from(Blocks.ANDESITE)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
|
||||
WEATHERED_LIMESTONE_BRICKS(new Block(Properties.from(WEATHERED_LIMESTONE.block)), ComesWith.STAIRS, ComesWith.SLAB,
|
||||
ComesWith.WALL),
|
||||
POLISHED_WEATHERED_LIMESTONE(new Block(Properties.from(WEATHERED_LIMESTONE.block)), ComesWith.SLAB),
|
||||
WEATHERED_LIMESTONE_PILLAR(new RotatedPillarBlock(Properties.from(WEATHERED_LIMESTONE.block))),
|
||||
WEATHERED_LIMESTONE_LAYERS(new LayeredCTBlock(Properties.from(WEATHERED_LIMESTONE.block),
|
||||
CTSpriteShifter.get(CTType.HORIZONTAL, "weathered_limestone_layers"),
|
||||
CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, "polished_weathered_limestone"))),
|
||||
AllCTs.WEATHERED_LIMESTONE_LAYERS, AllCTs.POLISHED_WEATHERED_LIMESTONE)),
|
||||
DOLOMITE(new Block(Properties.from(Blocks.QUARTZ_BLOCK)), ComesWith.STAIRS, ComesWith.SLAB, ComesWith.WALL),
|
||||
DOLOMITE_BRICKS(new Block(Properties.from(DOLOMITE.block))),
|
||||
POLISHED_DOLOMITE(new Block(Properties.from(DOLOMITE.block))),
|
||||
DOLOMITE_PILLAR(new RotatedPillarBlock(Properties.from(DOLOMITE.block))),
|
||||
DOLOMITE_LAYERS(new LayeredCTBlock(Properties.from(DOLOMITE.block),
|
||||
CTSpriteShifter.get(CTType.HORIZONTAL, "dolomite_layers"),
|
||||
CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, "polished_dolomite"))),
|
||||
DOLOMITE_LAYERS(new LayeredCTBlock(Properties.from(DOLOMITE.block), AllCTs.DOLOMITE_LAYERS, AllCTs.POLISHED_DOLOMITE)),
|
||||
|
||||
VOLCANIC_ROCK(new VolcanicRockBlock()),
|
||||
|
||||
|
|
81
src/main/java/com/simibubi/create/AllCTs.java
Normal file
81
src/main/java/com/simibubi/create/AllCTs.java
Normal file
|
@ -0,0 +1,81 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import static com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType.HORIZONTAL;
|
||||
import static com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType.OMNIDIRECTIONAL;
|
||||
import static com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType.VERTICAL;
|
||||
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType;
|
||||
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public enum AllCTs {
|
||||
|
||||
FRAMED_GLASS(omni("framed_glass")),
|
||||
HORIZONTAL_FRAMED_GLASS(custom(HORIZONTAL, "framed_glass", "horizontal_framed_glass")),
|
||||
VERTICAL_FRAMED_GLASS(custom(VERTICAL, "framed_glass", "vertical_framed_glass")),
|
||||
|
||||
OAK_GLASS(vertical("oak_window")),
|
||||
SPRUCE_GLASS(vertical("spruce_window")),
|
||||
BIRCH_GLASS(vertical("birch_window")),
|
||||
JUNGLE_GLASS(vertical("jungle_window")),
|
||||
DARK_OAK_GLASS(vertical("dark_oak_window")),
|
||||
ACACIA_GLASS(vertical("acacia_window")),
|
||||
ACACIA_GLASS_DENSE(vertical("acacia_window_dense")),
|
||||
IRON_GLASS(vertical("iron_window")),
|
||||
|
||||
GRANITE_LAYERS(layers("granite")),
|
||||
DIORITE_LAYERS(layers("diorite")),
|
||||
ANDESITE_LAYERS(layers("andesite")),
|
||||
GABBRO_LAYERS(layers("gabbro")),
|
||||
DOLOMITE_LAYERS(layers("dolomite")),
|
||||
LIMESTONE_LAYERS(layers("limestone")),
|
||||
WEATHERED_LIMESTONE_LAYERS(layers("weathered_limestone")),
|
||||
|
||||
POLISHED_GRANITE(polishedVanilla("granite")),
|
||||
POLISHED_DIORITE(polishedVanilla("diorite")),
|
||||
POLISHED_ANDESITE(polishedVanilla("andesite")),
|
||||
POLISHED_GABBRO(polished("gabbro")),
|
||||
POLISHED_DOLOMITE(polished("dolomite")),
|
||||
POLISHED_LIMESTONE(polished("limestone")),
|
||||
POLISHED_WEATHERED_LIMESTONE(polished("weathered_limestone")),
|
||||
|
||||
;
|
||||
|
||||
private CTSpriteShiftEntry entry;
|
||||
|
||||
private AllCTs(CTSpriteShiftEntry entry) {
|
||||
this.entry = entry;
|
||||
}
|
||||
|
||||
public CTSpriteShiftEntry get() {
|
||||
return entry;
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry omni(String name) {
|
||||
return CTSpriteShifter.get(OMNIDIRECTIONAL, name);
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry custom(CTType type, String from, String to) {
|
||||
return CTSpriteShifter.get(type, from, to);
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry vertical(String blockname) {
|
||||
return CTSpriteShifter.get(VERTICAL, blockname);
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry layers(String prefix) {
|
||||
return CTSpriteShifter.get(HORIZONTAL, prefix + "_layers");
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry polished(String blockname) {
|
||||
return omni("polished_" + blockname);
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry polishedVanilla(String blockname) {
|
||||
return CTSpriteShifter.get(OMNIDIRECTIONAL, new ResourceLocation("block/polished_" + blockname),
|
||||
"polished_" + blockname);
|
||||
}
|
||||
|
||||
}
|
|
@ -55,7 +55,7 @@ public class CTModel extends BakedModelWrapper<IBakedModel> {
|
|||
CTData data = new CTData();
|
||||
|
||||
for (Direction face : Direction.values()) {
|
||||
if (!Block.shouldSideBeRendered(state, world, pos, face))
|
||||
if (state.isNormalCube(world, pos) && !Block.shouldSideBeRendered(state, world, pos, face))
|
||||
continue;
|
||||
CTSpriteShiftEntry spriteShift = behaviour.get(state, face);
|
||||
if (spriteShift == null)
|
||||
|
|
|
@ -20,10 +20,18 @@ public abstract class ConnectedTextureBehaviour {
|
|||
|
||||
public abstract Iterable<CTSpriteShiftEntry> getAllCTShifts();
|
||||
|
||||
protected boolean shouldFlipUVs(BlockState state, Direction face) {
|
||||
protected boolean reverseUVs(BlockState state, Direction face) {
|
||||
return false;
|
||||
}
|
||||
|
||||
protected boolean reverseUVsHorizontally(BlockState state, Direction face) {
|
||||
return reverseUVs(state, face);
|
||||
}
|
||||
|
||||
protected boolean reverseUVsVertically(BlockState state, Direction face) {
|
||||
return reverseUVs(state, face);
|
||||
}
|
||||
|
||||
public boolean connectsTo(BlockState state, BlockState other, IEnviromentBlockReader reader, BlockPos pos,
|
||||
BlockPos otherPos, Direction face) {
|
||||
|
||||
|
@ -55,26 +63,20 @@ public abstract class ConnectedTextureBehaviour {
|
|||
return connectsTo(state, reader.getBlockState(p), reader, pos, p, face);
|
||||
};
|
||||
|
||||
boolean up = connection.test(0, 1);
|
||||
boolean down = connection.test(0, -1);
|
||||
boolean left = connection.test(-1, 0);
|
||||
boolean right = connection.test(1, 0);
|
||||
boolean topLeft = connection.test(-1, 1);
|
||||
boolean topRight = connection.test(1, 1);
|
||||
boolean bottomLeft = connection.test(-1, -1);
|
||||
boolean bottomRight = connection.test(1, -1);
|
||||
boolean flipH = reverseUVsHorizontally(state, face);
|
||||
boolean flipV = reverseUVsVertically(state, face);
|
||||
int sh = flipH ? -1 : 1;
|
||||
int sv = flipV ? -1 : 1;
|
||||
|
||||
boolean flip = shouldFlipUVs(state, face);
|
||||
CTContext context = new CTContext();
|
||||
|
||||
context.up = flip ? down : up;
|
||||
context.down = flip ? up : down;
|
||||
context.left = flip ? right : left;
|
||||
context.right = flip ? left : right;
|
||||
context.topLeft = flip ? bottomRight : topLeft;
|
||||
context.topRight = flip ? bottomLeft : topRight;
|
||||
context.bottomLeft = flip ? topRight : bottomLeft;
|
||||
context.bottomRight = flip ? topLeft : bottomRight;
|
||||
context.up = connection.test(0, sv);
|
||||
context.down = connection.test(0, -sv);
|
||||
context.left = connection.test(-sh, 0);
|
||||
context.right = connection.test(sh, 0);
|
||||
context.topLeft = connection.test(-sh, sv);
|
||||
context.topRight = connection.test(sh, sv);
|
||||
context.bottomLeft = connection.test(-sh, -sv);
|
||||
context.bottomRight = connection.test(sh, -sv);
|
||||
|
||||
return context;
|
||||
}
|
||||
|
|
|
@ -45,11 +45,10 @@ public class OxidizingBlock extends Block {
|
|||
if (!worldIn.isBlockPresent(neighbourPos))
|
||||
continue;
|
||||
BlockState neighborState = worldIn.getBlockState(neighbourPos);
|
||||
if (neighborState.has(OXIDIZATION)) {
|
||||
if (neighborState.has(OXIDIZATION) && neighborState.get(OXIDIZATION) != 0) {
|
||||
neighbors.add(neighborState.get(OXIDIZATION));
|
||||
}
|
||||
if (Block.hasSolidSide(neighborState, worldIn, neighbourPos,
|
||||
facing.getOpposite())) {
|
||||
if (Block.hasSolidSide(neighborState, worldIn, neighbourPos, facing.getOpposite())) {
|
||||
continue;
|
||||
}
|
||||
canIncrease = true;
|
||||
|
|
|
@ -209,7 +209,7 @@ public class RotationPropagator {
|
|||
&& (newSpeed != 0 && neighbourTE.speed != 0);
|
||||
|
||||
boolean tooFast = Math.abs(newSpeed) > parameters.maxRotationSpeed.get();
|
||||
boolean speedChangedTooOften = updateTE.speedChangeCounter > 25;
|
||||
boolean speedChangedTooOften = updateTE.speedChangeCounter > 50;
|
||||
if (tooFast || speedChangedTooOften) {
|
||||
world.destroyBlock(pos, true);
|
||||
return;
|
||||
|
|
|
@ -97,10 +97,10 @@ public class LinearChassisBlock extends AbstractChassisBlock implements IHaveCon
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldFlipUVs(BlockState state, Direction face) {
|
||||
public boolean reverseUVs(BlockState state, Direction face) {
|
||||
if (state.get(AXIS).isHorizontal() && face.getAxisDirection() == AxisDirection.POSITIVE)
|
||||
return true;
|
||||
return super.shouldFlipUVs(state, face);
|
||||
return super.reverseUVs(state, face);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -43,7 +43,7 @@ public class InputCTBehaviour extends ConnectedTextureBehaviour {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldFlipUVs(BlockState state, Direction direction) {
|
||||
protected boolean reverseUVs(BlockState state, Direction direction) {
|
||||
if (!direction.getAxis().isVertical())
|
||||
return false;
|
||||
Direction facing = state.get(HORIZONTAL_FACING);
|
||||
|
|
|
@ -1,22 +1,41 @@
|
|||
package com.simibubi.create.modules.palettes;
|
||||
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType;
|
||||
import com.simibubi.create.AllCTs;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour;
|
||||
import com.simibubi.create.foundation.block.connected.IHaveConnectedTextures;
|
||||
import com.simibubi.create.foundation.block.connected.StandardCTBehaviour;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.block.GlassBlock;
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class CTGlassBlock extends GlassBlock implements IHaveConnectedTextures {
|
||||
|
||||
private boolean hasAlpha;
|
||||
protected ConnectedTextureBehaviour behaviour;
|
||||
|
||||
public CTGlassBlock(boolean hasAlpha) {
|
||||
public CTGlassBlock(AllCTs spriteShift, boolean hasAlpha) {
|
||||
super(Properties.from(Blocks.GLASS));
|
||||
this.hasAlpha = hasAlpha;
|
||||
this.behaviour = createBehaviour(spriteShift.get());
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Override
|
||||
public boolean isSideInvisible(BlockState state, BlockState adjacentBlockState, Direction side) {
|
||||
return adjacentBlockState.getBlock() instanceof CTGlassBlock
|
||||
? (!state.canRenderInLayer(BlockRenderLayer.TRANSLUCENT) && side.getAxis().isHorizontal()
|
||||
|| state.getBlock() == adjacentBlockState.getBlock())
|
||||
: super.isSideInvisible(state, adjacentBlockState, side);
|
||||
}
|
||||
|
||||
public ConnectedTextureBehaviour createBehaviour(CTSpriteShiftEntry spriteShift) {
|
||||
return new StandardCTBehaviour(spriteShift);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -26,7 +45,7 @@ public class CTGlassBlock extends GlassBlock implements IHaveConnectedTextures {
|
|||
|
||||
@Override
|
||||
public ConnectedTextureBehaviour getBehaviour() {
|
||||
return new StandardCTBehaviour(CTSpriteShifter.get(CTType.OMNIDIRECTIONAL, getRegistryName().getPath()));
|
||||
return behaviour;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
package com.simibubi.create.modules.palettes;
|
||||
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour;
|
||||
import com.simibubi.create.foundation.block.connected.IHaveConnectedTextures;
|
||||
import com.simibubi.create.foundation.block.connected.StandardCTBehaviour;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.Direction.AxisDirection;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IEnviromentBlockReader;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class CTGlassPaneBlock extends GlassPaneBlock implements IHaveConnectedTextures {
|
||||
|
||||
protected CTGlassBlock ctGlass;
|
||||
protected ConnectedTextureBehaviour behaviour;
|
||||
|
||||
public CTGlassPaneBlock(Block ctGlass) {
|
||||
super(Properties.from(Blocks.GLASS));
|
||||
this.ctGlass = (CTGlassBlock) ctGlass;
|
||||
behaviour = createBehaviour();
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public boolean isSideInvisible(BlockState state, BlockState adjacentBlockState, Direction side) {
|
||||
if (side.getAxis().isVertical())
|
||||
return adjacentBlockState == state;
|
||||
return super.isSideInvisible(state, adjacentBlockState, side);
|
||||
}
|
||||
|
||||
|
||||
|
||||
protected ConnectedTextureBehaviour createBehaviour() {
|
||||
for (CTSpriteShiftEntry ctSpriteShiftEntry : ctGlass.getBehaviour().getAllCTShifts()) {
|
||||
return new StandardCTBehaviour(ctSpriteShiftEntry) {
|
||||
@Override
|
||||
public boolean connectsTo(BlockState state, BlockState other, IEnviromentBlockReader reader,
|
||||
BlockPos pos, BlockPos otherPos, Direction face) {
|
||||
return state.getBlock() == other.getBlock();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean reverseUVsHorizontally(BlockState state, net.minecraft.util.Direction face) {
|
||||
if (face.getAxisDirection() == AxisDirection.NEGATIVE)
|
||||
return true;
|
||||
return super.reverseUVsHorizontally(state, face);
|
||||
}
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockRenderLayer getRenderLayer() {
|
||||
return ctGlass.getRenderLayer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConnectedTextureBehaviour getBehaviour() {
|
||||
return behaviour;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.simibubi.create.modules.palettes;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllCTs;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour;
|
||||
|
||||
public class HorizontalCTGlassBlock extends CTGlassBlock {
|
||||
|
||||
private AllCTs topShift;
|
||||
|
||||
public HorizontalCTGlassBlock(AllCTs layerShift, @Nullable AllCTs topShift, boolean hasAlpha) {
|
||||
super(layerShift, hasAlpha);
|
||||
this.topShift = topShift;
|
||||
behaviour = createBehaviour(layerShift.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConnectedTextureBehaviour createBehaviour(CTSpriteShiftEntry spriteShift) {
|
||||
return new LayeredCTBlock.LayeredCTBehaviour(spriteShift, topShift == null ? null : topShift.get());
|
||||
}
|
||||
|
||||
}
|
|
@ -2,6 +2,9 @@ package com.simibubi.create.modules.palettes;
|
|||
|
||||
import java.util.Arrays;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllCTs;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour;
|
||||
import com.simibubi.create.foundation.block.connected.IHaveConnectedTextures;
|
||||
|
@ -14,13 +17,13 @@ public class LayeredCTBlock extends Block implements IHaveConnectedTextures {
|
|||
|
||||
private LayeredCTBehaviour behaviour;
|
||||
|
||||
public LayeredCTBlock(Properties properties, CTSpriteShiftEntry layerShift) {
|
||||
public LayeredCTBlock(Properties properties, AllCTs layerShift) {
|
||||
this(properties, layerShift, null);
|
||||
}
|
||||
|
||||
public LayeredCTBlock(Properties properties, CTSpriteShiftEntry layerShift, CTSpriteShiftEntry topShift) {
|
||||
public LayeredCTBlock(Properties properties, AllCTs layerShift, @Nullable AllCTs topShift) {
|
||||
super(properties);
|
||||
behaviour = new LayeredCTBehaviour(layerShift, topShift);
|
||||
behaviour = new LayeredCTBehaviour(layerShift.get(), topShift == null ? null : topShift.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -28,7 +31,7 @@ public class LayeredCTBlock extends Block implements IHaveConnectedTextures {
|
|||
return behaviour;
|
||||
}
|
||||
|
||||
private static class LayeredCTBehaviour extends ConnectedTextureBehaviour {
|
||||
static class LayeredCTBehaviour extends ConnectedTextureBehaviour {
|
||||
|
||||
CTSpriteShiftEntry topShift;
|
||||
CTSpriteShiftEntry layerShift;
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package com.simibubi.create.modules.palettes;
|
||||
|
||||
import com.simibubi.create.AllCTs;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour;
|
||||
import com.simibubi.create.foundation.block.connected.StandardCTBehaviour;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.Direction;
|
||||
|
||||
public class VerticalCTGlassBlock extends CTGlassBlock {
|
||||
|
||||
public VerticalCTGlassBlock(AllCTs spriteShift, boolean hasAlpha) {
|
||||
super(spriteShift, hasAlpha);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConnectedTextureBehaviour createBehaviour(CTSpriteShiftEntry spriteShift) {
|
||||
return new StandardCTBehaviour(spriteShift) {
|
||||
@Override
|
||||
public CTSpriteShiftEntry get(BlockState state, Direction direction) {
|
||||
if (direction.getAxis().isVertical())
|
||||
return null;
|
||||
return super.get(state, direction);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/acacia_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/acacia/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/birch_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/birch/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/birch/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/dark_oak_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/dark_oak/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/glass/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/framed_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/glass/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/iron_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/iron/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/iron/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/jungle_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/jungle/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/oak_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/oak/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/oak/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/spruce_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/spruce/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,29 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{ "apply": { "model": "create:block/palettes/tiled_glass_pane_post" }},
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_side" }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_side", "y": 90 }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_side_alt" }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_side_alt", "y": 90 }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_noside" }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_noside_alt" }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_noside_alt", "y": 90 }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/tiled_glass_pane_noside", "y": 270 }
|
||||
"apply": { "model": "create:block/palettes/pane/tiled/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"variants": {
|
||||
"": { "model": "create:block/palettes/framed_glass" }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"apply": { "model": "create:block/palettes/pane/glass/post" }
|
||||
},
|
||||
{ "when": { "north": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side" }
|
||||
},
|
||||
{ "when": { "east": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side", "y": 90 }
|
||||
},
|
||||
{ "when": { "south": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side_alt" }
|
||||
},
|
||||
{ "when": { "west": true },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/side_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "north": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside" }
|
||||
},
|
||||
{ "when": { "east": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside_alt" }
|
||||
},
|
||||
{ "when": { "south": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside_alt", "y": 90 }
|
||||
},
|
||||
{ "when": { "west": false },
|
||||
"apply": { "model": "create:block/palettes/pane/glass/noside", "y": 270 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -135,8 +135,28 @@
|
|||
"block.create.belt_tunnel": "Conveyor Tunnel",
|
||||
|
||||
"block.create.tiled_glass": "Tiled Glass",
|
||||
"block.create.framed_glass": "Large Glass Window",
|
||||
"block.create.vertical_framed_glass": "Vertical Glass Window",
|
||||
"block.create.horizontal_framed_glass": "Horizontal Glass Window",
|
||||
"block.create.oak_glass": "Oak Window",
|
||||
"block.create.spruce_glass": "Spruce Window",
|
||||
"block.create.birch_glass": "Birch Window",
|
||||
"block.create.jungle_glass": "Jungle Window",
|
||||
"block.create.dark_oak_glass": "Dark Oak Window",
|
||||
"block.create.acacia_glass": "Acacia Window",
|
||||
"block.create.iron_glass": "Ornate Iron Window",
|
||||
|
||||
"block.create.tiled_glass_pane": "Tiled Glass Pane",
|
||||
"block.create.framed_glass": "Framed Glass",
|
||||
"block.create.framed_glass_pane": "Large Glass Window Pane",
|
||||
"block.create.vertical_framed_glass_pane": "Vertical Glass Window Pane",
|
||||
"block.create.horizontal_framed_glass_pane": "Horizontal Glass Window Pane",
|
||||
"block.create.oak_glass_pane": "Oak Window Pane",
|
||||
"block.create.spruce_glass_pane": "Spruce Window Pane",
|
||||
"block.create.birch_glass_pane": "Birch Window Pane",
|
||||
"block.create.jungle_glass_pane": "Jungle Window Pane",
|
||||
"block.create.dark_oak_glass_pane": "Dark Oak Window Pane",
|
||||
"block.create.acacia_glass_pane": "Acacia Window Pane",
|
||||
"block.create.iron_glass_pane": "Ornate Iron Window Pane",
|
||||
|
||||
"block.create.window_in_a_block": "Block with Glass Pane",
|
||||
"block.create.andesite_bricks": "Andesite Bricks",
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "block/acacia_planks",
|
||||
"side": "create:block/acacia_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "block/birch_planks",
|
||||
"side": "create:block/birch_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "block/dark_oak_planks",
|
||||
"side": "create:block/dark_oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "create:block/iron_window_top",
|
||||
"side": "create:block/iron_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "block/jungle_planks",
|
||||
"side": "create:block/jungle_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "block/oak_planks",
|
||||
"side": "create:block/oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/acacia_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/acacia_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "block/acacia_planks",
|
||||
"pane": "create:block/acacia_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "block/acacia_planks",
|
||||
"pane": "create:block/acacia_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "block/acacia_planks",
|
||||
"pane": "create:block/acacia_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/birch_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/birch_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "block/birch_planks",
|
||||
"pane": "create:block/birch_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "block/birch_planks",
|
||||
"pane": "create:block/birch_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "block/birch_planks",
|
||||
"pane": "create:block/birch_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/dark_oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/dark_oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "block/dark_oak_planks",
|
||||
"pane": "create:block/dark_oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "block/dark_oak_planks",
|
||||
"pane": "create:block/dark_oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "block/dark_oak_planks",
|
||||
"pane": "create:block/dark_oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/framed_glass"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/framed_glass"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "create:block/framed_glass_pane_top",
|
||||
"pane": "create:block/framed_glass"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "create:block/framed_glass_pane_top",
|
||||
"pane": "create:block/framed_glass"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "create:block/framed_glass_pane_top",
|
||||
"pane": "create:block/framed_glass"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/iron_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/iron_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "create:block/gabbro",
|
||||
"pane": "create:block/iron_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "create:block/gabbro",
|
||||
"pane": "create:block/iron_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "create:block/gabbro",
|
||||
"pane": "create:block/iron_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/jungle_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/jungle_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "block/jungle_planks",
|
||||
"pane": "create:block/jungle_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "block/jungle_planks",
|
||||
"pane": "create:block/jungle_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "block/jungle_planks",
|
||||
"pane": "create:block/jungle_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "block/oak_planks",
|
||||
"pane": "create:block/oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "block/oak_planks",
|
||||
"pane": "create:block/oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "block/oak_planks",
|
||||
"pane": "create:block/oak_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/spruce_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/spruce_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "block/spruce_log",
|
||||
"pane": "create:block/spruce_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "block/spruce_log",
|
||||
"pane": "create:block/spruce_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "block/spruce_log",
|
||||
"pane": "create:block/spruce_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside",
|
||||
"textures": {
|
||||
"pane": "create:block/$PANE"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_noside_alt",
|
||||
"textures": {
|
||||
"pane": "create:block/$PANE"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_post",
|
||||
"textures": {
|
||||
"edge": "block/$EDGE",
|
||||
"pane": "create:block/$PANE"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side",
|
||||
"textures": {
|
||||
"edge": "block/$EDGE",
|
||||
"pane": "create:block/$PANE"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:block/template_glass_pane_side_alt",
|
||||
"textures": {
|
||||
"edge": "block/$EDGE",
|
||||
"pane": "create:block/$PANE"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "block/cube_column",
|
||||
"textures": {
|
||||
"end": "block/spruce_log_top",
|
||||
"side": "create:block/spruce_window"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "#pane"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 7, 0, 7 ],
|
||||
"to": [ 9, 16, 9 ],
|
||||
"faces": {
|
||||
"north": { "uv": [ 9, 0, 7, 16 ], "texture": "#pane" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "#pane"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 7, 0, 7 ],
|
||||
"to": [ 9, 16, 9 ],
|
||||
"faces": {
|
||||
"east": { "uv": [ 7, 0, 9, 16 ], "texture": "#pane" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "#pane"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 7, 0, 7 ],
|
||||
"to": [ 9, 16, 9 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge", "cullface": "down" },
|
||||
"up": { "uv": [ 7, 7, 9, 9 ], "texture": "#edge", "cullface": "up" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "#pane"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 7, 0, 0 ],
|
||||
"to": [ 9, 16, 7 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "cullface": "down" },
|
||||
"up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "cullface": "up" },
|
||||
"north": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "north" },
|
||||
"west": { "uv": [ 16, 0, 9, 16 ], "texture": "#pane" },
|
||||
"east": { "uv": [ 9, 0, 16, 16 ], "texture": "#pane" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"particle": "#pane"
|
||||
},
|
||||
"elements": [
|
||||
{ "from": [ 7, 0, 9 ],
|
||||
"to": [ 9, 16, 16 ],
|
||||
"faces": {
|
||||
"down": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "cullface": "down" },
|
||||
"up": { "uv": [ 7, 0, 9, 7 ], "texture": "#edge", "cullface": "up" },
|
||||
"south": { "uv": [ 7, 0, 9, 16 ], "texture": "#edge", "cullface": "south" },
|
||||
"west": { "uv": [ 7, 0, 0, 16 ], "texture": "#pane" },
|
||||
"east": { "uv": [ 0, 0, 7, 16 ], "texture": "#pane" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "create:block/palettes/acacia_glass"
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:item/pane",
|
||||
"textures": {
|
||||
"pane": "create:block/acacia_window",
|
||||
"edge": "block/acacia_planks"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "create:block/palettes/birch_glass"
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"parent": "create:item/pane",
|
||||
"textures": {
|
||||
"pane": "create:block/birch_window",
|
||||
"edge": "block/birch_planks"
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue