New minor version with fix for caching on dynamic models #12

Merged
Adrien1106 merged 10 commits from dev into master 2024-04-15 20:58:48 +02:00
49 changed files with 1444 additions and 60 deletions
Showing only changes of commit 4309310c02 - Show all commits

View File

@ -37,7 +37,7 @@ public class ReFramed implements ModInitializer {
public static final String MODID = "reframed";
public static final ArrayList<Block> BLOCKS = new ArrayList<>();
public static Block CUBE, SMALL_CUBE, SMALL_CUBES_STEP, STAIR, HALF_STAIR, STAIRS_CUBE, HALF_STAIRS_SLAB, HALF_STAIRS_STAIR, SLAB, SLABS_CUBE, STEP, STEPS_SLAB, LAYER, PILLAR;
public static Block CUBE, SMALL_CUBE, SMALL_CUBES_STEP, STAIR, HALF_STAIR, STAIRS_CUBE, HALF_STAIRS_SLAB, HALF_STAIRS_STAIR, SLAB, SLABS_CUBE, STEP, STEPS_SLAB, LAYER, PILLAR, WALL;
public static final ArrayList<Item> ITEMS = new ArrayList<>();
public static Item HAMMER, SCREWDRIVER, BLUEPRINT, BLUEPRINT_WRITTEN;
@ -65,6 +65,7 @@ public class ReFramed implements ModInitializer {
STEP = registerBlock("step" , new ReFramedStepBlock(cp(Blocks.OAK_SLAB)));
STEPS_SLAB = registerBlock("steps_slab" , new ReFramedStepsSlabBlock(cp(Blocks.OAK_SLAB)));
PILLAR = registerBlock("pillar" , new ReFramedPillarBlock(cp(Blocks.OAK_FENCE)));
WALL = registerBlock("wall" , new ReframedWallBlock(cp(Blocks.OAK_FENCE)));
HAMMER = registerItem("hammer" , new ReFramedHammerItem(new Item.Settings().maxCount(1)));
SCREWDRIVER = registerItem("screwdriver" , new ReFramedScrewdriverItem(new Item.Settings().maxCount(1)));

View File

@ -4,13 +4,18 @@ import fr.adrien1106.reframed.ReFramed;
import fr.adrien1106.reframed.generator.BlockStateProvider;
import fr.adrien1106.reframed.generator.GBlockstate;
import fr.adrien1106.reframed.util.VoxelHelper;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.ShapeContext;
import net.minecraft.data.client.BlockStateSupplier;
import net.minecraft.data.client.MultipartBlockStateSupplier;
import net.minecraft.data.server.recipe.RecipeExporter;
import net.minecraft.data.server.recipe.RecipeProvider;
import net.minecraft.data.server.recipe.ShapedRecipeJsonBuilder;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemPlacementContext;
import net.minecraft.recipe.book.RecipeCategory;
import net.minecraft.state.StateManager;
import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
@ -92,6 +97,19 @@ public class ReFramedPillarBlock extends WaterloggableReFramedBlock implements B
GBlockstate.variant(model_id, true, R90, R0));
}
@Override
public void setRecipe(RecipeExporter exporter) {
RecipeProvider.offerStonecuttingRecipe(exporter, RecipeCategory.BUILDING_BLOCKS, this, ReFramed.CUBE, 4);
ShapedRecipeJsonBuilder
.create(RecipeCategory.BUILDING_BLOCKS, this, 8)
.pattern("I")
.pattern("I")
.input('I', ReFramed.CUBE)
.criterion(FabricRecipeProvider.hasItem(ReFramed.CUBE), FabricRecipeProvider.conditionsFromItem(ReFramed.CUBE))
.criterion(FabricRecipeProvider.hasItem(this), FabricRecipeProvider.conditionsFromItem(this))
.offerTo(exporter);
}
static {
final VoxelShape PILLAR = createCuboidShape(0, 4, 4, 16, 12, 12);
PILLAR_VOXELS = VoxelHelper.VoxelListBuilder.create(PILLAR, 3)

View File

@ -0,0 +1,69 @@
package fr.adrien1106.reframed.block;
import fr.adrien1106.reframed.ReFramed;
import fr.adrien1106.reframed.generator.BlockStateProvider;
import fr.adrien1106.reframed.util.blocks.Corner;
import fr.adrien1106.reframed.util.blocks.WallShape;
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.data.client.BlockStateSupplier;
import net.minecraft.data.server.recipe.RecipeExporter;
import net.minecraft.data.server.recipe.RecipeProvider;
import net.minecraft.data.server.recipe.ShapedRecipeJsonBuilder;
import net.minecraft.item.ItemPlacementContext;
import net.minecraft.recipe.book.RecipeCategory;
import net.minecraft.state.StateManager;
import net.minecraft.util.math.Direction;
import org.jetbrains.annotations.Nullable;
import static fr.adrien1106.reframed.util.blocks.BlockProperties.*;
import static net.minecraft.state.property.Properties.AXIS;
public class ReframedWallBlock extends WaterloggableReFramedBlock implements BlockStateProvider {
private record ModelCacheKey() {}
public ReframedWallBlock(Settings settings) {
super(settings);
}
@Override
public Object getModelCacheKey(BlockState state) {
return new ModelCacheKey();
}
@Override
public int getModelStateCount() {
return 3750;
}
@Override
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
super.appendProperties(builder.add());
}
@Override
public @Nullable BlockState getPlacementState(ItemPlacementContext ctx) {
Direction.Axis axis = ctx.getSide().getAxis();
return super.getPlacementState(ctx);
}
@Override
public BlockStateSupplier getMultipart() {
return null; // TODO unleash hell
}
@Override
public void setRecipe(RecipeExporter exporter) {
RecipeProvider.offerStonecuttingRecipe(exporter, RecipeCategory.BUILDING_BLOCKS, this, ReFramed.CUBE, 2);
ShapedRecipeJsonBuilder
.create(RecipeCategory.BUILDING_BLOCKS, this, 4)
.pattern("III")
.pattern("III")
.input('I', ReFramed.CUBE)
.criterion(FabricRecipeProvider.hasItem(ReFramed.CUBE), FabricRecipeProvider.conditionsFromItem(ReFramed.CUBE))
.criterion(FabricRecipeProvider.hasItem(this), FabricRecipeProvider.conditionsFromItem(this))
.offerTo(exporter);
}
}

View File

@ -27,70 +27,111 @@ public class ReFramedClient implements ClientModInitializer {
BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), ReFramed.BLOCKS.toArray(new Block[0]));
// CUBE
HELPER.addReFramedModel("cube_special" , HELPER.auto(new Identifier("block/cube")));
HELPER.addReFramedModel("cube" , HELPER.auto(new Identifier("block/cube")));
// SMALL_CUBE
HELPER.addReFramedModel("small_cube_special" , HELPER.auto(ReFramed.id("block/small_cube/base")));
HELPER.addReFramedModel("small_cube" , HELPER.auto(ReFramed.id("block/small_cube/base")));
// SMALL_CUBES_STEP
HELPER.addReFramedModel("small_cubes_step_special" , HELPER.autoDouble(ReFramed.id("block/small_cube/base"), ReFramed.id("block/small_cube/step/base")));
HELPER.addReFramedModel("small_cubes_step_reverse_special" , HELPER.autoDouble(ReFramed.id("block/small_cube/step/base"), ReFramed.id("block/small_cube/base")));
HELPER.addReFramedModel("small_cubes_step" , HELPER.autoDouble(ReFramed.id("block/small_cube/base"), ReFramed.id("block/small_cube/step/base")));
HELPER.addReFramedModel("small_cubes_step_reverse" , HELPER.autoDouble(ReFramed.id("block/small_cube/step/base"), ReFramed.id("block/small_cube/base")));
// SLAB
HELPER.addReFramedModel("slab_special" , HELPER.auto(new Identifier("block/slab")));
HELPER.addReFramedModel("slab" , HELPER.auto(new Identifier("block/slab")));
// SLAB_CUBE
HELPER.addReFramedModel("double_slab_special" , HELPER.autoDouble(new Identifier("block/slab"), new Identifier("block/slab_top")));
HELPER.addReFramedModel("double_slab" , HELPER.autoDouble(new Identifier("block/slab"), new Identifier("block/slab_top")));
// STAIR
HELPER.addReFramedModel("stair_special" , HELPER.auto(ReFramed.id("block/stair/straight")));
HELPER.addReFramedModel("outers_stair_special" , HELPER.auto(ReFramed.id("block/stair/double_outer")));
HELPER.addReFramedModel("inner_stair_special" , HELPER.auto(ReFramed.id("block/stair/inner")));
HELPER.addReFramedModel("outer_stair_special" , HELPER.auto(ReFramed.id("block/stair/outer")));
HELPER.addReFramedModel("outer_side_stair_special" , HELPER.auto(ReFramed.id("block/stair/outer_side")));
HELPER.addReFramedModel("stair" , HELPER.auto(ReFramed.id("block/stair/straight")));
HELPER.addReFramedModel("outers_stair" , HELPER.auto(ReFramed.id("block/stair/double_outer")));
HELPER.addReFramedModel("inner_stair" , HELPER.auto(ReFramed.id("block/stair/inner")));
HELPER.addReFramedModel("outer_stair" , HELPER.auto(ReFramed.id("block/stair/outer")));
HELPER.addReFramedModel("outer_side_stair" , HELPER.auto(ReFramed.id("block/stair/outer_side")));
// STAIRS_CUBE
HELPER.addReFramedModel("stairs_cube_special" , HELPER.autoDouble(ReFramed.id("block/stair/straight"), ReFramed.id("block/stair/cube/straight")));
HELPER.addReFramedModel("outers_stairs_cube_special" , HELPER.autoDouble(ReFramed.id("block/stair/double_outer"), ReFramed.id("block/stair/cube/double_outer")));
HELPER.addReFramedModel("inner_stairs_cube_special" , HELPER.autoDouble(ReFramed.id("block/stair/inner"), ReFramed.id("block/stair/cube/inner")));
HELPER.addReFramedModel("outer_stairs_cube_special" , HELPER.autoDouble(ReFramed.id("block/stair/outer"), ReFramed.id("block/stair/cube/outer")));
HELPER.addReFramedModel("outer_side_stairs_cube_special" , HELPER.autoDouble(ReFramed.id("block/stair/outer_side"), ReFramed.id("block/stair/cube/outer_side")));
HELPER.addReFramedModel("stairs_cube" , HELPER.autoDouble(ReFramed.id("block/stair/straight"), ReFramed.id("block/stair/cube/straight")));
HELPER.addReFramedModel("outers_stairs_cube" , HELPER.autoDouble(ReFramed.id("block/stair/double_outer"), ReFramed.id("block/stair/cube/double_outer")));
HELPER.addReFramedModel("inner_stairs_cube" , HELPER.autoDouble(ReFramed.id("block/stair/inner"), ReFramed.id("block/stair/cube/inner")));
HELPER.addReFramedModel("outer_stairs_cube" , HELPER.autoDouble(ReFramed.id("block/stair/outer"), ReFramed.id("block/stair/cube/outer")));
HELPER.addReFramedModel("outer_side_stairs_cube" , HELPER.autoDouble(ReFramed.id("block/stair/outer_side"), ReFramed.id("block/stair/cube/outer_side")));
// HALF_STAIR
HELPER.addReFramedModel("half_stair_down_special" , HELPER.auto(ReFramed.id("block/half_stair/down")));
HELPER.addReFramedModel("half_stair_side_special" , HELPER.auto(ReFramed.id("block/half_stair/side")));
HELPER.addReFramedModel("half_stair_down" , HELPER.auto(ReFramed.id("block/half_stair/down")));
HELPER.addReFramedModel("half_stair_side" , HELPER.auto(ReFramed.id("block/half_stair/side")));
// HALF_STAIRS_SLAB
HELPER.addReFramedModel("half_stairs_slab_down_special" , HELPER.autoDouble(ReFramed.id("block/half_stair/down"), ReFramed.id("block/half_stair/slab/down")));
HELPER.addReFramedModel("half_stairs_slab_side_special" , HELPER.autoDouble(ReFramed.id("block/half_stair/side"), ReFramed.id("block/half_stair/slab/side")));
HELPER.addReFramedModel("half_stairs_slab_down" , HELPER.autoDouble(ReFramed.id("block/half_stair/down"), ReFramed.id("block/half_stair/slab/down")));
HELPER.addReFramedModel("half_stairs_slab_side" , HELPER.autoDouble(ReFramed.id("block/half_stair/side"), ReFramed.id("block/half_stair/slab/side")));
// HALF_STAIRS_STAIR
HELPER.addReFramedModel("half_stairs_stair_down_special" , HELPER.autoDouble(ReFramed.id("block/half_stair/down"), ReFramed.id("block/half_stair/stair/down")));
HELPER.addReFramedModel("half_stairs_stair_side_special" , HELPER.autoDouble(ReFramed.id("block/half_stair/side"), ReFramed.id("block/half_stair/stair/side")));
HELPER.addReFramedModel("half_stairs_stair_reverse_special" , HELPER.autoDouble(ReFramed.id("block/half_stair/stair/side"), ReFramed.id("block/half_stair/side")));
HELPER.addReFramedModel("half_stairs_stair_down" , HELPER.autoDouble(ReFramed.id("block/half_stair/down"), ReFramed.id("block/half_stair/stair/down")));
HELPER.addReFramedModel("half_stairs_stair_side" , HELPER.autoDouble(ReFramed.id("block/half_stair/side"), ReFramed.id("block/half_stair/stair/side")));
HELPER.addReFramedModel("half_stairs_stair_reverse" , HELPER.autoDouble(ReFramed.id("block/half_stair/stair/side"), ReFramed.id("block/half_stair/side")));
// STEP
HELPER.addReFramedModel("step_special" , HELPER.auto(ReFramed.id("block/step/down")));
HELPER.addReFramedModel("step" , HELPER.auto(ReFramed.id("block/step/down")));
// STEPS_SLAB
HELPER.addReFramedModel("steps_slab_special" , HELPER.autoDouble(ReFramed.id("block/step/down"), ReFramed.id("block/step/slab/down")));
HELPER.addReFramedModel("steps_slab_side_special" , HELPER.autoDouble(ReFramed.id("block/step/side"), ReFramed.id("block/step/slab/side")));
HELPER.addReFramedModel("steps_slab" , HELPER.autoDouble(ReFramed.id("block/step/down"), ReFramed.id("block/step/slab/down")));
HELPER.addReFramedModel("steps_slab_side" , HELPER.autoDouble(ReFramed.id("block/step/side"), ReFramed.id("block/step/slab/side")));
// LAYER
HELPER.addReFramedModel("layer_1_special" , HELPER.auto(new Identifier("block/snow_height2")));
HELPER.addReFramedModel("layer_2_special" , HELPER.auto(new Identifier("block/snow_height4")));
HELPER.addReFramedModel("layer_3_special" , HELPER.auto(new Identifier("block/snow_height6")));
HELPER.addReFramedModel("layer_4_special" , HELPER.auto(new Identifier("block/snow_height8")));
HELPER.addReFramedModel("layer_5_special" , HELPER.auto(new Identifier("block/snow_height10")));
HELPER.addReFramedModel("layer_6_special" , HELPER.auto(new Identifier("block/snow_height12")));
HELPER.addReFramedModel("layer_7_special" , HELPER.auto(new Identifier("block/snow_height14")));
HELPER.addReFramedModel("layer_8_special" , HELPER.auto(new Identifier("block/cube")));
HELPER.addReFramedModel("layer_1" , HELPER.auto(new Identifier("block/snow_height2")));
HELPER.addReFramedModel("layer_2" , HELPER.auto(new Identifier("block/snow_height4")));
HELPER.addReFramedModel("layer_3" , HELPER.auto(new Identifier("block/snow_height6")));
HELPER.addReFramedModel("layer_4" , HELPER.auto(new Identifier("block/snow_height8")));
HELPER.addReFramedModel("layer_5" , HELPER.auto(new Identifier("block/snow_height10")));
HELPER.addReFramedModel("layer_6" , HELPER.auto(new Identifier("block/snow_height12")));
HELPER.addReFramedModel("layer_7" , HELPER.auto(new Identifier("block/snow_height14")));
HELPER.addReFramedModel("layer_8" , HELPER.auto(new Identifier("block/cube")));
// PILLAR
HELPER.addReFramedModel("pillar_special" , HELPER.auto(ReFramed.id("block/pillar")));
HELPER.addReFramedModel("pillar" , HELPER.auto(ReFramed.id("block/pillar")));
// WALL
HELPER.addReFramedModel("wall_inventory" , HELPER.auto(ReFramed.id("block/wall/inventory/default")));
// --------------------- pillar
HELPER.addReFramedModel("wall_core" , HELPER.auto(ReFramed.id("block/wall/pillar/core"))); // shares AXIS only
HELPER.addReFramedModel("wall_pillar_none" , HELPER.auto(ReFramed.id("block/wall/pillar/none"))); // only shape_none (4 * 3 axis)
HELPER.addReFramedModel("wall_pillar_negative" , HELPER.auto(ReFramed.id("block/wall/pillar/bottom")));
HELPER.addReFramedModel("wall_pillar_both" , HELPER.auto(ReFramed.id("block/wall/pillar/both")));
HELPER.addReFramedModel("wall_pillar_positive" , HELPER.auto(ReFramed.id("block/wall/pillar/top")));
HELPER.addReFramedModel("wall_pillar_middle" , HELPER.auto(ReFramed.id("block/wall/pillar/middle")));
// --------------------- side
HELPER.addReFramedModel("wall_side_negative" , HELPER.auto(ReFramed.id("block/wall/side/bottom")));
HELPER.addReFramedModel("wall_side_both" , HELPER.auto(ReFramed.id("block/wall/side/both")));
HELPER.addReFramedModel("wall_side_positive" , HELPER.auto(ReFramed.id("block/wall/side/top")));
HELPER.addReFramedModel("wall_side_middle" , HELPER.auto(ReFramed.id("block/wall/side/middle")));
// --------------------- junction
HELPER.addReFramedModel("wall_junction_negative" , HELPER.auto(ReFramed.id("block/wall/junction/bottom"))); // (4 * 3) possible
HELPER.addReFramedModel("wall_junction_both" , HELPER.auto(ReFramed.id("block/wall/junction/both")));
HELPER.addReFramedModel("wall_junction_positive" , HELPER.auto(ReFramed.id("block/wall/junction/top")));
HELPER.addReFramedModel("wall_junction_middle" , HELPER.auto(ReFramed.id("block/wall/junction/middle")));
// --------------------- junction_c
HELPER.addReFramedModel("wall_junction_negative_c" , HELPER.auto(ReFramed.id("block/wall/junction/bottom_c")));
HELPER.addReFramedModel("wall_junction_both_c" , HELPER.auto(ReFramed.id("block/wall/junction/both_c")));
HELPER.addReFramedModel("wall_junction_positive_c" , HELPER.auto(ReFramed.id("block/wall/junction/top_c")));
HELPER.addReFramedModel("wall_junction_middle_c" , HELPER.auto(ReFramed.id("block/wall/junction/middle_c")));
// --------------------- junction_i
HELPER.addReFramedModel("wall_junction_negative_i" , HELPER.auto(ReFramed.id("block/wall/junction/bottom_i")));
HELPER.addReFramedModel("wall_junction_both_i" , HELPER.auto(ReFramed.id("block/wall/junction/both_i")));
HELPER.addReFramedModel("wall_junction_positive_i" , HELPER.auto(ReFramed.id("block/wall/junction/top_i")));
HELPER.addReFramedModel("wall_junction_middle_i" , HELPER.auto(ReFramed.id("block/wall/junction/middle_i")));
// --------------------- junction_t
HELPER.addReFramedModel("wall_junction_negative_t" , HELPER.auto(ReFramed.id("block/wall/junction/bottom_t")));
HELPER.addReFramedModel("wall_junction_both_t" , HELPER.auto(ReFramed.id("block/wall/junction/both_t")));
HELPER.addReFramedModel("wall_junction_positive_t" , HELPER.auto(ReFramed.id("block/wall/junction/top_t")));
HELPER.addReFramedModel("wall_junction_middle_t" , HELPER.auto(ReFramed.id("block/wall/junction/middle_t")));
// --------------------- junction_x
HELPER.addReFramedModel("wall_junction_negative_x" , HELPER.auto(ReFramed.id("block/wall/junction/bottom_x"))); // (Axis only)
HELPER.addReFramedModel("wall_junction_both_x" , HELPER.auto(ReFramed.id("block/wall/junction/both_x")));
HELPER.addReFramedModel("wall_junction_positive_x" , HELPER.auto(ReFramed.id("block/wall/junction/top_x")));
HELPER.addReFramedModel("wall_junction_middle_x" , HELPER.auto(ReFramed.id("block/wall/junction/middle_x")));
//item model assignments (in lieu of models/item/___.json)
HELPER.assignItemModel("cube_special" , ReFramed.CUBE);
HELPER.assignItemModel("small_cube_special" , ReFramed.SMALL_CUBE);
HELPER.assignItemModel("small_cubes_step_special" , ReFramed.SMALL_CUBES_STEP);
HELPER.assignItemModel("slab_special" , ReFramed.SLAB);
HELPER.assignItemModel("double_slab_special" , ReFramed.SLABS_CUBE);
HELPER.assignItemModel("stair_special" , ReFramed.STAIR);
HELPER.assignItemModel("stairs_cube_special" , ReFramed.STAIRS_CUBE);
HELPER.assignItemModel("half_stair_down_special" , ReFramed.HALF_STAIR);
HELPER.assignItemModel("half_stairs_slab_down_special" , ReFramed.HALF_STAIRS_SLAB);
HELPER.assignItemModel("half_stairs_stair_down_special", ReFramed.HALF_STAIRS_STAIR);
HELPER.assignItemModel("step_special" , ReFramed.STEP);
HELPER.assignItemModel("steps_slab_special" , ReFramed.STEPS_SLAB);
HELPER.assignItemModel("layer_1_special" , ReFramed.LAYER);
HELPER.assignItemModel("pillar_special" , ReFramed.PILLAR);
HELPER.assignItemModel("cube" , ReFramed.CUBE);
HELPER.assignItemModel("small_cube" , ReFramed.SMALL_CUBE);
HELPER.assignItemModel("small_cubes_step" , ReFramed.SMALL_CUBES_STEP);
HELPER.assignItemModel("slab" , ReFramed.SLAB);
HELPER.assignItemModel("double_slab" , ReFramed.SLABS_CUBE);
HELPER.assignItemModel("stair" , ReFramed.STAIR);
HELPER.assignItemModel("stairs_cube" , ReFramed.STAIRS_CUBE);
HELPER.assignItemModel("half_stair_down" , ReFramed.HALF_STAIR);
HELPER.assignItemModel("half_stairs_slab_down" , ReFramed.HALF_STAIRS_SLAB);
HELPER.assignItemModel("half_stairs_stair_down", ReFramed.HALF_STAIRS_STAIR);
HELPER.assignItemModel("step" , ReFramed.STEP);
HELPER.assignItemModel("steps_slab" , ReFramed.STEPS_SLAB);
HELPER.assignItemModel("layer_1" , ReFramed.LAYER);
HELPER.assignItemModel("pillar" , ReFramed.PILLAR);
HELPER.assignItemModel("wall_inventory" , ReFramed.WALL);
}
private void privateInit() {

View File

@ -40,15 +40,15 @@ public class ReFramedClientHelper {
}
public void addReFramedModel(String id, UnbakedModel unbaked) {
prov.addReFramedModel(ReFramed.id(id), unbaked);
prov.addReFramedModel(ReFramed.id(id + "_special"), unbaked);
}
public void assignItemModel(String id, ItemConvertible... item_convertibles) {
prov.assignItemModel(ReFramed.id(id), item_convertibles);
prov.assignItemModel(ReFramed.id(id + "_special"), item_convertibles);
}
public CamoAppearanceManager getCamoApperanceManager(Function<SpriteIdentifier, Sprite> spriteLookup) {
return prov.getCamoApperanceManager(spriteLookup);
public CamoAppearanceManager getCamoAppearanceManager(Function<SpriteIdentifier, Sprite> spriteLookup) {
return prov.getCamoAppearanceManager(spriteLookup);
}
public @NotNull Renderer getFabricRenderer() {

View File

@ -44,7 +44,7 @@ public class ReFramedModelProvider implements ModelResourceProvider, ModelVarian
/// camo appearance manager cache
public CamoAppearanceManager getCamoApperanceManager(Function<SpriteIdentifier, Sprite> spriteLookup) {
public CamoAppearanceManager getCamoAppearanceManager(Function<SpriteIdentifier, Sprite> spriteLookup) {
//This is kind of needlessly sketchy using the "volatile double checked locking" pattern.
//I'd like all frame models to use the same CamoApperanceManager, despite the model
//baking process happening concurrently on several threads, but I also don't want to

View File

@ -33,7 +33,7 @@ public class UnbakedAutoRetexturedModel extends UnbakedRetexturedModel {
public BakedModel bake(Baker baker, Function<SpriteIdentifier, Sprite> texture_getter, ModelBakeSettings bake_settings, Identifier identifier) {
return new RetexturingBakedModel(
baker.bake(parent, bake_settings),
ReFramedClient.HELPER.getCamoApperanceManager(texture_getter),
ReFramedClient.HELPER.getCamoAppearanceManager(texture_getter),
theme_index,
bake_settings,
item_state,

View File

@ -41,7 +41,7 @@ public class UnbakedJsonRetexturedModel extends UnbakedRetexturedModel {
return new RetexturingBakedModel(
baker.bake(parent, bake_settings),
ReFramedClient.HELPER.getCamoApperanceManager(spriteLookup),
ReFramedClient.HELPER.getCamoAppearanceManager(spriteLookup),
theme_index,
bake_settings,
item_state,

View File

@ -20,8 +20,9 @@ public abstract class UnbakedRetexturedModel implements UnbakedModel {
this.parent = parent;
}
public void setThemeIndex(int theme_index) {
public UnbakedRetexturedModel setThemeIndex(int theme_index) {
this.theme_index = theme_index;
return this;
}
@Override

View File

@ -0,0 +1,28 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 0, 4],
"to": [5, 16, 5],
"faces": {
"north": {"uv": [11, 0, 12, 16], "texture": "#side"},
"west": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [4, 4, 5, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 11, 5, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 4],
"to": [11, 16, 5],
"faces": {
"north": {"uv": [5, 0, 11, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,35 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 0, 4],
"to": [5, 14, 5],
"faces": {
"north": {"uv": [11, 2, 12, 16], "texture": "#side"},
"west": {"uv": [4, 2, 5, 16], "texture": "#side"},
"down": {"uv": [4, 11, 5, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 4],
"to": [11, 14, 5],
"faces": {
"north": {"uv": [5, 2, 11, 16], "texture": "#side"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 14, 4],
"to": [11, 16, 5],
"faces": {
"north": {"uv": [5, 0, 12, 2], "texture": "#side"},
"west": {"uv": [4, 0, 5, 2], "texture": "#side"},
"up": {"uv": [5, 4, 12, 5], "texture": "#top", "cullface": "up"}
}
}
]
}

View File

@ -0,0 +1,42 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 2, 4],
"to": [5, 14, 5],
"faces": {
"north": {"uv": [11, 2, 12, 14], "texture": "#side"},
"west": {"uv": [4, 2, 5, 14], "texture": "#side"}
}
},
{
"from": [4, 14, 4],
"to": [11, 16, 5],
"faces": {
"north": {"uv": [5, 0, 12, 2], "texture": "#side"},
"west": {"uv": [4, 0, 5, 2], "texture": "#side"},
"up": {"uv": [4, 4, 11, 5], "texture": "#top", "cullface": "up"}
}
},
{
"from": [4, 0, 4],
"to": [11, 2, 5],
"faces": {
"north": {"uv": [5, 14, 12, 16], "texture": "#side"},
"west": {"uv": [4, 14, 5, 16], "texture": "#side"},
"down": {"uv": [4, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 2, 4],
"to": [11, 14, 5],
"faces": {
"north": {"uv": [5, 2, 11, 14], "texture": "#side"}
}
}
]
}

View File

@ -0,0 +1,35 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 2, 4],
"to": [5, 16, 5],
"faces": {
"north": {"uv": [11, 0, 12, 14], "texture": "#side"},
"west": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [4, 4, 5, 5], "texture": "#top", "cullface": "up"}
}
},
{
"from": [5, 2, 4],
"to": [11, 16, 5],
"faces": {
"north": {"uv": [5, 0, 11, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"}
}
},
{
"from": [4, 0, 4],
"to": [11, 2, 5],
"faces": {
"north": {"uv": [5, 14, 12, 16], "texture": "#side"},
"west": {"uv": [4, 14, 5, 16], "texture": "#side"},
"down": {"uv": [4, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,21 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 0],
"to": [11, 16, 4],
"faces": {
"north": {"uv": [5, 0, 11, 16], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 0, 16, 16], "texture": "#side"},
"south": {"uv": [5, 0, 11, 16], "texture": "#side"},
"west": {"uv": [0, 0, 4, 16], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,21 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 0],
"to": [11, 14, 4],
"faces": {
"north": {"uv": [5, 2, 11, 16], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 2, 16, 16], "texture": "#side"},
"south": {"uv": [5, 2, 11, 16], "texture": "#side"},
"west": {"uv": [0, 2, 4, 16], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,21 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 0],
"to": [11, 14, 4],
"faces": {
"north": {"uv": [5, 2, 11, 14], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 2, 16, 14], "texture": "#side"},
"south": {"uv": [5, 2, 11, 14], "texture": "#side"},
"west": {"uv": [0, 2, 4, 14], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,21 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 0],
"to": [11, 16, 4],
"faces": {
"north": {"uv": [5, 0, 11, 14], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 0, 16, 14], "texture": "#side"},
"south": {"uv": [5, 0, 11, 14], "texture": "#side"},
"west": {"uv": [0, 0, 4, 14], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,43 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 0],
"to": [11, 14, 4],
"faces": {
"north": {"uv": [5, 2, 11, 14], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 2, 16, 14], "texture": "#side"},
"west": {"uv": [0, 2, 4, 14], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom"}
}
},
{
"from": [5, 2, 12],
"to": [11, 14, 16],
"faces": {
"east": {"uv": [0, 2, 4, 14], "texture": "#side"},
"south": {"uv": [5, 2, 11, 14], "texture": "#side", "cullface": "south"},
"west": {"uv": [12, 2, 16, 14], "texture": "#side"},
"up": {"uv": [5, 12, 11, 16], "texture": "#top"},
"down": {"uv": [5, 0, 11, 4], "texture": "#bottom"}
}
},
{
"from": [4, 0, 4],
"to": [12, 16, 12],
"faces": {
"north": {"uv": [4, 0, 12, 16], "texture": "#side"},
"east": {"uv": [4, 0, 12, 16], "texture": "#side"},
"south": {"uv": [4, 0, 12, 16], "texture": "#side", "cullface": "south"},
"west": {"uv": [4, 0, 12, 16], "texture": "#side"},
"up": {"uv": [4, 4, 12, 12], "texture": "#top"},
"down": {"uv": [4, 4, 12, 12], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 16, 8],
"faces": {
"east": {"uv": [8, 0, 12, 16], "texture": "#side"},
"south": {"uv": [5, 0, 11, 16], "texture": "#side"},
"west": {"uv": [4, 0, 8, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 8], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 8, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,39 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 16, 5],
"faces": {
"east": {"uv": [11, 0, 12, 16], "texture": "#side"},
"west": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 5],
"to": [11, 16, 11],
"faces": {
"east": {"uv": [5, 0, 11, 16], "texture": "#side"},
"south": {"uv": [5, 0, 11, 16], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 0, 5],
"to": [5, 16, 11],
"faces": {
"north": {"uv": [11, 0, 12, 16], "texture": "#side"},
"south": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 16, 12],
"faces": {
"east": {"uv": [4, 0, 12, 16], "texture": "#side"},
"west": {"uv": [4, 0, 12, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 12], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 4, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,48 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 16, 5],
"faces": {
"east": {"uv": [11, 0, 12, 16], "texture": "#side"},
"west": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 11],
"to": [11, 16, 12],
"faces": {
"east": {"uv": [4, 0, 5, 16], "texture": "#side"},
"west": {"uv": [11, 0, 12, 16], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 5],
"to": [11, 16, 11],
"faces": {
"east": {"uv": [5, 0, 11, 16], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 0, 5],
"to": [5, 16, 11],
"faces": {
"north": {"uv": [11, 0, 12, 16], "texture": "#side"},
"south": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,57 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 16, 5],
"faces": {
"east": {"uv": [11, 0, 12, 16], "texture": "#side"},
"west": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 11],
"to": [11, 16, 12],
"faces": {
"east": {"uv": [4, 0, 5, 16], "texture": "#side"},
"west": {"uv": [11, 0, 12, 16], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 5],
"to": [11, 16, 11],
"faces": {
"up": {"uv": [5, 5, 11, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 0, 5],
"to": [5, 16, 11],
"faces": {
"north": {"uv": [11, 0, 12, 16], "texture": "#side"},
"south": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [11, 0, 5],
"to": [12, 16, 11],
"faces": {
"north": {"uv": [4, 0, 5, 16], "texture": "#side"},
"south": {"uv": [11, 0, 12, 16], "texture": "#side"},
"up": {"uv": [11, 5, 12, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [11, 5, 12, 11], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 14, 8],
"faces": {
"east": {"uv": [8, 2, 12, 16], "texture": "#side"},
"south": {"uv": [5, 2, 11, 16], "texture": "#side"},
"west": {"uv": [4, 2, 8, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 8], "texture": "#top"},
"down": {"uv": [5, 8, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,39 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 14, 5],
"faces": {
"east": {"uv": [11, 2, 12, 16], "texture": "#side"},
"west": {"uv": [4, 2, 5, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 5],
"to": [11, 14, 11],
"faces": {
"east": {"uv": [5, 2, 11, 16], "texture": "#side"},
"south": {"uv": [5, 2, 11, 16], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 0, 5],
"to": [5, 14, 11],
"faces": {
"north": {"uv": [11, 2, 12, 16], "texture": "#side"},
"south": {"uv": [4, 2, 5, 16], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 14, 12],
"faces": {
"east": {"uv": [4, 2, 12, 16], "texture": "#side"},
"west": {"uv": [4, 2, 12, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 12], "texture": "#top"},
"down": {"uv": [5, 4, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,48 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 14, 5],
"faces": {
"east": {"uv": [11, 2, 12, 16], "texture": "#side"},
"west": {"uv": [4, 2, 5, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 11],
"to": [11, 14, 12],
"faces": {
"east": {"uv": [4, 2, 5, 16], "texture": "#side"},
"west": {"uv": [11, 2, 12, 16], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 5],
"to": [11, 14, 11],
"faces": {
"east": {"uv": [5, 2, 11, 16], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 0, 5],
"to": [5, 14, 11],
"faces": {
"north": {"uv": [11, 2, 12, 16], "texture": "#side"},
"south": {"uv": [4, 2, 5, 16], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,57 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 4],
"to": [11, 14, 5],
"faces": {
"east": {"uv": [11, 2, 12, 16], "texture": "#side"},
"west": {"uv": [4, 2, 5, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 11],
"to": [11, 14, 12],
"faces": {
"east": {"uv": [4, 2, 5, 16], "texture": "#side"},
"west": {"uv": [11, 2, 12, 16], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 5],
"to": [11, 14, 11],
"faces": {
"up": {"uv": [5, 5, 11, 11], "texture": "#top"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 0, 5],
"to": [5, 14, 11],
"faces": {
"north": {"uv": [11, 2, 12, 16], "texture": "#side"},
"south": {"uv": [4, 2, 5, 16], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [11, 0, 5],
"to": [12, 14, 11],
"faces": {
"north": {"uv": [4, 2, 5, 16], "texture": "#side"},
"south": {"uv": [11, 2, 12, 16], "texture": "#side"},
"up": {"uv": [11, 5, 12, 11], "texture": "#top"},
"down": {"uv": [11, 5, 12, 11], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 14, 8],
"faces": {
"east": {"uv": [8, 2, 12, 14], "texture": "#side"},
"south": {"uv": [5, 2, 11, 14], "texture": "#side"},
"west": {"uv": [4, 2, 8, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 8], "texture": "#top"},
"down": {"uv": [5, 8, 11, 12], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,39 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 14, 5],
"faces": {
"east": {"uv": [11, 2, 12, 14], "texture": "#side"},
"west": {"uv": [4, 2, 5, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom"}
}
},
{
"from": [5, 2, 5],
"to": [11, 14, 11],
"faces": {
"east": {"uv": [5, 2, 11, 14], "texture": "#side"},
"south": {"uv": [5, 2, 11, 14], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom"}
}
},
{
"from": [4, 2, 5],
"to": [5, 14, 11],
"faces": {
"north": {"uv": [11, 2, 12, 14], "texture": "#side"},
"south": {"uv": [4, 2, 5, 14], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 14, 12],
"faces": {
"east": {"uv": [4, 2, 12, 14], "texture": "#side"},
"west": {"uv": [4, 2, 12, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 12], "texture": "#top"},
"down": {"uv": [5, 4, 11, 12], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,48 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 14, 5],
"faces": {
"east": {"uv": [11, 2, 12, 14], "texture": "#side"},
"west": {"uv": [4, 2, 5, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom"}
}
},
{
"from": [5, 2, 11],
"to": [11, 14, 12],
"faces": {
"east": {"uv": [4, 2, 5, 14], "texture": "#side"},
"west": {"uv": [11, 2, 12, 14], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom"}
}
},
{
"from": [5, 2, 5],
"to": [11, 14, 11],
"faces": {
"east": {"uv": [5, 2, 11, 14], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom"}
}
},
{
"from": [4, 2, 5],
"to": [5, 14, 11],
"faces": {
"north": {"uv": [11, 2, 12, 14], "texture": "#side"},
"south": {"uv": [4, 2, 5, 14], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,57 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 14, 5],
"faces": {
"east": {"uv": [11, 2, 12, 14], "texture": "#side"},
"west": {"uv": [4, 2, 5, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom"}
}
},
{
"from": [5, 2, 11],
"to": [11, 14, 12],
"faces": {
"east": {"uv": [4, 2, 5, 14], "texture": "#side"},
"west": {"uv": [11, 2, 12, 14], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom"}
}
},
{
"from": [5, 2, 5],
"to": [11, 14, 11],
"faces": {
"up": {"uv": [5, 5, 11, 11], "texture": "#top"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom"}
}
},
{
"from": [4, 2, 5],
"to": [5, 14, 11],
"faces": {
"north": {"uv": [11, 2, 12, 14], "texture": "#side"},
"south": {"uv": [4, 2, 5, 14], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom"}
}
},
{
"from": [11, 2, 5],
"to": [12, 14, 11],
"faces": {
"north": {"uv": [4, 2, 5, 14], "texture": "#side"},
"south": {"uv": [11, 2, 12, 14], "texture": "#side"},
"up": {"uv": [11, 5, 12, 11], "texture": "#top"},
"down": {"uv": [11, 5, 12, 11], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 16, 8],
"faces": {
"east": {"uv": [8, 0, 12, 14], "texture": "#side"},
"south": {"uv": [5, 0, 11, 14], "texture": "#side"},
"west": {"uv": [4, 0, 8, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 8], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 8, 11, 12], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,39 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 16, 5],
"faces": {
"east": {"uv": [11, 0, 12, 14], "texture": "#side"},
"west": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom"}
}
},
{
"from": [5, 2, 5],
"to": [11, 16, 11],
"faces": {
"east": {"uv": [5, 0, 11, 14], "texture": "#side"},
"south": {"uv": [5, 0, 11, 14], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom"}
}
},
{
"from": [4, 2, 5],
"to": [5, 16, 11],
"faces": {
"north": {"uv": [11, 0, 12, 14], "texture": "#side"},
"south": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,19 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 16, 12],
"faces": {
"east": {"uv": [4, 0, 12, 14], "texture": "#side"},
"west": {"uv": [4, 0, 12, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 12], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 4, 11, 12], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,48 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 16, 5],
"faces": {
"east": {"uv": [11, 0, 12, 14], "texture": "#side"},
"west": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom"}
}
},
{
"from": [5, 2, 11],
"to": [11, 16, 12],
"faces": {
"east": {"uv": [4, 0, 5, 14], "texture": "#side"},
"west": {"uv": [11, 0, 12, 14], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom"}
}
},
{
"from": [5, 2, 5],
"to": [11, 16, 11],
"faces": {
"east": {"uv": [5, 0, 11, 14], "texture": "#side"},
"up": {"uv": [5, 5, 11, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom"}
}
},
{
"from": [4, 2, 5],
"to": [5, 16, 11],
"faces": {
"north": {"uv": [11, 0, 12, 14], "texture": "#side"},
"south": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,57 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 4],
"to": [11, 16, 5],
"faces": {
"east": {"uv": [11, 0, 12, 14], "texture": "#side"},
"west": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom"}
}
},
{
"from": [5, 2, 11],
"to": [11, 16, 12],
"faces": {
"east": {"uv": [4, 0, 5, 14], "texture": "#side"},
"west": {"uv": [11, 0, 12, 14], "texture": "#side"},
"up": {"uv": [5, 11, 11, 12], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 4, 11, 5], "texture": "#bottom"}
}
},
{
"from": [5, 2, 5],
"to": [11, 16, 11],
"faces": {
"up": {"uv": [5, 5, 11, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom"}
}
},
{
"from": [4, 2, 5],
"to": [5, 16, 11],
"faces": {
"north": {"uv": [11, 0, 12, 14], "texture": "#side"},
"south": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [4, 5, 5, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 5, 5, 11], "texture": "#bottom"}
}
},
{
"from": [11, 2, 5],
"to": [12, 16, 11],
"faces": {
"north": {"uv": [4, 0, 5, 14], "texture": "#side"},
"south": {"uv": [11, 0, 12, 14], "texture": "#side"},
"up": {"uv": [11, 5, 12, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [11, 5, 12, 11], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,27 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 0, 4],
"to": [5, 16, 5],
"faces": {
"north": {"uv": [11, 0, 12, 16], "texture": "#side"},
"west": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [4, 4, 5, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 11, 5, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 4],
"to": [11, 16, 5],
"faces": {
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,34 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 0, 4],
"to": [5, 14, 5],
"faces": {
"north": {"uv": [11, 2, 12, 16], "texture": "#side"},
"west": {"uv": [4, 2, 5, 16], "texture": "#side"},
"down": {"uv": [4, 11, 5, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 4],
"to": [11, 14, 5],
"faces": {
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [4, 14, 4],
"to": [11, 16, 5],
"faces": {
"north": {"uv": [5, 0, 12, 2], "texture": "#side"},
"west": {"uv": [4, 0, 5, 2], "texture": "#side"},
"up": {"uv": [5, 4, 12, 5], "texture": "#top", "cullface": "up"}
}
}
]
}

View File

@ -0,0 +1,17 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 5],
"to": [11, 16, 11],
"faces": {
"up": {"uv": [5, 5, 11, 11], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 5, 11, 11], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,35 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 2, 4],
"to": [5, 14, 5],
"faces": {
"north": {"uv": [11, 2, 12, 14], "texture": "#side"},
"west": {"uv": [4, 2, 5, 14], "texture": "#side"}
}
},
{
"from": [4, 14, 4],
"to": [11, 16, 5],
"faces": {
"north": {"uv": [5, 0, 12, 2], "texture": "#side"},
"west": {"uv": [4, 0, 5, 2], "texture": "#side"},
"up": {"uv": [4, 4, 11, 5], "texture": "#top", "cullface": "up"}
}
},
{
"from": [4, 0, 4],
"to": [11, 2, 5],
"faces": {
"north": {"uv": [5, 14, 12, 16], "texture": "#side"},
"west": {"uv": [4, 14, 5, 16], "texture": "#side"},
"down": {"uv": [4, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,28 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 0, 4],
"to": [5, 16, 5],
"faces": {
"north": {"uv": [11, 0, 12, 16], "texture": "#side"},
"west": {"uv": [4, 0, 5, 16], "texture": "#side"},
"up": {"uv": [4, 4, 5, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [4, 11, 5, 12], "texture": "#bottom", "cullface": "down"}
}
},
{
"from": [5, 0, 4],
"to": [11, 16, 5],
"faces": {
"north": {"uv": [5, 0, 11, 16], "texture": "#side"},
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,34 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [4, 2, 4],
"to": [5, 16, 5],
"faces": {
"north": {"uv": [11, 0, 12, 14], "texture": "#side"},
"west": {"uv": [4, 0, 5, 14], "texture": "#side"},
"up": {"uv": [4, 4, 5, 5], "texture": "#top", "cullface": "up"}
}
},
{
"from": [5, 2, 4],
"to": [11, 16, 5],
"faces": {
"up": {"uv": [5, 4, 11, 5], "texture": "#top", "cullface": "up"}
}
},
{
"from": [4, 0, 4],
"to": [11, 2, 5],
"faces": {
"north": {"uv": [5, 14, 12, 16], "texture": "#side"},
"west": {"uv": [4, 14, 5, 16], "texture": "#side"},
"down": {"uv": [4, 11, 11, 12], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 0],
"to": [11, 16, 4],
"faces": {
"north": {"uv": [5, 0, 11, 16], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 0, 16, 16], "texture": "#side"},
"west": {"uv": [0, 0, 4, 16], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 0, 0],
"to": [11, 14, 4],
"faces": {
"north": {"uv": [5, 2, 11, 16], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 2, 16, 16], "texture": "#side"},
"west": {"uv": [0, 2, 4, 16], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom", "cullface": "down"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 0],
"to": [11, 14, 4],
"faces": {
"north": {"uv": [5, 2, 11, 14], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 2, 16, 14], "texture": "#side"},
"west": {"uv": [0, 2, 4, 14], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom"}
}
}
]
}

View File

@ -0,0 +1,20 @@
{
"credit": "Made with Blockbench",
"parent": "block/block",
"textures": {
"particle": "#side"
},
"elements": [
{
"from": [5, 2, 0],
"to": [11, 16, 4],
"faces": {
"north": {"uv": [5, 0, 11, 14], "texture": "#side", "cullface": "north"},
"east": {"uv": [12, 0, 16, 14], "texture": "#side"},
"west": {"uv": [0, 0, 4, 14], "texture": "#side"},
"up": {"uv": [5, 0, 11, 4], "texture": "#top", "cullface": "up"},
"down": {"uv": [5, 12, 11, 16], "texture": "#bottom"}
}
}
]
}