Compare commits

..

31 Commits

Author SHA1 Message Date
Justi 575ea6ed40 Modified some debug data 2021-03-29 23:53:46 -04:00
Justi 3a1a707eff introduction of new registry handler 2021-03-29 22:02:24 -04:00
Justi 2ce52a4861 Attempt at making the signblockentity render 2021-03-25 19:40:49 -04:00
Justi 16b59becf5 more cleanup of unused features 2021-03-21 01:04:46 -04:00
Justi 88cfeaf807 introduction of signs (does not work) 2021-03-21 00:56:02 -04:00
Justi 50bf478a46 cleanup 2021-03-21 00:55:42 -04:00
Justi 392a5e588d added missing blockitems 2021-03-20 22:07:32 -04:00
Justi 75ffe5fad7 introduction of pressure plate 2021-03-20 22:06:03 -04:00
Justi 4bf3a96749 introduced cherry button 2021-03-20 21:55:52 -04:00
Justi 83fa41f982 added missing textures for fence and fence gate 2021-03-20 00:29:51 -04:00
Justi c5ffcaeeda reintroduce flamability to stairs 2021-03-20 00:29:38 -04:00
Justi 55cde42e32 register item lol 2021-03-20 00:22:32 -04:00
Justi 490ca48c80 Introduction of stairs 2021-03-20 00:22:21 -04:00
Justi daf7b7c836 added item textures 2021-03-18 21:39:34 -04:00
Justi 9feddf72c2 introduction of slab 2021-03-18 21:39:26 -04:00
Justi 832b9cb1aa previous commit 2021-03-18 21:39:09 -04:00
Justi aa0b3f0f02 door texture fix for inventory and door itself 2021-03-18 21:38:56 -04:00
Justi 5d5a65ff01 introduced textures and applied them to blocks 2021-03-18 16:00:00 -04:00
Justi b154b5b9b6 updated name scheme 2021-03-18 15:59:46 -04:00
Justi 4b19f64b65 Introduction of trapdoor 2021-03-18 15:59:24 -04:00
Justi 33ffbd765f added missing translations 2021-03-18 00:11:24 -04:00
Justi 138c8abb6f added cherry fence missing models 2021-03-18 00:09:02 -04:00
Justi 4d37a62a34 introduction of cherry fence gates 2021-03-18 00:08:48 -04:00
Justi 754e9020c2 Modified how stripped blocks are registered 2021-03-17 20:11:20 -04:00
Justi 03b856afef introduction of cherry door 2021-03-17 19:56:23 -04:00
Justi 78eaec1b10 introduction of cherry fence 2021-03-17 19:15:18 -04:00
Justi 44800b5ff3 organized imports 2021-02-27 17:43:38 -05:00
Justi a71f94a4db Added mixin for log -> stripped variants 2021-02-27 17:41:59 -05:00
Justi 217b0b2c3e introduction of log variants 2021-02-26 23:08:08 -05:00
Justi e19141804c Added plank recipe and cast plank to tag 2021-02-26 22:12:43 -05:00
Justi 4169f908fc introduction of cherry planks & register update 2021-02-26 20:01:20 -05:00
104 changed files with 1526 additions and 108 deletions
+11 -4
View File
@@ -1,11 +1,13 @@
package net.parsell.cherry; package net.parsell.cherry;
import net.fabricmc.api.ModInitializer; import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.parsell.cherry.core.CherryBlocks;
import net.minecraft.block.Block; import net.parsell.cherry.core.CherryFeatures;
import net.minecraft.block.Blocks; import net.parsell.cherry.core.CherryItems;
import net.parsell.cherry.core.*; import net.parsell.cherry.core.CherryRegistry;
public class Cherry implements ModInitializer { public class Cherry implements ModInitializer {
public static final String MODID = "cherry";
@Override @Override
public void onInitialize() { public void onInitialize() {
@@ -14,8 +16,13 @@ public class Cherry implements ModInitializer {
// Proceed with mild caution. // Proceed with mild caution.
System.out.println("Cherry Initilizating..."); System.out.println("Cherry Initilizating...");
CherryRegistry.init();
CherryBlocks.init(); CherryBlocks.init();
CherryItems.init(); CherryItems.init();
CherryFeatures.init(); CherryFeatures.init();
CherryRegistry.finish();
System.out.println("Cherry setup successfully!");
} }
} }
@@ -0,0 +1,15 @@
package net.parsell.cherry;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry;
import net.minecraft.client.render.block.entity.SignBlockEntityRenderer;
import net.parsell.cherry.core.CherryBlocks;
public class CherryClient implements ClientModInitializer {
@Override
public void onInitializeClient(){
System.out.println("Cherry Client Initilizating...");
BlockEntityRendererRegistry.INSTANCE.register(CherryBlocks.CHERRYSIGN_ENTITY, SignBlockEntityRenderer::new);
System.out.println("Sign entity registered without error");
}
}
@@ -0,0 +1,10 @@
package net.parsell.cherry.common.blocks;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.WoodenButtonBlock;
public class CherryButtonBlock extends WoodenButtonBlock {
public CherryButtonBlock(AbstractBlock.Settings settings) {
super(settings);
}
}
@@ -0,0 +1,15 @@
package net.parsell.cherry.common.blocks;
import net.minecraft.block.BlockState;
import net.minecraft.block.DoorBlock;
import net.minecraft.block.enums.DoorHinge;
import net.minecraft.block.enums.DoubleBlockHalf;
import net.minecraft.util.math.Direction;
public class CherryDoorBlock extends DoorBlock{
public CherryDoorBlock(Settings settings) {
super(settings);
this.setDefaultState((BlockState)((BlockState)((BlockState)((BlockState)((BlockState)((BlockState)this.stateManager.getDefaultState()).with(FACING, Direction.NORTH)).with(OPEN, false)).with(HINGE, DoorHinge.LEFT)).with(POWERED, false)).with(HALF, DoubleBlockHalf.LOWER));
}
}
@@ -0,0 +1,12 @@
package net.parsell.cherry.common.blocks;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.BlockState;
import net.minecraft.block.PressurePlateBlock;
public class CherryPressurePlate extends PressurePlateBlock{
public CherryPressurePlate(PressurePlateBlock.ActivationRule type, AbstractBlock.Settings settings){
super (type, settings);
this.setDefaultState((BlockState)((BlockState)this.stateManager.getDefaultState()).with(POWERED, false));
}
}
@@ -0,0 +1,15 @@
package net.parsell.cherry.common.blocks;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.StairsBlock;
public class CherryStairsBlock extends StairsBlock{
private Block baseBlock;
public CherryStairsBlock(BlockState baseBlockState, AbstractBlock.Settings settings) {
super(baseBlockState, settings);
this.baseBlock = baseBlockState.getBlock();
}
}
@@ -0,0 +1,15 @@
package net.parsell.cherry.common.blocks;
import net.minecraft.block.BlockState;
import net.minecraft.block.TrapdoorBlock;
import net.minecraft.block.enums.BlockHalf;
import net.minecraft.util.math.Direction;
public class CherryTrapdoorBlock extends TrapdoorBlock{
public CherryTrapdoorBlock(Settings settings) {
super(settings);
this.setDefaultState((BlockState)((BlockState)((BlockState)((BlockState)((BlockState)((BlockState)this.stateManager.getDefaultState()).with(FACING, Direction.NORTH)).with(OPEN, false)).with(HALF, BlockHalf.BOTTOM)).with(POWERED, false)).with(WATERLOGGED, false));
}
}
@@ -1,41 +0,0 @@
package net.parsell.cherry.common.features;
import java.util.Random;
import com.mojang.serialization.Codec;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.Heightmap;
import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.gen.chunk.ChunkGenerator;
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
import net.minecraft.world.gen.feature.Feature;
import net.parsell.cherry.core.CherryBlocks;
public class CherryTree extends Feature<DefaultFeatureConfig> {
public CherryTree(Codec<DefaultFeatureConfig> config) {
super(config);
}
@Override
public boolean generate(StructureWorldAccess world, ChunkGenerator generator, Random random, BlockPos pos, DefaultFeatureConfig config) {
BlockPos topPos = world.getTopPosition(Heightmap.Type.WORLD_SURFACE, pos);
Direction offset = Direction.NORTH;
/*
for (int y = 1; y <= 15; y++) {
offset = offset.rotateYClockwise();
world.setBlockState(topPos.up(y).offset(offset), CherryBlocks.CHERRYLOG.getDefaultState(), 3);
}
*/
if (isSoil(world, topPos.down())){
System.out.println(pos.toString() + " is soil! (TOP)");
for (int y = 0; y <=7; y++)
world.setBlockState(topPos.up(y), CherryBlocks.CHERRYLOG.getDefaultState(), 3);
} else {
System.out.println(pos.toString() + " is not soil! (TOP)");
}
return true;
}
}
@@ -1,33 +1,140 @@
package net.parsell.cherry.core; package net.parsell.cherry.core;
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry;
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.block.FenceBlock;
import net.minecraft.block.FenceGateBlock;
import net.minecraft.block.LeavesBlock; import net.minecraft.block.LeavesBlock;
import net.minecraft.block.PillarBlock; import net.minecraft.block.PillarBlock;
import net.minecraft.util.Identifier; import net.minecraft.block.PressurePlateBlock;
import net.minecraft.util.registry.Registry; import net.minecraft.block.SignBlock;
import net.minecraft.block.SlabBlock;
import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.block.entity.SignBlockEntity;
import net.minecraft.util.SignType;
import net.parsell.cherry.common.blocks.CherryButtonBlock;
import net.parsell.cherry.common.blocks.CherryDoorBlock;
import net.parsell.cherry.common.blocks.CherryPressurePlate;
import net.parsell.cherry.common.blocks.CherryStairsBlock;
import net.parsell.cherry.common.blocks.CherryTrapdoorBlock;
public class CherryBlocks { public class CherryBlocks {
public static final Block CHERRYLOG = new PillarBlock(FabricBlockSettings.copyOf(Blocks.OAK_LOG)); public static final Block CHERRYLOGSTRIPPED = createPillar("stripped_cherry_log", FabricBlockSettings.copyOf(Blocks.STRIPPED_OAK_LOG), 5, 5);
public static final Block CHERRYLEAVES = new LeavesBlock(FabricBlockSettings.copyOf(Blocks.OAK_LEAVES)); public static final Block CHERRYLOG = createPillar("cherry_log", FabricBlockSettings.copyOf(Blocks.OAK_LOG), 5, 5, CHERRYLOGSTRIPPED);
public static final Block CHERRYWOOD = createPillar("cherry_wood", FabricBlockSettings.copyOf(Blocks.OAK_WOOD), 5, 5);
public static final Block CHERRYWOODSTRIPPED = createPillar("stripped_cherry_wood", FabricBlockSettings.copyOf(Blocks.STRIPPED_OAK_WOOD), 5, 5);
public static final Block CHERRYLEAVES = createLeaves("cherry_leaves", FabricBlockSettings.copyOf(Blocks.OAK_LEAVES), 30, 60, 6649929);
public static final Block CHERRYPLANKS = createBlock("cherry_planks", FabricBlockSettings.copyOf(Blocks.OAK_PLANKS), 5, 20);
public static final Block CHERRYFENCE = createFence("cherry_fence", FabricBlockSettings.copyOf(Blocks.OAK_FENCE), 5, 20); // TODO: tags (as required)
public static final Block CHERRYFENCEGATE = createFenceGate("cherry_fence_gate", FabricBlockSettings.copyOf(Blocks.OAK_FENCE_GATE), 5, 20); // TODO: recipe, loot_tables, tags (as required)
public static final Block CHERRYDOOR = createDoor("cherry_door", FabricBlockSettings.copyOf(Blocks.OAK_DOOR), 5, 20); // TODO: recipe, loot_tables, tags (as required)
public static final Block CHERRYTRAPDOOR = createTrapDoor("cherry_trapdoor", FabricBlockSettings.copyOf(Blocks.OAK_TRAPDOOR), 5, 20); //TODO: recipe, loot_tables, tags (as required)
public static final Block CHERRYSLAB = createSlab("cherry_slab", FabricBlockSettings.copyOf(Blocks.OAK_SLAB), 5, 20); // TODO: recipe, loot tables, tags (as required)
public static final Block CHERRYSTAIRS = createStair("cherry_stairs", CHERRYPLANKS.getDefaultState(), FabricBlockSettings.copyOf(Blocks.OAK_STAIRS), 5, 20); //TODO: recipe, loot tables, tags (as required)
public static final Block CHERRYBUTTON = createButton("cherry_button", FabricBlockSettings.copyOf(Blocks.OAK_BUTTON), 5, 20); //TODO: recipe, loot tables, tags (as required)
public static final Block CHERRYPRESSUREPLATE = createPressurePlate("cherry_pressure_plate", PressurePlateBlock.ActivationRule.EVERYTHING, FabricBlockSettings.copyOf(Blocks.OAK_PRESSURE_PLATE), 5, 20); //TODO: recipe, loot tables, tags (as required)
public static final SignType CHERRYSIGN_TYPE = CherryRegistry.register("cherry");
public static final Block CHERRYSIGN = createSign("cherry_sign", CHERRYSIGN_TYPE, FabricBlockSettings.copyOf(Blocks.OAK_SIGN), 5, 20); // TODO: recipe, loot tables
public static final BlockEntityType<SignBlockEntity> CHERRYSIGN_ENTITY = BlockEntityType.Builder.create(SignBlockEntity::new, CHERRYSIGN).build(null);
private static void registerBlocks() { private static Block createBlock(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) {
System.out.println("Adding blocks..."); Block block = new Block(settings);
Registry.register(Registry.BLOCK, new Identifier("cherry", "cherry_log"), CHERRYLOG); CherryRegistry.register(block, blockID);
Registry.register(Registry.BLOCK, new Identifier("cherry", "cherry_leaves"), CHERRYLEAVES); CherryRegistry.registerBurnable(block, burnChance, burnSpread);
System.out.println("Successfully added blocks!"); return block;
System.out.println("Setting flammability..."); }
FlammableBlockRegistry.getDefaultInstance().add(CHERRYLOG, 5, 5);
FlammableBlockRegistry.getDefaultInstance().add(CHERRYLEAVES, 30, 60); private static Block createSlab(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) {
ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> { Block block = new SlabBlock(settings);
return 6649929; CherryRegistry.register(block, blockID);
}, CHERRYLEAVES); CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createStair(String blockID, BlockState baseBlockState, FabricBlockSettings settings, int burnChance, int burnSpread) {
Block block = new CherryStairsBlock(baseBlockState, settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createButton(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) {
Block block = new CherryButtonBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createPressurePlate(String blockID, PressurePlateBlock.ActivationRule rule, FabricBlockSettings settings, int burnChance, int burnSpread) {
Block block = new CherryPressurePlate(rule, settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createSign(String blockID, SignType type, FabricBlockSettings settings, int burnChance, int burnSpread) {
Block block = new SignBlock(settings, type);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createFence(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) {
Block block = new FenceBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createFenceGate(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread) {
Block block = new FenceGateBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createPillar(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread){
Block block = new PillarBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
return block;
}
private static Block createPillar(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread, Block strippedVariant){
Block block = new PillarBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
CherryRegistry.addStrippable(block, strippedVariant);
return block;
}
private static Block createLeaves(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread, int color){
Block block = new LeavesBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
CherryRegistry.registerColor(block, color);
return block;
}
private static Block createDoor(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread){
Block block = new CherryDoorBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
CherryRegistry.registerTransparentLayer(block);
return block;
}
private static Block createTrapDoor(String blockID, FabricBlockSettings settings, int burnChance, int burnSpread){
Block block = new CherryTrapdoorBlock(settings);
CherryRegistry.register(block, blockID);
CherryRegistry.registerBurnable(block, burnChance, burnSpread);
CherryRegistry.registerTransparentLayer(block);
return block;
} }
public static void init(){ public static void init(){
registerBlocks(); CherryRegistry.register(CHERRYSIGN_ENTITY, "cherry_sign");
} }
} }
@@ -16,7 +16,6 @@ import net.minecraft.world.gen.decorator.CountExtraDecoratorConfig;
import net.minecraft.world.gen.decorator.Decorator; import net.minecraft.world.gen.decorator.Decorator;
import net.minecraft.world.gen.feature.ConfiguredFeature; import net.minecraft.world.gen.feature.ConfiguredFeature;
import net.minecraft.world.gen.feature.ConfiguredFeatures; import net.minecraft.world.gen.feature.ConfiguredFeatures;
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.RandomFeatureConfig; import net.minecraft.world.gen.feature.RandomFeatureConfig;
import net.minecraft.world.gen.feature.TreeFeatureConfig; import net.minecraft.world.gen.feature.TreeFeatureConfig;
@@ -24,24 +23,17 @@ import net.minecraft.world.gen.feature.size.TwoLayersFeatureSize;
import net.minecraft.world.gen.foliage.BlobFoliagePlacer; import net.minecraft.world.gen.foliage.BlobFoliagePlacer;
import net.minecraft.world.gen.stateprovider.SimpleBlockStateProvider; import net.minecraft.world.gen.stateprovider.SimpleBlockStateProvider;
import net.minecraft.world.gen.trunk.StraightTrunkPlacer; import net.minecraft.world.gen.trunk.StraightTrunkPlacer;
import net.parsell.cherry.common.features.CherryTree;
public class CherryFeatures { public class CherryFeatures {
private static final BlockState CHERRYLOG_STATE = CherryBlocks.CHERRYLOG.getDefaultState(); private static final BlockState CHERRYLOG_STATE = CherryBlocks.CHERRYLOG.getDefaultState();
private static final BlockState CHERRYLEAVES_STATE = CherryBlocks.CHERRYLEAVES.getDefaultState(); private static final BlockState CHERRYLEAVES_STATE = CherryBlocks.CHERRYLEAVES.getDefaultState();
// Create the features
private static final Feature<DefaultFeatureConfig> CHERRY_TREE_1 = new CherryTree(DefaultFeatureConfig.CODEC);
// Configure the features // Configure the features
static TreeFeatureConfig CHERRY_TREE_1_CONFIG = new TreeFeatureConfig.Builder(new SimpleBlockStateProvider(CHERRYLOG_STATE), new SimpleBlockStateProvider(CHERRYLEAVES_STATE), new BlobFoliagePlacer(UniformIntDistribution.of(2), UniformIntDistribution.of(0), 3), new StraightTrunkPlacer(4, 2, 0), new TwoLayersFeatureSize(1, 0, 1)).ignoreVines().build(); static TreeFeatureConfig CHERRY_TREE_1_CONFIG = new TreeFeatureConfig.Builder(new SimpleBlockStateProvider(CHERRYLOG_STATE), new SimpleBlockStateProvider(CHERRYLEAVES_STATE), new BlobFoliagePlacer(UniformIntDistribution.of(2), UniformIntDistribution.of(0), 3), new StraightTrunkPlacer(4, 2, 0), new TwoLayersFeatureSize(1, 0, 1)).ignoreVines().build();
public static final ConfiguredFeature<?, ?> CHERRY_TREE_1_C = Feature.TREE.configure(CHERRY_TREE_1_CONFIG); public static final ConfiguredFeature<?, ?> CHERRY_TREE_1_C = Feature.TREE.configure(CHERRY_TREE_1_CONFIG);
public static final ConfiguredFeature<?, ?> CHERRY_TREE_1_C_R = Feature.RANDOM_SELECTOR.configure(new RandomFeatureConfig(ImmutableList.of(CHERRY_TREE_1_C.withChance(0.8F)), CHERRY_TREE_1_C)).decorate(ConfiguredFeatures.Decorators.SQUARE_HEIGHTMAP).decorate(Decorator.COUNT_EXTRA.configure(new CountExtraDecoratorConfig(1, 0.1F, 1))); public static final ConfiguredFeature<?, ?> CHERRY_TREE_1_C_R = Feature.RANDOM_SELECTOR.configure(new RandomFeatureConfig(ImmutableList.of(CHERRY_TREE_1_C.withChance(0.8F)), CHERRY_TREE_1_C)).decorate(ConfiguredFeatures.Decorators.SQUARE_HEIGHTMAP).decorate(Decorator.COUNT_EXTRA.configure(new CountExtraDecoratorConfig(1, 0.1F, 1)));
private static void addFeatures(){ private static void addFeatures(){
// Register the features
Registry.register(Registry.FEATURE, new Identifier("cherry", "cherry_tree"), CHERRY_TREE_1);
// Register the configured features // Register the configured features
RegistryKey<ConfiguredFeature<?, ?>> cherryTree1 = RegistryKey.of(Registry.CONFIGURED_FEATURE_WORLDGEN, new Identifier("cherry", "cherry_tree_1")); RegistryKey<ConfiguredFeature<?, ?>> cherryTree1 = RegistryKey.of(Registry.CONFIGURED_FEATURE_WORLDGEN, new Identifier("cherry", "cherry_tree_1"));
Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, cherryTree1.getValue(), CHERRY_TREE_1_C_R); Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, cherryTree1.getValue(), CHERRY_TREE_1_C_R);
@@ -52,6 +44,8 @@ public class CherryFeatures {
} }
public static void init(){ public static void init(){
System.out.println("Cherry Features inititalizating...");
addFeatures(); addFeatures();
System.out.println("Cherry Features setup sucessfully!");
} }
} }
@@ -2,26 +2,61 @@ package net.parsell.cherry.core;
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem; import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemGroup;
import net.minecraft.item.SignItem;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.Registry;
public class CherryItems { public class CherryItems {
public static BlockItem CHERRYLEAVES_I = new BlockItem(CherryBlocks.CHERRYLEAVES, new FabricItemSettings().group(ItemGroup.BUILDING_BLOCKS)); public static final BlockItem CherryPlanks;
private static void registerBlockItems(){ private static void registerBlockItems(){
System.out.println("Adding items..."); registerBlockItem("cherry_log", CherryBlocks.CHERRYLOG, CherryRegistry.CHERRY_GROUP);
Registry.register(Registry.ITEM, new Identifier("cherry", "cherry_log"), new BlockItem(CherryBlocks.CHERRYLOG, new FabricItemSettings().group(ItemGroup.BUILDING_BLOCKS))); registerBlockItem("cherry_wood", CherryBlocks.CHERRYWOOD, CherryRegistry.CHERRY_GROUP);
Registry.register(Registry.ITEM, new Identifier("cherry", "cherry_leaves"), CHERRYLEAVES_I); registerBlockItem("stripped_cherry_log", CherryBlocks.CHERRYLOGSTRIPPED, CherryRegistry.CHERRY_GROUP);
System.out.println("Successfully added items!"); registerBlockItem("stripped_cherry_wood", CherryBlocks.CHERRYWOODSTRIPPED, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_leaves", CherryBlocks.CHERRYLEAVES, CherryRegistry.CHERRY_GROUP, 6649929);
registerBlockItem("cherry_fence", CherryBlocks.CHERRYFENCE, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_fence_gate", CherryBlocks.CHERRYFENCEGATE, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_door", CherryBlocks.CHERRYDOOR, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_trapdoor", CherryBlocks.CHERRYTRAPDOOR, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_slab", CherryBlocks.CHERRYSLAB, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_stairs", CherryBlocks.CHERRYSTAIRS, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_button", CherryBlocks.CHERRYBUTTON, CherryRegistry.CHERRY_GROUP);
registerBlockItem("cherry_pressure_plate", CherryBlocks.CHERRYPRESSUREPLATE, CherryRegistry.CHERRY_GROUP);
registerSignItem("cherry_sign", CherryBlocks.CHERRYSIGN, CherryBlocks.CHERRYSIGN, CherryRegistry.CHERRY_GROUP);
}
// Register a standard blockItem
private static BlockItem registerBlockItem(String itemID, Block block, ItemGroup group){
BlockItem blockItem = new BlockItem(block, new FabricItemSettings().group(group));
Registry.register(Registry.ITEM, new Identifier("cherry", itemID), blockItem);
return blockItem;
}
// Register a blockItem that require in-game color (leaves)
private static void registerBlockItem(String itemID, Block block, ItemGroup group, int color){
BlockItem blockItem = new BlockItem(block, new FabricItemSettings().group(group));
Registry.register(Registry.ITEM, new Identifier("cherry", itemID), blockItem);
ColorProviderRegistry.ITEM.register((stack, tintIndex) -> { ColorProviderRegistry.ITEM.register((stack, tintIndex) -> {
return 6649929; return color;
}, CherryBlocks.CHERRYLEAVES }, block
); );
} }
private static void registerSignItem(String itemID, Block standingBlock, Block wallBlock, ItemGroup group) {
Registry.register(Registry.ITEM, new Identifier("cherry", itemID), new SignItem(new FabricItemSettings().group(group), standingBlock, wallBlock));
}
public static void init(){ public static void init(){
System.out.println("Cherry Items initilizating...");
registerBlockItems(); registerBlockItems();
System.out.println("Cherry Items setup correctly!");
}
static{
CherryPlanks = registerBlockItem("cherry_planks", CherryBlocks.CHERRYPLANKS, CherryRegistry.CHERRY_GROUP);
} }
} }
@@ -0,0 +1,83 @@
package net.parsell.cherry.core;
import net.parsell.cherry.Cherry;
import net.parsell.cherry.common.util.CherrySignType;
import net.parsell.cherry.mixin.*;
import com.google.common.collect.ImmutableMap.Builder;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder;
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry;
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.client.render.RenderLayer;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Identifier;
import net.minecraft.util.SignType;
import net.minecraft.util.registry.Registry;
public class CherryRegistry {
private static Builder<Block, Block> STRIPPABLE_BLOCKS = new Builder<Block, Block>();
public static final ItemGroup CHERRY_GROUP = FabricItemGroupBuilder
.create(new Identifier(Cherry.MODID, "general"))
.icon(() -> new ItemStack(CherryItems.CherryPlanks))
.build();
public static void init(){
AxeItemAccessor.getStrippedLogs().forEach((log, strippedLog) -> {
STRIPPABLE_BLOCKS.put(log, strippedLog);
});
System.out.println("Cherry Registry initilizating...");
}
public static void finish(){
AxeItemAccessor.setStrippedLogs(STRIPPABLE_BLOCKS.build());
System.out.println("Cherry Registry setup correctly!");
}
public static void register(Block block, String id){
Registry.register(Registry.BLOCK, new Identifier(Cherry.MODID, id), block);
}
public static void register(BlockItem item, String id){
Registry.register(Registry.ITEM, new Identifier(Cherry.MODID, id), item);
}
public static void register(BlockEntityType<?> blockEntityType, String id){
Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(Cherry.MODID, id), blockEntityType);
}
// This registry is unique since I need to save the SignType, and the only way to do that is to register it. So..
public static SignType register(String type){
try {
return SignTypeInvoker.register(new CherrySignType(type));
} catch (IllegalAccessException iae){
System.out.println("CherryRegistry threw IllegalAccessException when trying to register \"" + type + "\" sign type.");
iae.printStackTrace();
}
return null;
}
public static void registerBurnable(Block block, int burnChance, int burnSpread){
FlammableBlockRegistry.getDefaultInstance().add(block, burnChance, burnSpread);
}
public static void registerColor(Block block, int color){
ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> {
return color;
}, block);
}
public static void registerTransparentLayer(Block block){
BlockRenderLayerMap.INSTANCE.putBlock(block, RenderLayer.getCutout());
}
public static void addStrippable(Block block, Block stripped){
STRIPPABLE_BLOCKS.put(block, stripped);
}
}
@@ -0,0 +1,22 @@
package net.parsell.cherry.mixin;
import java.util.Map;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import net.minecraft.block.Block;
import net.minecraft.item.AxeItem;
@Mixin(AxeItem.class)
public interface AxeItemAccessor {
@Accessor("STRIPPED_BLOCKS")
public static Map<Block, Block> getStrippedLogs(){
throw new AssertionError();
}
@Accessor("STRIPPED_BLOCKS")
public static void setStrippedLogs(Map<Block, Block> STRIPPED_BLOCKS){
throw new AssertionError();
}
}
@@ -0,0 +1,118 @@
{
"variants": {
"face=ceiling,facing=east,powered=false": {
"model": "cherry:block/cherry_button",
"y": 270,
"x": 180
},
"face=ceiling,facing=east,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 270,
"x": 180
},
"face=ceiling,facing=north,powered=false": {
"model": "cherry:block/cherry_button",
"y": 180,
"x": 180
},
"face=ceiling,facing=north,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 180,
"x": 180
},
"face=ceiling,facing=south,powered=false": {
"model": "cherry:block/cherry_button",
"x": 180
},
"face=ceiling,facing=south,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"x": 180
},
"face=ceiling,facing=west,powered=false": {
"model": "cherry:block/cherry_button",
"y": 90,
"x": 180
},
"face=ceiling,facing=west,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 90,
"x": 180
},
"face=floor,facing=east,powered=false": {
"model": "cherry:block/cherry_button",
"y": 90
},
"face=floor,facing=east,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 90
},
"face=floor,facing=north,powered=false": {
"model": "cherry:block/cherry_button"
},
"face=floor,facing=north,powered=true": {
"model": "cherry:block/cherry_button_pressed"
},
"face=floor,facing=south,powered=false": {
"model": "cherry:block/cherry_button",
"y": 180
},
"face=floor,facing=south,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 180
},
"face=floor,facing=west,powered=false": {
"model": "cherry:block/cherry_button",
"y": 270
},
"face=floor,facing=west,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 270
},
"face=wall,facing=east,powered=false": {
"model": "cherry:block/cherry_button",
"y": 90,
"x": 90,
"uvlock": true
},
"face=wall,facing=east,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 90,
"x": 90,
"uvlock": true
},
"face=wall,facing=north,powered=false": {
"model": "cherry:block/cherry_button",
"x": 90,
"uvlock": true
},
"face=wall,facing=north,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"x": 90,
"uvlock": true
},
"face=wall,facing=south,powered=false": {
"model": "cherry:block/cherry_button",
"y": 180,
"x": 90,
"uvlock": true
},
"face=wall,facing=south,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 180,
"x": 90,
"uvlock": true
},
"face=wall,facing=west,powered=false": {
"model": "cherry:block/cherry_button",
"y": 270,
"x": 90,
"uvlock": true
},
"face=wall,facing=west,powered=true": {
"model": "cherry:block/cherry_button_pressed",
"y": 270,
"x": 90,
"uvlock": true
}
}
}
@@ -0,0 +1,36 @@
{
"variants": {
"facing=east,half=lower,hinge=left,open=false": { "model": "cherry:block/cherry_door_bottom" },
"facing=south,half=lower,hinge=left,open=false": { "model": "cherry:block/cherry_door_bottom", "y": 90 },
"facing=west,half=lower,hinge=left,open=false": { "model": "cherry:block/cherry_door_bottom", "y": 180 },
"facing=north,half=lower,hinge=left,open=false": { "model": "cherry:block/cherry_door_bottom", "y": 270 },
"facing=east,half=lower,hinge=right,open=false": { "model": "cherry:block/cherry_door_bottom_hinge" },
"facing=south,half=lower,hinge=right,open=false": { "model": "cherry:block/cherry_door_bottom_hinge", "y": 90 },
"facing=west,half=lower,hinge=right,open=false": { "model": "cherry:block/cherry_door_bottom_hinge", "y": 180 },
"facing=north,half=lower,hinge=right,open=false": { "model": "cherry:block/cherry_door_bottom_hinge", "y": 270 },
"facing=east,half=lower,hinge=left,open=true": { "model": "cherry:block/cherry_door_bottom_hinge", "y": 90 },
"facing=south,half=lower,hinge=left,open=true": { "model": "cherry:block/cherry_door_bottom_hinge", "y": 180 },
"facing=west,half=lower,hinge=left,open=true": { "model": "cherry:block/cherry_door_bottom_hinge", "y": 270 },
"facing=north,half=lower,hinge=left,open=true": { "model": "cherry:block/cherry_door_bottom_hinge" },
"facing=east,half=lower,hinge=right,open=true": { "model": "cherry:block/cherry_door_bottom", "y": 270 },
"facing=south,half=lower,hinge=right,open=true": { "model": "cherry:block/cherry_door_bottom" },
"facing=west,half=lower,hinge=right,open=true": { "model": "cherry:block/cherry_door_bottom", "y": 90 },
"facing=north,half=lower,hinge=right,open=true": { "model": "cherry:block/cherry_door_bottom", "y": 180 },
"facing=east,half=upper,hinge=left,open=false": { "model": "cherry:block/cherry_door_top" },
"facing=south,half=upper,hinge=left,open=false": { "model": "cherry:block/cherry_door_top", "y": 90 },
"facing=west,half=upper,hinge=left,open=false": { "model": "cherry:block/cherry_door_top", "y": 180 },
"facing=north,half=upper,hinge=left,open=false": { "model": "cherry:block/cherry_door_top", "y": 270 },
"facing=east,half=upper,hinge=right,open=false": { "model": "cherry:block/cherry_door_top_hinge" },
"facing=south,half=upper,hinge=right,open=false": { "model": "cherry:block/cherry_door_top_hinge", "y": 90 },
"facing=west,half=upper,hinge=right,open=false": { "model": "cherry:block/cherry_door_top_hinge", "y": 180 },
"facing=north,half=upper,hinge=right,open=false": { "model": "cherry:block/cherry_door_top_hinge", "y": 270 },
"facing=east,half=upper,hinge=left,open=true": { "model": "cherry:block/cherry_door_top_hinge", "y": 90 },
"facing=south,half=upper,hinge=left,open=true": { "model": "cherry:block/cherry_door_top_hinge", "y": 180 },
"facing=west,half=upper,hinge=left,open=true": { "model": "cherry:block/cherry_door_top_hinge", "y": 270 },
"facing=north,half=upper,hinge=left,open=true": { "model": "cherry:block/cherry_door_top_hinge" },
"facing=east,half=upper,hinge=right,open=true": { "model": "cherry:block/cherry_door_top", "y": 270 },
"facing=south,half=upper,hinge=right,open=true": { "model": "cherry:block/cherry_door_top" },
"facing=west,half=upper,hinge=right,open=true": { "model": "cherry:block/cherry_door_top", "y": 90 },
"facing=north,half=upper,hinge=right,open=true": { "model": "cherry:block/cherry_door_top", "y": 180 }
}
}
@@ -0,0 +1,48 @@
{
"multipart": [
{
"apply": {
"model": "cherry:block/cherry_fence_post"
}
},
{
"when": {
"north": "true"
},
"apply": {
"model": "cherry:block/cherry_fence_side",
"uvlock": true
}
},
{
"when": {
"east": "true"
},
"apply": {
"model": "cherry:block/cherry_fence_side",
"y": 90,
"uvlock": true
}
},
{
"when": {
"south": "true"
},
"apply": {
"model": "cherry:block/cherry_fence_side",
"y": 180,
"uvlock": true
}
},
{
"when": {
"west": "true"
},
"apply": {
"model": "cherry:block/cherry_fence_side",
"y": 270,
"uvlock": true
}
}
]
}
@@ -0,0 +1,80 @@
{
"variants": {
"facing=east,in_wall=false,open=false": {
"uvlock": true,
"y": 270,
"model": "cherry:block/cherry_fence_gate"
},
"facing=east,in_wall=false,open=true": {
"uvlock": true,
"y": 270,
"model": "cherry:block/cherry_fence_gate_open"
},
"facing=east,in_wall=true,open=false": {
"uvlock": true,
"y": 270,
"model": "cherry:block/cherry_fence_gate_wall"
},
"facing=east,in_wall=true,open=true": {
"uvlock": true,
"y": 270,
"model": "cherry:block/cherry_fence_gate_wall_open"
},
"facing=north,in_wall=false,open=false": {
"uvlock": true,
"y": 180,
"model": "cherry:block/cherry_fence_gate"
},
"facing=north,in_wall=false,open=true": {
"uvlock": true,
"y": 180,
"model": "cherry:block/cherry_fence_gate_open"
},
"facing=north,in_wall=true,open=false": {
"uvlock": true,
"y": 180,
"model": "cherry:block/cherry_fence_gate_wall"
},
"facing=north,in_wall=true,open=true": {
"uvlock": true,
"y": 180,
"model": "cherry:block/cherry_fence_gate_wall_open"
},
"facing=south,in_wall=false,open=false": {
"uvlock": true,
"model": "cherry:block/cherry_fence_gate"
},
"facing=south,in_wall=false,open=true": {
"uvlock": true,
"model": "cherry:block/cherry_fence_gate_open"
},
"facing=south,in_wall=true,open=false": {
"uvlock": true,
"model": "cherry:block/cherry_fence_gate_wall"
},
"facing=south,in_wall=true,open=true": {
"uvlock": true,
"model": "cherry:block/cherry_fence_gate_wall_open"
},
"facing=west,in_wall=false,open=false": {
"uvlock": true,
"y": 90,
"model": "cherry:block/cherry_fence_gate"
},
"facing=west,in_wall=false,open=true": {
"uvlock": true,
"y": 90,
"model": "cherry:block/cherry_fence_gate_open"
},
"facing=west,in_wall=true,open=false": {
"uvlock": true,
"y": 90,
"model": "cherry:block/cherry_fence_gate_wall"
},
"facing=west,in_wall=true,open=true": {
"uvlock": true,
"y": 90,
"model": "cherry:block/cherry_fence_gate_wall_open"
}
}
}
@@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "cherry:block/cherry_planks" }
}
}
@@ -0,0 +1,10 @@
{
"variants": {
"powered=false": {
"model": "cherry:block/cherry_pressure_plate"
},
"powered=true": {
"model": "cherry:block/cherry_pressure_plate_down"
}
}
}
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "cherry:block/cherry_sign"
}
}
}
@@ -0,0 +1,13 @@
{
"variants": {
"type=bottom": {
"model": "cherry:block/cherry_slab"
},
"type=double": {
"model": "cherry:block/cherry_planks"
},
"type=top": {
"model": "cherry:block/cherry_slab_top"
}
}
}
@@ -0,0 +1,209 @@
{
"variants": {
"facing=east,half=bottom,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner",
"y": 270,
"uvlock": true
},
"facing=east,half=bottom,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner"
},
"facing=east,half=bottom,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer",
"y": 270,
"uvlock": true
},
"facing=east,half=bottom,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer"
},
"facing=east,half=bottom,shape=straight": {
"model": "cherry:block/cherry_stairs"
},
"facing=east,half=top,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"uvlock": true
},
"facing=east,half=top,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"y": 90,
"uvlock": true
},
"facing=east,half=top,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"uvlock": true
},
"facing=east,half=top,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"y": 90,
"uvlock": true
},
"facing=east,half=top,shape=straight": {
"model": "cherry:block/cherry_stairs",
"x": 180,
"uvlock": true
},
"facing=north,half=bottom,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner",
"y": 180,
"uvlock": true
},
"facing=north,half=bottom,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner",
"y": 270,
"uvlock": true
},
"facing=north,half=bottom,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer",
"y": 180,
"uvlock": true
},
"facing=north,half=bottom,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer",
"y": 270,
"uvlock": true
},
"facing=north,half=bottom,shape=straight": {
"model": "cherry:block/cherry_stairs",
"y": 270,
"uvlock": true
},
"facing=north,half=top,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"y": 270,
"uvlock": true
},
"facing=north,half=top,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"uvlock": true
},
"facing=north,half=top,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"y": 270,
"uvlock": true
},
"facing=north,half=top,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"uvlock": true
},
"facing=north,half=top,shape=straight": {
"model": "cherry:block/cherry_stairs",
"x": 180,
"y": 270,
"uvlock": true
},
"facing=south,half=bottom,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner"
},
"facing=south,half=bottom,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner",
"y": 90,
"uvlock": true
},
"facing=south,half=bottom,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer"
},
"facing=south,half=bottom,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer",
"y": 90,
"uvlock": true
},
"facing=south,half=bottom,shape=straight": {
"model": "cherry:block/cherry_stairs",
"y": 90,
"uvlock": true
},
"facing=south,half=top,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"y": 90,
"uvlock": true
},
"facing=south,half=top,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"y": 180,
"uvlock": true
},
"facing=south,half=top,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"y": 90,
"uvlock": true
},
"facing=south,half=top,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"y": 180,
"uvlock": true
},
"facing=south,half=top,shape=straight": {
"model": "cherry:block/cherry_stairs",
"x": 180,
"y": 90,
"uvlock": true
},
"facing=west,half=bottom,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner",
"y": 90,
"uvlock": true
},
"facing=west,half=bottom,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner",
"y": 180,
"uvlock": true
},
"facing=west,half=bottom,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer",
"y": 90,
"uvlock": true
},
"facing=west,half=bottom,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer",
"y": 180,
"uvlock": true
},
"facing=west,half=bottom,shape=straight": {
"model": "cherry:block/cherry_stairs",
"y": 180,
"uvlock": true
},
"facing=west,half=top,shape=inner_left": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"y": 180,
"uvlock": true
},
"facing=west,half=top,shape=inner_right": {
"model": "cherry:block/cherry_stairs_inner",
"x": 180,
"y": 270,
"uvlock": true
},
"facing=west,half=top,shape=outer_left": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"y": 180,
"uvlock": true
},
"facing=west,half=top,shape=outer_right": {
"model": "cherry:block/cherry_stairs_outer",
"x": 180,
"y": 270,
"uvlock": true
},
"facing=west,half=top,shape=straight": {
"model": "cherry:block/cherry_stairs",
"x": 180,
"y": 180,
"uvlock": true
}
}
}
@@ -0,0 +1,69 @@
{
"variants": {
"facing=east,half=bottom,open=false": {
"model": "cherry:block/cherry_trapdoor_bottom",
"y": 90
},
"facing=east,half=bottom,open=true": {
"model": "cherry:block/cherry_trapdoor_open",
"y": 90
},
"facing=east,half=top,open=false": {
"model": "cherry:block/cherry_trapdoor_top",
"y": 90
},
"facing=east,half=top,open=true": {
"model": "cherry:block/cherry_trapdoor_open",
"x": 180,
"y": 270
},
"facing=north,half=bottom,open=false": {
"model": "cherry:block/cherry_trapdoor_bottom"
},
"facing=north,half=bottom,open=true": {
"model": "cherry:block/cherry_trapdoor_open"
},
"facing=north,half=top,open=false": {
"model": "cherry:block/cherry_trapdoor_top"
},
"facing=north,half=top,open=true": {
"model": "cherry:block/cherry_trapdoor_open",
"x": 180,
"y": 180
},
"facing=south,half=bottom,open=false": {
"model": "cherry:block/cherry_trapdoor_bottom",
"y": 180
},
"facing=south,half=bottom,open=true": {
"model": "cherry:block/cherry_trapdoor_open",
"y": 180
},
"facing=south,half=top,open=false": {
"model": "cherry:block/cherry_trapdoor_top",
"y": 180
},
"facing=south,half=top,open=true": {
"model": "cherry:block/cherry_trapdoor_open",
"x": 180,
"y": 0
},
"facing=west,half=bottom,open=false": {
"model": "cherry:block/cherry_trapdoor_bottom",
"y": 270
},
"facing=west,half=bottom,open=true": {
"model": "cherry:block/cherry_trapdoor_open",
"y": 270
},
"facing=west,half=top,open=false": {
"model": "cherry:block/cherry_trapdoor_top",
"y": 270
},
"facing=west,half=top,open=true": {
"model": "cherry:block/cherry_trapdoor_open",
"x": 180,
"y": 90
}
}
}
@@ -0,0 +1,16 @@
{
"variants": {
"axis=y": {
"model": "cherry:block/cherry_wood"
},
"axis=z": {
"model": "cherry:block/cherry_wood",
"x": 90
},
"axis=x": {
"model": "cherry:block/cherry_wood",
"x": 90,
"y": 90
}
}
}
@@ -0,0 +1,16 @@
{
"variants": {
"axis=y": {
"model": "cherry:block/stripped_cherry_log"
},
"axis=z": {
"model": "cherry:block/stripped_cherry_log",
"x": 90
},
"axis=x": {
"model": "cherry:block/stripped_cherry_log",
"x": 90,
"y": 90
}
}
}
@@ -0,0 +1,16 @@
{
"variants": {
"axis=y": {
"model": "cherry:block/stripped_cherry_wood"
},
"axis=z": {
"model": "cherry:block/stripped_cherry_wood",
"x": 90
},
"axis=x": {
"model": "cherry:block/stripped_cherry_wood",
"x": 90,
"y": 90
}
}
}
@@ -1,4 +1,15 @@
{ {
"block.cherry.cherry_log": "Cherry Log", "block.cherry.cherry_log": "Cherry Log",
"block.cherry.cherry_leaves": "Cherry Leaves" "block.cherry.cherry_wood": "Cherry Wood",
"block.cherry.stripped_cherry_log": "Stripped Cherry Log",
"block.cherry.stripped_cherry_wood": "Stripped Cherry Wood",
"block.cherry.cherry_leaves": "Cherry Leaves",
"block.cherry.cherry_planks": "Cherry Planks",
"block.cherry.cherry_fence": "Cherry Fence",
"block.cherry.cherry_fence_gate": "Cherry Fence Gate",
"block.cherry.cherry_door": "Cherry Door",
"block.cherry.cherry_trapdoor": "Cherry Trapdoor",
"block.cherry.cherry_slab": "Cherry Slab",
"block.cherry.cherry_stairs": "Cherry Stairs",
"block.cherry.cherry_button": "Cherry Button"
} }
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/button",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/button_inventory",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/button_pressed",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,7 @@
{
"parent": "minecraft:block/door_bottom",
"textures": {
"top": "cherry:block/cherry_door_top",
"bottom": "cherry:block/cherry_door_bottom"
}
}
@@ -0,0 +1,7 @@
{
"parent": "minecraft:block/door_bottom_rh",
"textures": {
"top": "cherry:block/cherry_door_top",
"bottom": "cherry:block/cherry_door_bottom"
}
}
@@ -0,0 +1,7 @@
{
"parent": "minecraft:block/door_top",
"textures": {
"top": "cherry:block/cherry_door_top",
"bottom": "cherry:block/cherry_door_bottom"
}
}
@@ -0,0 +1,7 @@
{
"parent": "minecraft:block/door_top_rh",
"textures": {
"top": "cherry:block/cherry_door_top",
"bottom": "cherry:block/cherry_door_bottom"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate_open",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate_wall",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate_wall_open",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/fence_inventory",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/fence_post",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/fence_side",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "block/cube_all",
"textures": {
"all": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/pressure_plate_up",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/pressure_plate_down",
"textures": {
"texture": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,5 @@
{
"textures": {
"particle": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,8 @@
{
"parent": "minecraft:block/slab",
"textures": {
"bottom": "cherry:block/cherry_planks",
"top": "cherry:block/cherry_planks",
"side": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,8 @@
{
"parent": "minecraft:block/slab_top",
"textures": {
"bottom": "cherry:block/cherry_planks",
"top": "cherry:block/cherry_planks",
"side": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,8 @@
{
"parent": "minecraft:block/stairs",
"textures": {
"bottom": "cherry:block/cherry_planks",
"top": "cherry:block/cherry_planks",
"side": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,8 @@
{
"parent": "minecraft:block/inner_stairs",
"textures": {
"bottom": "cherry:block/cherry_planks",
"top": "cherry:block/cherry_planks",
"side": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,8 @@
{
"parent": "minecraft:block/outer_stairs",
"textures": {
"bottom": "cherry:block/cherry_planks",
"top": "cherry:block/cherry_planks",
"side": "cherry:block/cherry_planks"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_orientable_trapdoor_bottom",
"textures": {
"texture": "cherry:block/cherry_trapdoor"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_orientable_trapdoor_open",
"textures": {
"texture": "cherry:block/cherry_trapdoor"
}
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_orientable_trapdoor_top",
"textures": {
"texture": "cherry:block/cherry_trapdoor"
}
}
@@ -0,0 +1,7 @@
{
"parent": "block/cube_column",
"textures": {
"end": "cherry:block/cherry_log",
"side": "cherry:block/cherry_log"
}
}
@@ -0,0 +1,7 @@
{
"parent": "block/cube_column",
"textures": {
"end": "cherry:block/stripped_cherry_log_top",
"side": "cherry:block/stripped_cherry_log"
}
}
@@ -0,0 +1,7 @@
{
"parent": "block/cube_column",
"textures": {
"end": "cherry:block/stripped_cherry_log",
"side": "cherry:block/stripped_cherry_log"
}
}
@@ -0,0 +1,3 @@
{
"parent": "cherry:block/cherry_button_inventory"
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "cherry:item/cherry_door"
}
}
@@ -0,0 +1,3 @@
{
"parent": "cherry:block/cherry_fence_inventory"
}
@@ -0,0 +1,3 @@
{
"parent": "cherry:block/cherry_fence_gate"
}
@@ -0,0 +1,3 @@
{
"parent": "cherry:block/cherry_planks"
}
@@ -0,0 +1,3 @@
{
"parent": "cherry:block/cherry_pressure_plate"
}
@@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "cherry:item/cherry_sign"
}
}
@@ -0,0 +1,4 @@
{
"parent": "cherry:block/cherry_slab"
}
@@ -0,0 +1,3 @@
{
"parent": "cherry:block/cherry_stairs"
}
@@ -0,0 +1,3 @@
{
"parent": "cherry:block/cherry_trapdoor_bottom"
}
@@ -0,0 +1,4 @@
{
"parent": "cherry:block/cherry_wood"
}
@@ -0,0 +1,4 @@
{
"parent": "cherry:block/stripped_cherry_log"
}
@@ -0,0 +1,4 @@
{
"parent": "cherry:block/stripped_cherry_wood"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

+1 -1
View File
@@ -6,7 +6,7 @@
"mixins": [ "mixins": [
], ],
"client": [ "client": [
"CherryMixin" "AxeItemAccessor"
], ],
"injectors": { "injectors": {
"defaultRequire": 1 "defaultRequire": 1
@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cherry:cherry_fence"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cherry:cherry_planks"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cherry:cherry_wood"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cherry:stripped_cherry_wood"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "cherry:stripped_cherry_wood"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}
@@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_fence",
"pattern": [
"W#W",
"W#W"
],
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "cherry:cherry_planks"
}
},
"result": {
"item": "cherry:cherry_fence",
"count": 3
}
}
@@ -0,0 +1,13 @@
{
"type": "minecraft:crafting_shapeless",
"group": "planks",
"ingredients": [
{
"tag": "cherry:cherry_logs"
}
],
"result": {
"item": "cherry:cherry_planks",
"count": 4
}
}
@@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"group": "bark",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "cherry:cherry_log"
}
},
"result": {
"item": "cherry:cherry_wood",
"count": 3
}
}
@@ -0,0 +1,17 @@
{
"type": "minecraft:crafting_shaped",
"group": "bark",
"pattern": [
"##",
"##"
],
"key": {
"#": {
"item": "cherry:stripped_cherry_log"
}
},
"result": {
"item": "cherry:stripped_cherry_wood",
"count": 3
}
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"cherry:cherry_log",
"cherry:cherry_wood",
"cherry:stripped_cherry_log",
"cherry:stripped_cherry_wood"
]
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"cherry:cherry_log",
"cherry:cherry_wood",
"cherry:stripped_cherry_log",
"cherry:stripped_cherry_wood"
]
}
@@ -1,6 +1,6 @@
{ {
"replace": false, "replace": false,
"values": [ "values": [
"#cherry:cherry_wood" "#cherry:cherry_logs"
] ]
} }
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"cherry:cherry_planks"
]
}
@@ -1,6 +1,6 @@
{ {
"replace": false, "replace": false,
"values": [ "values": [
"cherry:cherry_log" "cherry:cherry_sign"
] ]
} }
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"cherry:cherry_sign"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"cherry:cherry_sign"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"cherry:cherry_fence"
]
}
@@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"cherry:cherry_leaves"
]
}

Some files were not shown because too many files have changed in this diff Show More