Added a palm wood set

This commit is contained in:
Sollace 2023-05-25 19:02:08 +01:00
parent 1e043af154
commit a3e5144854
63 changed files with 990 additions and 47 deletions

View file

@ -42,6 +42,7 @@ repositories {
maven { name 'mod-menu'; url 'https://maven.terraformersmc.com/' } maven { name 'mod-menu'; url 'https://maven.terraformersmc.com/' }
maven { name 'minelp-snapshot'; url 'https://repo.minelittlepony-mod.com/maven/snapshot' } maven { name 'minelp-snapshot'; url 'https://repo.minelittlepony-mod.com/maven/snapshot' }
maven { name 'minelp-releases'; url 'https://repo.minelittlepony-mod.com/maven/release' } maven { name 'minelp-releases'; url 'https://repo.minelittlepony-mod.com/maven/release' }
maven { name 'TerraformersMC'; url 'https://maven.terraformersmc.com/' }
} }
dependencies { dependencies {
@ -66,6 +67,9 @@ dependencies {
modCompileOnly "com.terraformersmc:modmenu:${project.modmenu_version}" modCompileOnly "com.terraformersmc:modmenu:${project.modmenu_version}"
modCompileOnly "dev.emi:trinkets:${project.trinkets_version}" modCompileOnly "dev.emi:trinkets:${project.trinkets_version}"
modImplementation "com.terraformersmc.terraform-api:terraform-wood-api-v1:${project.terraformer_api_version}"
include "com.terraformersmc.terraform-api:terraform-wood-api-v1:${project.terraformer_api_version}"
//modCompileOnly "dev.emi:emi:${project.emi_version}:api" //modCompileOnly "dev.emi:emi:${project.emi_version}:api"
modCompileOnly "dev.emi:emi:${project.emi_version}" modCompileOnly "dev.emi:emi:${project.emi_version}"
@ -102,6 +106,6 @@ modrinth {
gameVersions.add ver gameVersions.add ver
} }
dependencies { dependencies {
required.project 'P7dR8mSH' required.project '9K7RJlvM'
} }
} }

View file

@ -27,3 +27,4 @@ org.gradle.daemon=false
reach_attributes_version=2.3.1 reach_attributes_version=2.3.1
trinkets_version=3.5.0 trinkets_version=3.5.0
emi_version=0.7.3+1.19.3 emi_version=0.7.3+1.19.3
terraformer_api_version=5.0.0

View file

@ -21,9 +21,9 @@ public class BaseZapAppleLeavesBlock extends LeavesBlock implements TintedBlock
.ticksRandomly() .ticksRandomly()
.sounds(BlockSoundGroup.AZALEA_LEAVES) .sounds(BlockSoundGroup.AZALEA_LEAVES)
.nonOpaque() .nonOpaque()
.allowsSpawning(UBlocks::canSpawnOnLeaves) .allowsSpawning(BlockConstructionUtils::canSpawnOnLeaves)
.suffocates(UBlocks::never) .suffocates(BlockConstructionUtils::never)
.blockVision(UBlocks::never) .blockVision(BlockConstructionUtils::never)
); );
} }

View file

@ -0,0 +1,50 @@
package com.minelittlepony.unicopia.block;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.BlockState;
import net.minecraft.block.ButtonBlock;
import net.minecraft.block.LeavesBlock;
import net.minecraft.block.MapColor;
import net.minecraft.block.Material;
import net.minecraft.block.PillarBlock;
import net.minecraft.entity.EntityType;
import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.sound.SoundEvent;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.world.BlockView;
interface BlockConstructionUtils {
static ButtonBlock woodenButton() {
return woodenButton(BlockSoundGroup.WOOD, SoundEvents.BLOCK_WOODEN_BUTTON_CLICK_OFF, SoundEvents.BLOCK_WOODEN_BUTTON_CLICK_ON);
}
static ButtonBlock woodenButton(BlockSoundGroup soundGroup, SoundEvent clickOffSound, SoundEvent clickOnSound) {
return new ButtonBlock(AbstractBlock.Settings.of(Material.DECORATION).noCollision().strength(0.5f).sounds(soundGroup), 30, true, clickOffSound, clickOnSound);
}
static boolean never(BlockState state, BlockView world, BlockPos pos, EntityType<?> type) {
return false;
}
static boolean never(BlockState state, BlockView world, BlockPos pos) {
return false;
}
static PillarBlock createLogBlock(MapColor topMapColor, MapColor sideMapColor) {
return new PillarBlock(AbstractBlock.Settings.of(Material.WOOD, state -> state.get(PillarBlock.AXIS) == Direction.Axis.Y ? topMapColor : sideMapColor).strength(2).sounds(BlockSoundGroup.WOOD));
}
static PillarBlock createWoodBlock(MapColor mapColor) {
return new PillarBlock(AbstractBlock.Settings.of(Material.WOOD, mapColor).strength(2).sounds(BlockSoundGroup.WOOD));
}
static LeavesBlock createLeavesBlock(BlockSoundGroup soundGroup) {
return new LeavesBlock(AbstractBlock.Settings.of(Material.LEAVES).strength(0.2F).ticksRandomly().sounds(soundGroup).nonOpaque().allowsSpawning(BlockConstructionUtils::canSpawnOnLeaves).suffocates(BlockConstructionUtils::never).blockVision(BlockConstructionUtils::never));
}
static Boolean canSpawnOnLeaves(BlockState state, BlockView world, BlockPos pos, EntityType<?> type) {
return type == EntityType.OCELOT || type == EntityType.PARROT;
}
}

View file

@ -39,9 +39,9 @@ public class FruitBearingBlock extends LeavesBlock implements TintedBlock, Bucka
super(settings super(settings
.ticksRandomly() .ticksRandomly()
.nonOpaque() .nonOpaque()
.allowsSpawning(UBlocks::canSpawnOnLeaves) .allowsSpawning(BlockConstructionUtils::canSpawnOnLeaves)
.suffocates(UBlocks::never) .suffocates(BlockConstructionUtils::never)
.blockVision(UBlocks::never)); .blockVision(BlockConstructionUtils::never));
setDefaultState(getDefaultState().with(STAGE, Stage.IDLE)); setDefaultState(getDefaultState().with(STAGE, Stage.IDLE));
this.overlay = overlay; this.overlay = overlay;
this.fruit = fruit; this.fruit = fruit;

View file

@ -34,7 +34,7 @@ public class FruitBlock extends Block implements Buckable {
} }
public FruitBlock(Settings settings, Direction attachmentFace, Block stem, VoxelShape shape, boolean flammable) { public FruitBlock(Settings settings, Direction attachmentFace, Block stem, VoxelShape shape, boolean flammable) {
super(settings.nonOpaque().suffocates(UBlocks::never).blockVision(UBlocks::never)); super(settings.nonOpaque().suffocates(BlockConstructionUtils::never).blockVision(BlockConstructionUtils::never));
this.attachmentFace = attachmentFace; this.attachmentFace = attachmentFace;
this.stem = stem; this.stem = stem;
this.shape = shape; this.shape = shape;

View file

@ -14,16 +14,14 @@ import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
import net.fabricmc.fabric.api.registry.StrippableBlockRegistry; import net.fabricmc.fabric.api.registry.StrippableBlockRegistry;
import net.minecraft.block.*; import net.minecraft.block.*;
import net.minecraft.block.AbstractBlock.Settings; import net.minecraft.block.AbstractBlock.Settings;
import net.minecraft.entity.EntityType;
import net.minecraft.item.*; import net.minecraft.item.*;
import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.BlockSoundGroup;
import net.minecraft.sound.SoundEvents;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction;
import net.minecraft.util.shape.VoxelShapes; import net.minecraft.util.shape.VoxelShapes;
import net.minecraft.registry.Registry; import net.minecraft.registry.Registry;
import net.minecraft.registry.Registries; import net.minecraft.registry.Registries;
import net.minecraft.world.BlockView;
public interface UBlocks { public interface UBlocks {
List<Block> TRANSLUCENT_BLOCKS = new ArrayList<>(); List<Block> TRANSLUCENT_BLOCKS = new ArrayList<>();
@ -50,14 +48,27 @@ public interface UBlocks {
Block ZAP_BULB = register("zap_bulb", new FruitBlock(FabricBlockSettings.of(Material.GOURD, MapColor.GRAY).strength(500, 1200).sounds(BlockSoundGroup.AZALEA_LEAVES), Direction.DOWN, ZAP_LEAVES, FruitBlock.DEFAULT_SHAPE, false)); Block ZAP_BULB = register("zap_bulb", new FruitBlock(FabricBlockSettings.of(Material.GOURD, MapColor.GRAY).strength(500, 1200).sounds(BlockSoundGroup.AZALEA_LEAVES), Direction.DOWN, ZAP_LEAVES, FruitBlock.DEFAULT_SHAPE, false));
Block ZAP_APPLE = register("zap_apple", new FruitBlock(FabricBlockSettings.of(Material.GOURD, MapColor.GRAY).sounds(BlockSoundGroup.AZALEA_LEAVES), Direction.DOWN, ZAP_LEAVES, FruitBlock.DEFAULT_SHAPE, false)); Block ZAP_APPLE = register("zap_apple", new FruitBlock(FabricBlockSettings.of(Material.GOURD, MapColor.GRAY).sounds(BlockSoundGroup.AZALEA_LEAVES), Direction.DOWN, ZAP_LEAVES, FruitBlock.DEFAULT_SHAPE, false));
Block PALM_LOG = register("palm_log", createLogBlock(MapColor.OFF_WHITE, MapColor.SPRUCE_BROWN), ItemGroups.BUILDING_BLOCKS); Block PALM_LOG = register("palm_log", BlockConstructionUtils.createLogBlock(MapColor.OFF_WHITE, MapColor.SPRUCE_BROWN), ItemGroups.BUILDING_BLOCKS);
Block PALM_WOOD = register("palm_wood", createWoodBlock(MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS); Block PALM_WOOD = register("palm_wood", BlockConstructionUtils.createWoodBlock(MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS);
Block STRIPPED_PALM_LOG = register("stripped_palm_log", BlockConstructionUtils.createLogBlock(MapColor.OFF_WHITE, MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS);
Block STRIPPED_PALM_WOOD = register("stripped_palm_wood", BlockConstructionUtils.createWoodBlock(MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS);
Block PALM_PLANKS = register("palm_planks", new Block(Settings.of(Material.WOOD, MapColor.OFF_WHITE).strength(2, 3).sounds(BlockSoundGroup.WOOD)), ItemGroups.BUILDING_BLOCKS); Block PALM_PLANKS = register("palm_planks", new Block(Settings.of(Material.WOOD, MapColor.OFF_WHITE).strength(2, 3).sounds(BlockSoundGroup.WOOD)), ItemGroups.BUILDING_BLOCKS);
Block PALM_STAIRS = register("palm_stairs", new StairsBlock(PALM_PLANKS.getDefaultState(), Settings.copy(PALM_PLANKS)), ItemGroups.BUILDING_BLOCKS);
Block PALM_SLAB = register("palm_slab", new SlabBlock(Settings.of(Material.WOOD, PALM_PLANKS.getDefaultMapColor()).strength(2, 3).sounds(BlockSoundGroup.WOOD)), ItemGroups.BUILDING_BLOCKS);
Block PALM_FENCE = register("palm_fence", new FenceBlock(Settings.of(Material.WOOD, PALM_PLANKS.getDefaultMapColor()).strength(2, 3).sounds(BlockSoundGroup.WOOD)), ItemGroups.BUILDING_BLOCKS);
Block PALM_FENCE_GATE = register("palm_fence_gate", new FenceGateBlock(Settings.of(Material.WOOD, PALM_PLANKS.getDefaultMapColor()).strength(2, 3).sounds(BlockSoundGroup.WOOD), SoundEvents.BLOCK_FENCE_GATE_CLOSE, SoundEvents.BLOCK_FENCE_GATE_OPEN), ItemGroups.BUILDING_BLOCKS);
// Block PALM_DOOR = register("palm_door", new DoorBlock(Settings.of(Material.WOOD, PALM_PLANKS.getDefaultMapColor()).strength(3.0f).sounds(BlockSoundGroup.WOOD).nonOpaque(), SoundEvents.BLOCK_WOODEN_DOOR_CLOSE, SoundEvents.BLOCK_WOODEN_DOOR_OPEN), ItemGroups.BUILDING_BLOCKS);
// Block PALM_TRAPDOOR = register("palm_trapdoor", new TrapdoorBlock(Settings.of(Material.WOOD, PALM_PLANKS.getDefaultMapColor()).strength(3.0f).sounds(BlockSoundGroup.WOOD).nonOpaque().allowsSpawning(UBlocks::never), SoundEvents.BLOCK_WOODEN_TRAPDOOR_CLOSE, SoundEvents.BLOCK_WOODEN_TRAPDOOR_OPEN), ItemGroups.BUILDING_BLOCKS);
Block PALM_PRESSURE_PLATE = register("palm_pressure_plate", new PressurePlateBlock(PressurePlateBlock.ActivationRule.EVERYTHING, Settings.of(Material.WOOD, PALM_PLANKS.getDefaultMapColor()).noCollision().strength(0.5f).sounds(BlockSoundGroup.WOOD), SoundEvents.BLOCK_WOODEN_PRESSURE_PLATE_CLICK_OFF, SoundEvents.BLOCK_WOODEN_PRESSURE_PLATE_CLICK_ON), ItemGroups.BUILDING_BLOCKS);
Block PALM_BUTTON = register("palm_button", BlockConstructionUtils.woodenButton(), ItemGroups.BUILDING_BLOCKS);
// Block PALM_SIGN = register("palm_sign", new SignBlock(Settings.of(Material.WOOD).noCollision().strength(1.0f).sounds(BlockSoundGroup.WOOD), PALM_SIGN_TYPE), ItemGroups.BUILDING_BLOCKS);
//
// Block PALM_WALL_SIGN = register("palm_wall_sign", new WallSignBlock(Settings.of(Material.WOOD).noCollision().strength(1.0f).sounds(BlockSoundGroup.WOOD).dropsLike(PALM_SIGN), PALM_SIGN_TYPE), ItemGroups.BUILDING_BLOCKS);
// Block PALM_HANGING_SIGN = register("palm_hanging_sign", new HangingSignBlock(AbstractBlock.Settings.of(Material.WOOD, PALM_LOG.getDefaultMapColor()).noCollision().strength(1.0f).sounds(BlockSoundGroup.HANGING_SIGN).requires(FeatureFlags.UPDATE_1_20), PALM_SIGN_TYPE), ItemGroups.BUILDING_BLOCKS);
// Block PALM_WALL_HANGING_SIGN = register("palm_wall_hanging_sign", new WallHangingSignBlock(AbstractBlock.Settings.of(Material.WOOD, PALM_LOG.getDefaultMapColor()).noCollision().strength(1.0f).sounds(BlockSoundGroup.HANGING_SIGN).requires(FeatureFlags.UPDATE_1_20).dropsLike(PALM_HANGING_SIGN), PALM_SIGN_TYPE), ItemGroups.BUILDING_BLOCKS);
Block STRIPPED_PALM_LOG = register("stripped_palm_log", createLogBlock(MapColor.OFF_WHITE, MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS); Block PALM_LEAVES = register("palm_leaves", BlockConstructionUtils.createLeavesBlock(BlockSoundGroup.GRASS), ItemGroups.BUILDING_BLOCKS);
Block STRIPPED_PALM_WOOD = register("stripped_palm_wood", createWoodBlock(MapColor.OFF_WHITE), ItemGroups.BUILDING_BLOCKS);
Block PALM_LEAVES = register("palm_leaves", createLeavesBlock(BlockSoundGroup.GRASS), ItemGroups.BUILDING_BLOCKS);
Block BANANAS = register("bananas", new FruitBlock(FabricBlockSettings.of(Material.GOURD, MapColor.YELLOW).sounds(BlockSoundGroup.WOOD).hardness(3), Direction.DOWN, PALM_LEAVES, VoxelShapes.fullCube())); Block BANANAS = register("bananas", new FruitBlock(FabricBlockSettings.of(Material.GOURD, MapColor.YELLOW).sounds(BlockSoundGroup.WOOD).hardness(3), Direction.DOWN, PALM_LEAVES, VoxelShapes.fullCube()));
@ -134,24 +145,4 @@ public interface UBlocks {
UBlockEntities.bootstrap(); UBlockEntities.bootstrap();
} }
static boolean never(BlockState state, BlockView world, BlockPos pos) {
return false;
}
static PillarBlock createLogBlock(MapColor topMapColor, MapColor sideMapColor) {
return new PillarBlock(AbstractBlock.Settings.of(Material.WOOD, state -> state.get(PillarBlock.AXIS) == Direction.Axis.Y ? topMapColor : sideMapColor).strength(2).sounds(BlockSoundGroup.WOOD));
}
static PillarBlock createWoodBlock(MapColor mapColor) {
return new PillarBlock(AbstractBlock.Settings.of(Material.WOOD, mapColor).strength(2).sounds(BlockSoundGroup.WOOD));
}
static LeavesBlock createLeavesBlock(BlockSoundGroup soundGroup) {
return new LeavesBlock(AbstractBlock.Settings.of(Material.LEAVES).strength(0.2F).ticksRandomly().sounds(soundGroup).nonOpaque().allowsSpawning(UBlocks::canSpawnOnLeaves).suffocates(UBlocks::never).blockVision(UBlocks::never));
}
static Boolean canSpawnOnLeaves(BlockState state, BlockView world, BlockPos pos, EntityType<?> type) {
return type == EntityType.OCELOT || type == EntityType.PARROT;
}
} }

View file

@ -148,9 +148,6 @@ public interface UItems {
static <T extends Item> T register(Identifier id, T item) { static <T extends Item> T register(Identifier id, T item) {
ITEMS.add(item); ITEMS.add(item);
if (item instanceof BlockItem) {
((BlockItem)item).appendBlocks(Item.BLOCK_ITEMS, item);
}
return Registry.register(Registries.ITEM, id, item); return Registry.register(Registries.ITEM, id, item);
} }

View file

@ -24,21 +24,15 @@ public interface ItemGroupRegistry {
} }
static <T extends Item> T register(T item, ItemGroup group) { static <T extends Item> T register(T item, ItemGroup group) {
REGISTRY.computeIfAbsent(group, g -> new HashSet<>()).add(item); REGISTRY.computeIfAbsent(group, g -> new LinkedHashSet<>()).add(item);
return item; return item;
} }
static ItemGroup createDynamic(String name, Supplier<ItemStack> icon, Supplier<Stream<Item>> items) { static ItemGroup createDynamic(String name, Supplier<ItemStack> icon, Supplier<Stream<Item>> items) {
boolean[] reloading = new boolean[1];
return FabricItemGroup.builder(Unicopia.id(name)).entries((features, list, k) -> { return FabricItemGroup.builder(Unicopia.id(name)).entries((features, list, k) -> {
if (reloading[0]) {
return;
}
reloading[0] = true;
items.get().forEach(item -> { items.get().forEach(item -> {
list.addAll(ItemGroupRegistry.getVariations(item)); list.addAll(ItemGroupRegistry.getVariations(item));
}); });
reloading[0] = false;
}).icon(icon).build(); }).icon(icon).build();
} }

View file

@ -0,0 +1,118 @@
{
"variants": {
"face=ceiling,facing=east,powered=false": {
"model": "unicopia:block/palm_button",
"x": 180,
"y": 270
},
"face=ceiling,facing=east,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"x": 180,
"y": 270
},
"face=ceiling,facing=north,powered=false": {
"model": "unicopia:block/palm_button",
"x": 180,
"y": 180
},
"face=ceiling,facing=north,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"x": 180,
"y": 180
},
"face=ceiling,facing=south,powered=false": {
"model": "unicopia:block/palm_button",
"x": 180
},
"face=ceiling,facing=south,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"x": 180
},
"face=ceiling,facing=west,powered=false": {
"model": "unicopia:block/palm_button",
"x": 180,
"y": 90
},
"face=ceiling,facing=west,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"x": 180,
"y": 90
},
"face=floor,facing=east,powered=false": {
"model": "unicopia:block/palm_button",
"y": 90
},
"face=floor,facing=east,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"y": 90
},
"face=floor,facing=north,powered=false": {
"model": "unicopia:block/palm_button"
},
"face=floor,facing=north,powered=true": {
"model": "unicopia:block/palm_button_pressed"
},
"face=floor,facing=south,powered=false": {
"model": "unicopia:block/palm_button",
"y": 180
},
"face=floor,facing=south,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"y": 180
},
"face=floor,facing=west,powered=false": {
"model": "unicopia:block/palm_button",
"y": 270
},
"face=floor,facing=west,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"y": 270
},
"face=wall,facing=east,powered=false": {
"model": "unicopia:block/palm_button",
"uvlock": true,
"x": 90,
"y": 90
},
"face=wall,facing=east,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"uvlock": true,
"x": 90,
"y": 90
},
"face=wall,facing=north,powered=false": {
"model": "unicopia:block/palm_button",
"uvlock": true,
"x": 90
},
"face=wall,facing=north,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"uvlock": true,
"x": 90
},
"face=wall,facing=south,powered=false": {
"model": "unicopia:block/palm_button",
"uvlock": true,
"x": 90,
"y": 180
},
"face=wall,facing=south,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"uvlock": true,
"x": 90,
"y": 180
},
"face=wall,facing=west,powered=false": {
"model": "unicopia:block/palm_button",
"uvlock": true,
"x": 90,
"y": 270
},
"face=wall,facing=west,powered=true": {
"model": "unicopia:block/palm_button_pressed",
"uvlock": true,
"x": 90,
"y": 270
}
}
}

View file

@ -0,0 +1,48 @@
{
"multipart": [
{
"apply": {
"model": "unicopia:block/palm_fence_post"
}
},
{
"apply": {
"model": "unicopia:block/palm_fence_side",
"uvlock": true
},
"when": {
"north": "true"
}
},
{
"apply": {
"model": "unicopia:block/palm_fence_side",
"uvlock": true,
"y": 90
},
"when": {
"east": "true"
}
},
{
"apply": {
"model": "unicopia:block/palm_fence_side",
"uvlock": true,
"y": 180
},
"when": {
"south": "true"
}
},
{
"apply": {
"model": "unicopia:block/palm_fence_side",
"uvlock": true,
"y": 270
},
"when": {
"west": "true"
}
}
]
}

View file

@ -0,0 +1,80 @@
{
"variants": {
"facing=east,in_wall=false,open=false": {
"model": "unicopia:block/palm_fence_gate",
"uvlock": true,
"y": 270
},
"facing=east,in_wall=false,open=true": {
"model": "unicopia:block/palm_fence_gate_open",
"uvlock": true,
"y": 270
},
"facing=east,in_wall=true,open=false": {
"model": "unicopia:block/palm_fence_gate_wall",
"uvlock": true,
"y": 270
},
"facing=east,in_wall=true,open=true": {
"model": "unicopia:block/palm_fence_gate_wall_open",
"uvlock": true,
"y": 270
},
"facing=north,in_wall=false,open=false": {
"model": "unicopia:block/palm_fence_gate",
"uvlock": true,
"y": 180
},
"facing=north,in_wall=false,open=true": {
"model": "unicopia:block/palm_fence_gate_open",
"uvlock": true,
"y": 180
},
"facing=north,in_wall=true,open=false": {
"model": "unicopia:block/palm_fence_gate_wall",
"uvlock": true,
"y": 180
},
"facing=north,in_wall=true,open=true": {
"model": "unicopia:block/palm_fence_gate_wall_open",
"uvlock": true,
"y": 180
},
"facing=south,in_wall=false,open=false": {
"model": "unicopia:block/palm_fence_gate",
"uvlock": true
},
"facing=south,in_wall=false,open=true": {
"model": "unicopia:block/palm_fence_gate_open",
"uvlock": true
},
"facing=south,in_wall=true,open=false": {
"model": "unicopia:block/palm_fence_gate_wall",
"uvlock": true
},
"facing=south,in_wall=true,open=true": {
"model": "unicopia:block/palm_fence_gate_wall_open",
"uvlock": true
},
"facing=west,in_wall=false,open=false": {
"model": "unicopia:block/palm_fence_gate",
"uvlock": true,
"y": 90
},
"facing=west,in_wall=false,open=true": {
"model": "unicopia:block/palm_fence_gate_open",
"uvlock": true,
"y": 90
},
"facing=west,in_wall=true,open=false": {
"model": "unicopia:block/palm_fence_gate_wall",
"uvlock": true,
"y": 90
},
"facing=west,in_wall=true,open=true": {
"model": "unicopia:block/palm_fence_gate_wall_open",
"uvlock": true,
"y": 90
}
}
}

View file

@ -0,0 +1,10 @@
{
"variants": {
"powered=false": {
"model": "unicopia:block/palm_pressure_plate"
},
"powered=true": {
"model": "unicopia:block/palm_pressure_plate_down"
}
}
}

View file

@ -0,0 +1,13 @@
{
"variants": {
"type=bottom": {
"model": "unicopia:block/palm_slab"
},
"type=double": {
"model": "unicopia:block/palm_planks"
},
"type=top": {
"model": "unicopia:block/palm_slab_top"
}
}
}

View file

@ -0,0 +1,209 @@
{
"variants": {
"facing=east,half=bottom,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"y": 270
},
"facing=east,half=bottom,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner"
},
"facing=east,half=bottom,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"y": 270
},
"facing=east,half=bottom,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer"
},
"facing=east,half=bottom,shape=straight": {
"model": "unicopia:block/palm_stairs"
},
"facing=east,half=top,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180
},
"facing=east,half=top,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180,
"y": 90
},
"facing=east,half=top,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180
},
"facing=east,half=top,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180,
"y": 90
},
"facing=east,half=top,shape=straight": {
"model": "unicopia:block/palm_stairs",
"uvlock": true,
"x": 180
},
"facing=north,half=bottom,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"y": 180
},
"facing=north,half=bottom,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"y": 270
},
"facing=north,half=bottom,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"y": 180
},
"facing=north,half=bottom,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"y": 270
},
"facing=north,half=bottom,shape=straight": {
"model": "unicopia:block/palm_stairs",
"uvlock": true,
"y": 270
},
"facing=north,half=top,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180,
"y": 270
},
"facing=north,half=top,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180
},
"facing=north,half=top,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180,
"y": 270
},
"facing=north,half=top,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180
},
"facing=north,half=top,shape=straight": {
"model": "unicopia:block/palm_stairs",
"uvlock": true,
"x": 180,
"y": 270
},
"facing=south,half=bottom,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner"
},
"facing=south,half=bottom,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"y": 90
},
"facing=south,half=bottom,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer"
},
"facing=south,half=bottom,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"y": 90
},
"facing=south,half=bottom,shape=straight": {
"model": "unicopia:block/palm_stairs",
"uvlock": true,
"y": 90
},
"facing=south,half=top,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180,
"y": 90
},
"facing=south,half=top,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180,
"y": 180
},
"facing=south,half=top,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180,
"y": 90
},
"facing=south,half=top,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180,
"y": 180
},
"facing=south,half=top,shape=straight": {
"model": "unicopia:block/palm_stairs",
"uvlock": true,
"x": 180,
"y": 90
},
"facing=west,half=bottom,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"y": 90
},
"facing=west,half=bottom,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"y": 180
},
"facing=west,half=bottom,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"y": 90
},
"facing=west,half=bottom,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"y": 180
},
"facing=west,half=bottom,shape=straight": {
"model": "unicopia:block/palm_stairs",
"uvlock": true,
"y": 180
},
"facing=west,half=top,shape=inner_left": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180,
"y": 180
},
"facing=west,half=top,shape=inner_right": {
"model": "unicopia:block/palm_stairs_inner",
"uvlock": true,
"x": 180,
"y": 270
},
"facing=west,half=top,shape=outer_left": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180,
"y": 180
},
"facing=west,half=top,shape=outer_right": {
"model": "unicopia:block/palm_stairs_outer",
"uvlock": true,
"x": 180,
"y": 270
},
"facing=west,half=top,shape=straight": {
"model": "unicopia:block/palm_stairs",
"uvlock": true,
"x": 180,
"y": 180
}
}
}

View file

@ -145,6 +145,12 @@
"block.unicopia.palm_log": "Palm Log", "block.unicopia.palm_log": "Palm Log",
"block.unicopia.palm_wood": "Palm Wood", "block.unicopia.palm_wood": "Palm Wood",
"block.unicopia.palm_planks": "Palm Planks", "block.unicopia.palm_planks": "Palm Planks",
"block.unicopia.palm_stairs": "Palm Stairs",
"block.unicopia.palm_pressure_plate": "Palm Pressure Plate",
"block.unicopia.palm_fence": "Palm Fence",
"block.unicopia.palm_fence_gate": "Palm Fence Gate",
"block.unicopia.palm_button": "Palm Button",
"block.unicopia.palm_slab": "Palm Slab",
"block.unicopia.stripped_palm_log": "Stripped Palm Log", "block.unicopia.stripped_palm_log": "Stripped Palm Log",
"block.unicopia.stripped_palm_wood": "Stripped Palm Wood", "block.unicopia.stripped_palm_wood": "Stripped Palm Wood",
"block.unicopia.palm_leaves": "Palm Leaves", "block.unicopia.palm_leaves": "Palm Leaves",

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/button",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/button_inventory",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/button_pressed",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate_open",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate_wall",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_fence_gate_wall_open",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/fence_inventory",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/fence_post",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/fence_side",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/pressure_plate_up",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/pressure_plate_down",
"textures": {
"texture": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/slab",
"textures": {
"bottom": "unicopia:block/palm_planks",
"side": "unicopia:block/palm_planks",
"top": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/slab_top",
"textures": {
"bottom": "unicopia:block/palm_planks",
"side": "unicopia:block/palm_planks",
"top": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/stairs",
"textures": {
"bottom": "unicopia:block/palm_planks",
"side": "unicopia:block/palm_planks",
"top": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/inner_stairs",
"textures": {
"bottom": "unicopia:block/palm_planks",
"side": "unicopia:block/palm_planks",
"top": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/outer_stairs",
"textures": {
"bottom": "unicopia:block/palm_planks",
"side": "unicopia:block/palm_planks",
"top": "unicopia:block/palm_planks"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/palm_button_inventory"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/palm_fence_inventory"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/palm_fence_gate"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/palm_pressure_plate"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/palm_slab"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/palm_stairs"
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_button"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_fence_gate"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_fence"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_pressure_plate"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_slab"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_stairs"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_button"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_fence_gate"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_fence"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_pressure_plate"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_slab"
]
}

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:palm_stairs"
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_button"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_fence"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_fence_gate"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_pressure_plate"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_slab"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "unicopia:palm_stairs"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,12 @@
{
"type": "minecraft:crafting_shapeless",
"group": "wooden_button",
"ingredients": [
{
"item": "unicopia:palm_planks"
}
],
"result": {
"item": "unicopia:palm_button"
}
}

View file

@ -0,0 +1,20 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_fence",
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"W#W",
"W#W"
],
"result": {
"count": 3,
"item": "unicopia:palm_fence"
}
}

View file

@ -0,0 +1,19 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_fence_gate",
"key": {
"#": {
"item": "minecraft:stick"
},
"W": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"#W#",
"#W#"
],
"result": {
"item": "unicopia:palm_fence_gate"
}
}

View file

@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_pressure_plate",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"##"
],
"result": {
"item": "unicopia:palm_pressure_plate"
}
}

View file

@ -0,0 +1,16 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_slab",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"###"
],
"result": {
"count": 6,
"item": "unicopia:palm_slab"
}
}

View file

@ -0,0 +1,18 @@
{
"type": "minecraft:crafting_shaped",
"group": "wooden_stairs",
"key": {
"#": {
"item": "unicopia:palm_planks"
}
},
"pattern": [
"# ",
"## ",
"###"
],
"result": {
"count": 4,
"item": "unicopia:palm_stairs"
}
}