From 614ceb9213ab39121adc0d37cc17b29b39c18646 Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 23 May 2023 18:49:56 +0100 Subject: [PATCH] Added palm trees (for growing bananas) and a palm wood type --- assets/models/bananas.bbmodel | 1 + .../unicopia/block/UBlocks.java | 37 ++ .../unicopia/client/URenderers.java | 6 +- .../server/world/FernFoliagePlacer.java | 98 +++++ .../unicopia/server/world/Tree.java | 32 +- .../unicopia/server/world/UTreeGen.java | 26 ++ .../assets/unicopia/blockstates/bananas.json | 7 + .../unicopia/blockstates/palm_leaves.json | 7 + .../assets/unicopia/blockstates/palm_log.json | 16 + .../unicopia/blockstates/palm_planks.json | 7 + .../unicopia/blockstates/palm_sapling.json | 7 + .../unicopia/blockstates/palm_wood.json | 7 + .../blockstates/stripped_palm_log.json | 16 + .../blockstates/stripped_palm_wood.json | 7 + .../resources/assets/unicopia/lang/en_us.json | 7 + .../assets/unicopia/models/block/bananas.json | 350 ++++++++++++++++++ .../unicopia/models/block/palm_leaves.json | 6 + .../unicopia/models/block/palm_log.json | 7 + .../models/block/palm_log_horizontal.json | 7 + .../unicopia/models/block/palm_planks.json | 6 + .../unicopia/models/block/palm_sapling.json | 6 + .../unicopia/models/block/palm_wood.json | 6 + .../models/block/stripped_palm_log.json | 7 + .../block/stripped_palm_log_horizontal.json | 7 + .../models/block/stripped_palm_wood.json | 6 + .../unicopia/models/item/palm_leaves.json | 3 + .../assets/unicopia/models/item/palm_log.json | 3 + .../unicopia/models/item/palm_planks.json | 3 + .../unicopia/models/item/palm_sapling.json | 6 + .../unicopia/models/item/palm_wood.json | 3 + .../models/item/stripped_palm_log.json | 3 + .../models/item/stripped_palm_wood.json | 3 + .../unicopia/textures/block/bananas.png | Bin 0 -> 154 bytes .../unicopia/textures/block/palm_leaves.png | Bin 0 -> 1665 bytes .../unicopia/textures/block/palm_log.png | Bin 0 -> 1821 bytes .../unicopia/textures/block/palm_log_top.png | Bin 0 -> 1826 bytes .../unicopia/textures/block/palm_planks.png | Bin 0 -> 1633 bytes .../textures/block/stripped_palm_log.png | Bin 0 -> 1897 bytes .../textures/block/stripped_palm_log_top.png | Bin 0 -> 1803 bytes .../unicopia/textures/item/palm_sapling.png | Bin 0 -> 2564 bytes .../data/minecraft/tags/blocks/leaves.json | 1 + .../data/minecraft/tags/blocks/logs.json | 4 + .../minecraft/tags/blocks/logs_that_burn.json | 9 + .../data/minecraft/tags/blocks/planks.json | 6 + .../data/minecraft/tags/items/leaves.json | 1 + .../data/minecraft/tags/items/logs.json | 4 + .../data/minecraft/tags/items/planks.json | 6 + .../unicopia/loot_tables/blocks/bananas.json | 40 ++ .../loot_tables/blocks/palm_leaves.json | 135 +++++++ .../unicopia/loot_tables/blocks/palm_log.json | 20 + .../loot_tables/blocks/palm_planks.json | 20 + .../loot_tables/blocks/palm_sapling.json | 20 + .../loot_tables/blocks/palm_wood.json | 20 + .../loot_tables/blocks/stripped_palm_log.json | 20 + .../blocks/stripped_palm_wood.json | 20 + .../data/unicopia/recipes/palm_planks.json | 10 + .../data/unicopia/recipes/palm_wood.json | 15 + src/main/resources/unicopia.aw | 1 + 58 files changed, 1051 insertions(+), 14 deletions(-) create mode 100644 assets/models/bananas.bbmodel create mode 100644 src/main/java/com/minelittlepony/unicopia/server/world/FernFoliagePlacer.java create mode 100644 src/main/resources/assets/unicopia/blockstates/bananas.json create mode 100644 src/main/resources/assets/unicopia/blockstates/palm_leaves.json create mode 100644 src/main/resources/assets/unicopia/blockstates/palm_log.json create mode 100644 src/main/resources/assets/unicopia/blockstates/palm_planks.json create mode 100644 src/main/resources/assets/unicopia/blockstates/palm_sapling.json create mode 100644 src/main/resources/assets/unicopia/blockstates/palm_wood.json create mode 100644 src/main/resources/assets/unicopia/blockstates/stripped_palm_log.json create mode 100644 src/main/resources/assets/unicopia/blockstates/stripped_palm_wood.json create mode 100644 src/main/resources/assets/unicopia/models/block/bananas.json create mode 100644 src/main/resources/assets/unicopia/models/block/palm_leaves.json create mode 100644 src/main/resources/assets/unicopia/models/block/palm_log.json create mode 100644 src/main/resources/assets/unicopia/models/block/palm_log_horizontal.json create mode 100644 src/main/resources/assets/unicopia/models/block/palm_planks.json create mode 100644 src/main/resources/assets/unicopia/models/block/palm_sapling.json create mode 100644 src/main/resources/assets/unicopia/models/block/palm_wood.json create mode 100644 src/main/resources/assets/unicopia/models/block/stripped_palm_log.json create mode 100644 src/main/resources/assets/unicopia/models/block/stripped_palm_log_horizontal.json create mode 100644 src/main/resources/assets/unicopia/models/block/stripped_palm_wood.json create mode 100644 src/main/resources/assets/unicopia/models/item/palm_leaves.json create mode 100644 src/main/resources/assets/unicopia/models/item/palm_log.json create mode 100644 src/main/resources/assets/unicopia/models/item/palm_planks.json create mode 100644 src/main/resources/assets/unicopia/models/item/palm_sapling.json create mode 100644 src/main/resources/assets/unicopia/models/item/palm_wood.json create mode 100644 src/main/resources/assets/unicopia/models/item/stripped_palm_log.json create mode 100644 src/main/resources/assets/unicopia/models/item/stripped_palm_wood.json create mode 100644 src/main/resources/assets/unicopia/textures/block/bananas.png create mode 100644 src/main/resources/assets/unicopia/textures/block/palm_leaves.png create mode 100644 src/main/resources/assets/unicopia/textures/block/palm_log.png create mode 100644 src/main/resources/assets/unicopia/textures/block/palm_log_top.png create mode 100644 src/main/resources/assets/unicopia/textures/block/palm_planks.png create mode 100644 src/main/resources/assets/unicopia/textures/block/stripped_palm_log.png create mode 100644 src/main/resources/assets/unicopia/textures/block/stripped_palm_log_top.png create mode 100644 src/main/resources/assets/unicopia/textures/item/palm_sapling.png create mode 100644 src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json create mode 100644 src/main/resources/data/minecraft/tags/blocks/planks.json create mode 100644 src/main/resources/data/minecraft/tags/items/planks.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/bananas.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/palm_leaves.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/palm_log.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/palm_planks.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/palm_sapling.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/palm_wood.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_log.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_wood.json create mode 100644 src/main/resources/data/unicopia/recipes/palm_planks.json create mode 100644 src/main/resources/data/unicopia/recipes/palm_wood.json diff --git a/assets/models/bananas.bbmodel b/assets/models/bananas.bbmodel new file mode 100644 index 00000000..eccfa67d --- /dev/null +++ b/assets/models/bananas.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"4.5","model_format":"java_block","box_uv":false},"name":"bananas","parent":"","ambientocclusion":true,"front_gui_light":false,"visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[7,-10,9],"to":[9,-1,11],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"56d8f592-c6a1-c501-257f-4faa88dcfb9c"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[3,1,4],"to":[13,11,14],"autouv":0,"color":4,"origin":[0,0,0],"faces":{"north":{"uv":[0.25,0.25,10.25,10.25],"texture":0},"east":{"uv":[1.25,0.25,11.25,10.25],"texture":0},"south":{"uv":[2.25,0.25,12.25,10.25],"texture":0},"west":{"uv":[3.25,0.25,13.25,10.25],"texture":0},"up":{"uv":[4.25,0.25,14.25,10.25],"texture":0},"down":{"uv":[5.25,0.25,15.25,10.25],"texture":0}},"type":"cube","uuid":"d0b6c3f2-8588-4337-7ef6-76338f605ec0"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[9,-10,7],"to":[11,-1,9],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"5af475e0-c1ee-ff24-932c-1ae3810b24d3"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[7,-8,6],"to":[9,-2,8],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"e03ce583-da1d-dce4-8259-21419e21ba8e"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[5,-9,8],"to":[7,-3,10],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"3e18f06b-0a76-a8be-9515-ffae75b031a4"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[10,-6,8],"to":[12,1,10],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"98c0a81e-9591-383d-0bc6-c8b53770417a"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[9,-5,5],"to":[11,1,7],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"e6042ddf-2e72-5912-46d3-caf691e76a8f"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[6,0,3],"to":[8,6,5],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"6c0c9e35-66ad-e222-c0e6-9a6a2974e2de"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[4,-5,5],"to":[6,1,7],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"1b862e62-b464-2f93-ab26-99e3521e26c2"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[3,-5,7],"to":[5,1,9],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"845ab045-684e-45bf-a8a0-379ab569def1"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[9,-7,10],"to":[11,-1,12],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"c8537af6-4753-8af9-e973-40e3bd3f6704"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[6,-7,10],"to":[8,2,12],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"70a595ed-bc92-fb49-0a13-7bb11e23272e"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[4,-3,9],"to":[6,3,11],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"cf9afe79-b55b-aea1-2f80-73a1ab39580b"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[9,-3,11],"to":[11,3,13],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"ade62c25-ca49-df8a-fc60-22071dc6907a"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[11,-1,9],"to":[13,5,11],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"ee00fdfd-5946-3e02-fa3b-a7206a46e40a"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[7,-3,11],"to":[9,3,13],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"cd1ed9c8-3bca-8be3-ab4d-d82654ed8f43"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[8,-3,5],"to":[10,3,7],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"5e883675-b2b9-f67c-1e0c-9df59fd464cd"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[10,0,6],"to":[12,6,8],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"83a77bd2-90ea-0aa2-ab8c-8ac4209b7ad7"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[10,4,7],"to":[12,10,9],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"75c07194-b2a9-89f3-ad8f-02aca9953be3"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[8,4,7],"to":[10,10,9],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"267aabaa-3048-8189-75fa-7cdd65e87d67"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[12,5,10],"to":[14,11,12],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"0ee64810-6f38-7ab9-3188-98332d6c3add"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[7,0,6],"to":[9,6,8],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"120dc777-5fee-763c-49a5-762a3482e638"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[8,5,2],"to":[10,11,4],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"13eb643b-2765-c1d5-aa11-ec3d3293a070"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[6,-2,4],"to":[8,4,6],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"5488330f-50d3-4588-e4fe-5d3bc652479c"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[10,-3,6],"to":[12,3,8],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"4c26e4bf-aa92-3b39-0893-9376a56f192e"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[11,2,4],"to":[13,8,6],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"8817a61a-f496-e7e9-aa4e-99c56678a934"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[13,5,6],"to":[15,11,8],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"019b5357-4dba-c99c-39a6-2e644c804967"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[5,5,14],"to":[11,11,16],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"01ee0a49-8a00-203a-cc0d-fb0e19f0701e"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[1,5,6],"to":[3,11,11],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"17c5d27d-11a3-db11-2752-64d58eaeaab4"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[4,2,3],"to":[6,8,5],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"eaa5c533-025f-228e-26cc-1f2d5453f895"},{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[5,2,6],"to":[7,8,8],"autouv":0,"color":4,"origin":[0,0,0],"uv_offset":[0,2],"faces":{"north":{"uv":[0,6,2,12],"texture":0},"east":{"uv":[2,6,4,12],"texture":0},"south":{"uv":[0,0,2,6],"texture":0},"west":{"uv":[2,0,4,6],"texture":0},"up":{"uv":[0,0,2,2],"texture":null},"down":{"uv":[2,12,0,14],"texture":0}},"type":"cube","uuid":"866f17ae-dc8d-95e6-09a2-707ed95bcaf4"}],"outliner":["d0b6c3f2-8588-4337-7ef6-76338f605ec0",{"name":"bundle","origin":[0,0,0],"color":0,"uuid":"93ad0b20-17ab-a7f7-9c8a-c05ba4ef0db9","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["5e883675-b2b9-f67c-1e0c-9df59fd464cd","83a77bd2-90ea-0aa2-ab8c-8ac4209b7ad7","75c07194-b2a9-89f3-ad8f-02aca9953be3","267aabaa-3048-8189-75fa-7cdd65e87d67","0ee64810-6f38-7ab9-3188-98332d6c3add","120dc777-5fee-763c-49a5-762a3482e638","13eb643b-2765-c1d5-aa11-ec3d3293a070","5488330f-50d3-4588-e4fe-5d3bc652479c","4c26e4bf-aa92-3b39-0893-9376a56f192e","8817a61a-f496-e7e9-aa4e-99c56678a934","019b5357-4dba-c99c-39a6-2e644c804967","01ee0a49-8a00-203a-cc0d-fb0e19f0701e","17c5d27d-11a3-db11-2752-64d58eaeaab4","eaa5c533-025f-228e-26cc-1f2d5453f895","866f17ae-dc8d-95e6-09a2-707ed95bcaf4"]},{"name":"bundle","origin":[0,0,0],"color":0,"uuid":"1a390fa9-e72d-839f-cf31-13c59d06eda6","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["56d8f592-c6a1-c501-257f-4faa88dcfb9c","c8537af6-4753-8af9-e973-40e3bd3f6704","ade62c25-ca49-df8a-fc60-22071dc6907a","cd1ed9c8-3bca-8be3-ab4d-d82654ed8f43","ee00fdfd-5946-3e02-fa3b-a7206a46e40a","70a595ed-bc92-fb49-0a13-7bb11e23272e","e03ce583-da1d-dce4-8259-21419e21ba8e","3e18f06b-0a76-a8be-9515-ffae75b031a4","5af475e0-c1ee-ff24-932c-1ae3810b24d3","98c0a81e-9591-383d-0bc6-c8b53770417a","e6042ddf-2e72-5912-46d3-caf691e76a8f","6c0c9e35-66ad-e222-c0e6-9a6a2974e2de","1b862e62-b464-2f93-ab26-99e3521e26c2","845ab045-684e-45bf-a8a0-379ab569def1","cf9afe79-b55b-aea1-2f80-73a1ab39580b"]}],"textures":[{"path":"C:\\Users\\Chris Albers\\Documents\\GitRepos\\minecraft_mods\\Unicopia\\assets\\models\\bananas.png","name":"bananas.png","folder":"","namespace":"","id":"0","particle":true,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"f0b88499-9bfc-82a5-b251-ebc6fadf0d47","relative_path":"../bananas.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAGlJREFUOE9jzN/P+f/HJwYGDj4GBhjNwICbjS7HSKoByJaADBupBoD8Dgp0ksIAWRMoIGF8ogIRPeqQ+fQzAFfiwnABzG/I/oT4GDV1wvgoBpCShCk2AJakcQYisa4hKxZITgfoAYqcIwGek8NFn4QNPwAAAABJRU5ErkJggg=="}]} \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java index 3587868d..ed0eec30 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -10,14 +10,17 @@ import com.minelittlepony.unicopia.server.world.UTreeGen; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricMaterialBuilder; +import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; import net.fabricmc.fabric.api.registry.StrippableBlockRegistry; import net.minecraft.block.*; +import net.minecraft.block.AbstractBlock.Settings; import net.minecraft.entity.EntityType; import net.minecraft.item.*; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShapes; import net.minecraft.registry.Registry; import net.minecraft.registry.Registries; import net.minecraft.world.BlockView; @@ -45,6 +48,17 @@ 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_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_WOOD = register("palm_wood", 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 STRIPPED_PALM_LOG = register("stripped_palm_log", createLogBlock(MapColor.OFF_WHITE, MapColor.OFF_WHITE), 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 WEATHER_VANE = register("weather_vane", new WeatherVaneBlock(FabricBlockSettings.of(Material.METAL, MapColor.BLACK).requiresTool().strength(3.0f, 6.0f).sounds(BlockSoundGroup.METAL).nonOpaque()), ItemGroups.TOOLS); Block GREEN_APPLE_LEAVES = register("green_apple_leaves", new FruitBearingBlock(FabricBlockSettings.copy(Blocks.OAK_LEAVES), @@ -102,8 +116,19 @@ public interface UBlocks { static void bootstrap() { StrippableBlockRegistry.register(ZAP_LOG, STRIPPED_ZAP_LOG); + StrippableBlockRegistry.register(PALM_LOG, STRIPPED_PALM_LOG); StrippableBlockRegistry.register(ZAP_WOOD, STRIPPED_ZAP_WOOD); + StrippableBlockRegistry.register(PALM_WOOD, STRIPPED_PALM_WOOD); TRANSLUCENT_BLOCKS.add(WEATHER_VANE); + TintedBlock.REGISTRY.add(PALM_LEAVES); + + FlammableBlockRegistry.getDefaultInstance().add(PALM_LEAVES, 30, 60); + FlammableBlockRegistry.getDefaultInstance().add(PALM_LOG, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(PALM_WOOD, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(STRIPPED_PALM_LOG, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(STRIPPED_PALM_WOOD, 5, 5); + FlammableBlockRegistry.getDefaultInstance().add(PALM_PLANKS, 5, 20); + FlammableBlockRegistry.getDefaultInstance().add(BANANAS, 5, 20); UBlockEntities.bootstrap(); } @@ -112,6 +137,18 @@ public interface UBlocks { 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; } diff --git a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java index c23f0271..76adb3d4 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java +++ b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java @@ -136,7 +136,11 @@ public interface URenderers { color = BiomeColors.getFoliageColor(view, pos); } - return ((TintedBlock)state.getBlock()).getTint(state, view, pos, color); + if (state.getBlock() instanceof TintedBlock block) { + return block.getTint(state, view, pos, color); + } + + return color; }; ColorProviderRegistry.BLOCK.register(tintedProvider, TintedBlock.REGISTRY.stream().toArray(Block[]::new)); diff --git a/src/main/java/com/minelittlepony/unicopia/server/world/FernFoliagePlacer.java b/src/main/java/com/minelittlepony/unicopia/server/world/FernFoliagePlacer.java new file mode 100644 index 00000000..15d76b37 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/server/world/FernFoliagePlacer.java @@ -0,0 +1,98 @@ +package com.minelittlepony.unicopia.server.world; + +import java.util.function.BiConsumer; + +import com.minelittlepony.unicopia.Unicopia; +import com.minelittlepony.unicopia.block.UBlocks; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import net.minecraft.block.BlockState; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.intprovider.IntProvider; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.TestableWorld; +import net.minecraft.world.gen.feature.TreeFeatureConfig; +import net.minecraft.world.gen.foliage.FoliagePlacer; +import net.minecraft.world.gen.foliage.FoliagePlacerType; + +public class FernFoliagePlacer extends FoliagePlacer { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> fillFoliagePlacerFields(instance).apply(instance, FernFoliagePlacer::new)); + public static final FoliagePlacerType TYPE = Registry.register(Registries.FOLIAGE_PLACER_TYPE, Unicopia.id("fern_foliage_placer"), new FoliagePlacerType<>(CODEC)); + + public FernFoliagePlacer(IntProvider radius, IntProvider offset) { + super(radius, offset); + } + + @Override + protected FoliagePlacerType getType() { + return TYPE; + } + + @Override + protected void generate(TestableWorld world, BiConsumer placer, Random random, + TreeFeatureConfig config, int trunkHeight, TreeNode node, int foliageHeight, int radius, int offset) { + + BlockPos center = node.getCenter(); + + // central leaves blob + for (int y = offset; y >= offset - foliageHeight; --y) { + int rad = Math.max(radius + node.getFoliageRadius() - 3 - y / 2, 0); + generateSquare(world, placer, random, config, center, rad, y, node.isGiantTrunk()); + } + + BlockPos.Mutable pos = new BlockPos.Mutable(); + int fanY = 0; + for (int outset = 1; outset < 6; outset++) { + for (int j = 0; j < 2; j++) { + if (outset < 4) { + // diagonal frons + for (int z = 0; z < 2; z++) { + placeFoliageBlock(world, placer, random, config, pos.set(center, outset, fanY, outset + z)); + placeFoliageBlock(world, placer, random, config, pos.set(center, outset, fanY, -outset + z)); + placeFoliageBlock(world, placer, random, config, pos.set(center, -outset + z, fanY, outset)); + placeFoliageBlock(world, placer, random, config, pos.set(center, -outset + z, fanY, -outset)); + } + } + // adjacent frons + placeFoliageBlock(world, placer, random, config, pos.set(center, outset, fanY, 0)); + placeFoliageBlock(world, placer, random, config, pos.set(center, 0, fanY, outset)); + placeFoliageBlock(world, placer, random, config, pos.set(center, 0, fanY, -outset)); + placeFoliageBlock(world, placer, random, config, pos.set(center, -outset, fanY, 0)); + + if (j != 0 || outset % 2 != 0) break; + fanY--; + } + + // fruit + if (outset == 1) { + BlockState fruitState = UBlocks.BANANAS.getDefaultState(); + if (random.nextInt(5) == 0) { + placer.accept(pos.set(center, outset, fanY - 1, 0), fruitState); + } + if (random.nextInt(5) == 0) { + placer.accept(pos.set(center, -outset, fanY - 1, 0), fruitState); + } + if (random.nextInt(5) == 0) { + placer.accept(pos.set(center, 0, fanY - 1, outset), fruitState); + } + if (random.nextInt(5) == 0) { + placer.accept(pos.set(center, 0, fanY - 1, -outset), fruitState); + } + } + } + } + + @Override + public int getRandomHeight(Random random, int trunkHeight, TreeFeatureConfig config) { + return 1; + } + + @Override + protected boolean isInvalidForLeaves(Random random, int dx, int y, int dz, int radius, boolean giantTrunk) { + return dx == radius && dz == radius && (random.nextInt(2) == 0 || y == 0); + } + +} diff --git a/src/main/java/com/minelittlepony/unicopia/server/world/Tree.java b/src/main/java/com/minelittlepony/unicopia/server/world/Tree.java index f1d81d4c..7f4f385b 100644 --- a/src/main/java/com/minelittlepony/unicopia/server/world/Tree.java +++ b/src/main/java/com/minelittlepony/unicopia/server/world/Tree.java @@ -1,8 +1,9 @@ package com.minelittlepony.unicopia.server.world; import java.util.*; +import java.util.function.BiFunction; +import java.util.function.Function; import java.util.function.Predicate; -import java.util.function.Supplier; import com.minelittlepony.unicopia.block.UBlocks; @@ -65,6 +66,7 @@ public record Tree ( private Block logType = Blocks.OAK_LOG; private Block leavesType = Blocks.OAK_LEAVES; private Optional saplingId = Optional.empty(); + private BiFunction saplingConstructor = SaplingBlock::new; private final TrunkPlacer trunkPlacer; private final FoliagePlacer foliagePlacer; @@ -73,7 +75,7 @@ public record Tree ( private Optional> selector = Optional.empty(); private Optional countModifier = Optional.empty(); - private Optional> configSupplier = Optional.empty(); + private Function configParameters = Function.identity(); private Optional size = Optional.empty(); private Builder(Identifier id, TrunkPlacer trunkPlacer, FoliagePlacer foliagePlacer) { @@ -97,6 +99,11 @@ public record Tree ( return this; } + public Builder sapling(BiFunction constructor) { + saplingConstructor = constructor; + return this; + } + public Builder count(int count, float extraChance, int extraCount) { countModifier = Optional.of(PlacedFeatures.createCountExtraModifier(count, extraChance, extraCount)); return this; @@ -107,8 +114,8 @@ public record Tree ( return this; } - public Builder shape(Supplier shape) { - this.configSupplier = Optional.of(shape); + public Builder configure(Function shape) { + this.configParameters = shape; return this; } @@ -119,18 +126,17 @@ public record Tree ( public Tree build() { RegistryKey> configuredFeatureId = RegistryKey.of(RegistryKeys.CONFIGURED_FEATURE, id); - Tree tree = new Tree(id, configSupplier.map(Supplier::get) - .orElseGet(() -> new TreeFeatureConfig.Builder( - BlockStateProvider.of(logType), - trunkPlacer, - BlockStateProvider.of(leavesType), - foliagePlacer, - size.get() - ).forceDirt()), configuredFeatureId, selector.map(selector -> { + Tree tree = new Tree(id, configParameters.apply(new TreeFeatureConfig.Builder( + BlockStateProvider.of(logType), + trunkPlacer, + BlockStateProvider.of(leavesType), + foliagePlacer, + size.get() + )), configuredFeatureId, selector.map(selector -> { RegistryKey i = RegistryKey.of(RegistryKeys.PLACED_FEATURE, id); BiomeModifications.addFeature(selector, GenerationStep.Feature.VEGETAL_DECORATION, i); return i; - }), saplingId.map(id -> UBlocks.register(id, new SaplingBlock(new SaplingGenerator() { + }), saplingId.map(id -> UBlocks.register(id, saplingConstructor.apply(new SaplingGenerator() { @Override protected RegistryKey> getTreeFeature(Random rng, boolean flowersNearby) { return configuredFeatureId; diff --git a/src/main/java/com/minelittlepony/unicopia/server/world/UTreeGen.java b/src/main/java/com/minelittlepony/unicopia/server/world/UTreeGen.java index a9723e95..04cc4bb5 100644 --- a/src/main/java/com/minelittlepony/unicopia/server/world/UTreeGen.java +++ b/src/main/java/com/minelittlepony/unicopia/server/world/UTreeGen.java @@ -4,12 +4,17 @@ import com.minelittlepony.unicopia.Unicopia; import com.minelittlepony.unicopia.block.UBlocks; import net.minecraft.block.*; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.intprovider.ConstantIntProvider; import net.minecraft.util.math.intprovider.UniformIntProvider; import net.minecraft.registry.Registries; +import net.minecraft.registry.tag.BiomeTags; import net.minecraft.registry.tag.BlockTags; +import net.minecraft.world.BlockView; +import net.minecraft.world.gen.feature.TreeFeatureConfig; import net.minecraft.world.gen.foliage.BlobFoliagePlacer; import net.minecraft.world.gen.foliage.JungleFoliagePlacer; +import net.minecraft.world.gen.stateprovider.BlockStateProvider; import net.minecraft.world.gen.trunk.StraightTrunkPlacer; import net.minecraft.world.gen.trunk.UpwardsBranchingTrunkPlacer; @@ -26,6 +31,7 @@ public interface UTreeGen { 3 ) ) + .configure(TreeFeatureConfig.Builder::forceDirt) .log(UBlocks.ZAP_LOG) .leaves(UBlocks.ZAP_LEAVES) .sapling(Unicopia.id("zapling")) @@ -36,12 +42,32 @@ public interface UTreeGen { Tree GREEN_APPLE_TREE = createAppleTree("green_apple", UBlocks.GREEN_APPLE_LEAVES, 2); Tree SWEET_APPLE_TREE = createAppleTree("sweet_apple", UBlocks.SWEET_APPLE_LEAVES, 3); Tree SOUR_APPLE_TREE = createAppleTree("sour_apple", UBlocks.SOUR_APPLE_LEAVES, 5); + Tree BANANA_TREE = Tree.Builder.create(Unicopia.id("banana_tree"), + new StraightTrunkPlacer(4, 5, 3), + new FernFoliagePlacer(ConstantIntProvider.create(4), ConstantIntProvider.create(0)) + ) + .farmingCondition(6, 0, 8) + .log(UBlocks.PALM_LOG) + .leaves(UBlocks.PALM_LEAVES) + .sapling(Unicopia.id("palm_sapling")).sapling((generator, settings) -> { + return new SaplingBlock(generator, settings) { + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + return floor.isIn(BlockTags.SAND); + } + }; + }) + .configure(builder -> builder.dirtProvider(BlockStateProvider.of(Blocks.SAND))) + .biomes(selector -> selector.hasTag(BiomeTags.IS_BEACH) || selector.hasTag(BiomeTags.IS_JUNGLE)) + .count(2, 0.01F, 1) + .build(); static Tree createAppleTree(String name, Block leaves, int preferredDensity) { return Tree.Builder.create(Unicopia.id(name + "_tree"), new StraightTrunkPlacer(4, 6, 2), new BlobFoliagePlacer(ConstantIntProvider.create(3), ConstantIntProvider.create(0), 3) ) + .configure(TreeFeatureConfig.Builder::forceDirt) .farmingCondition(1, preferredDensity - 2, preferredDensity) .log(Blocks.OAK_LOG) .leaves(leaves) diff --git a/src/main/resources/assets/unicopia/blockstates/bananas.json b/src/main/resources/assets/unicopia/blockstates/bananas.json new file mode 100644 index 00000000..3e967654 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/bananas.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "unicopia:block/bananas" + } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/palm_leaves.json b/src/main/resources/assets/unicopia/blockstates/palm_leaves.json new file mode 100644 index 00000000..cbba202c --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/palm_leaves.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "unicopia:block/palm_leaves" + } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/palm_log.json b/src/main/resources/assets/unicopia/blockstates/palm_log.json new file mode 100644 index 00000000..4b9b3f6f --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/palm_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "unicopia:block/palm_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "unicopia:block/palm_log" + }, + "axis=z": { + "model": "unicopia:block/palm_log_horizontal", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/palm_planks.json b/src/main/resources/assets/unicopia/blockstates/palm_planks.json new file mode 100644 index 00000000..c01341f2 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/palm_planks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "unicopia:block/palm_planks" + } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/palm_sapling.json b/src/main/resources/assets/unicopia/blockstates/palm_sapling.json new file mode 100644 index 00000000..12d87308 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/palm_sapling.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "unicopia:block/palm_sapling" + } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/palm_wood.json b/src/main/resources/assets/unicopia/blockstates/palm_wood.json new file mode 100644 index 00000000..65294bd0 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/palm_wood.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "unicopia:block/palm_wood" + } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/stripped_palm_log.json b/src/main/resources/assets/unicopia/blockstates/stripped_palm_log.json new file mode 100644 index 00000000..43cf368e --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/stripped_palm_log.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "unicopia:block/stripped_palm_log_horizontal", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "unicopia:block/stripped_palm_log" + }, + "axis=z": { + "model": "unicopia:block/stripped_palm_log_horizontal", + "x": 90 + } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/stripped_palm_wood.json b/src/main/resources/assets/unicopia/blockstates/stripped_palm_wood.json new file mode 100644 index 00000000..9c1bee35 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/stripped_palm_wood.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "unicopia:block/stripped_palm_wood" + } + } +} diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 78a014bc..09be9e94 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -140,6 +140,13 @@ "block.unicopia.zap_leaves": "Zap Apple Leaves", "block.unicopia.zap_apple": "Zap Apple", "block.unicopia.zap_bulb": "Unripened Zap Apple", + "block.unicopia.palm_sapling": "Palm Sapling", + "block.unicopia.palm_log": "Palm Log", + "block.unicopia.palm_wood": "Palm Wood", + "block.unicopia.palm_planks": "Palm Planks", + "block.unicopia.stripped_palm_log": "Stripped Palm Log", + "block.unicopia.stripped_palm_wood": "Stripped Palm Wood", + "block.unicopia.palm_leaves": "Palm Leaves", "block.unicopia.apple_pie": "Apple Pie", "block.unicopia.weather_vane": "Weather Vane", diff --git a/src/main/resources/assets/unicopia/models/block/bananas.json b/src/main/resources/assets/unicopia/models/block/bananas.json new file mode 100644 index 00000000..92ecb5cd --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/bananas.json @@ -0,0 +1,350 @@ +{ + "textures": { + "bananas": "unicopia:block/bananas", + "particle": "#bananas" + }, + "elements": [ + { + "from": [3, 1, 4], + "to": [13, 11, 14], + "faces": { + "north": {"uv": [0.25, 0.25, 10.25, 10.25], "texture": "#bananas"}, + "east": {"uv": [1.25, 0.25, 11.25, 10.25], "texture": "#bananas"}, + "south": {"uv": [2.25, 0.25, 12.25, 10.25], "texture": "#bananas"}, + "west": {"uv": [3.25, 0.25, 13.25, 10.25], "texture": "#bananas"}, + "up": {"uv": [4.25, 0.25, 14.25, 10.25], "texture": "#bananas"}, + "down": {"uv": [5.25, 0.25, 15.25, 10.25], "texture": "#bananas"} + } + }, + { + "from": [8, -3, 5], + "to": [10, 3, 7], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [10, 0, 6], + "to": [12, 6, 8], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [10, 4, 7], + "to": [12, 10, 9], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [8, 4, 7], + "to": [10, 10, 9], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [12, 5, 10], + "to": [14, 11, 12], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [7, 0, 6], + "to": [9, 6, 8], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [8, 5, 2], + "to": [10, 11, 4], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [6, -2, 4], + "to": [8, 4, 6], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [10, -3, 6], + "to": [12, 3, 8], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [11, 2, 4], + "to": [13, 8, 6], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [13, 5, 6], + "to": [15, 11, 8], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [5, 5, 14], + "to": [11, 11, 16], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [1, 5, 6], + "to": [3, 11, 11], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [4, 2, 3], + "to": [6, 8, 5], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [5, 2, 6], + "to": [7, 8, 8], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [7, -10, 9], + "to": [9, -1, 11], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [9, -7, 10], + "to": [11, -1, 12], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [9, -3, 11], + "to": [11, 3, 13], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [7, -3, 11], + "to": [9, 3, 13], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [11, -1, 9], + "to": [13, 5, 11], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [6, -7, 10], + "to": [8, 2, 12], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [7, -8, 6], + "to": [9, -2, 8], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [5, -9, 8], + "to": [7, -3, 10], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [9, -10, 7], + "to": [11, -1, 9], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [10, -6, 8], + "to": [12, 1, 10], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [9, -5, 5], + "to": [11, 1, 7], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [6, 0, 3], + "to": [8, 6, 5], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [4, -5, 5], + "to": [6, 1, 7], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [3, -5, 7], + "to": [5, 1, 9], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + }, + { + "from": [4, -3, 9], + "to": [6, 3, 11], + "faces": { + "north": {"uv": [0, 6, 2, 12], "texture": "#bananas"}, + "east": {"uv": [2, 6, 4, 12], "texture": "#bananas"}, + "south": {"uv": [0, 0, 2, 6], "texture": "#bananas"}, + "west": {"uv": [2, 0, 4, 6], "texture": "#bananas"}, + "down": {"uv": [2, 12, 0, 14], "texture": "#bananas"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/palm_leaves.json b/src/main/resources/assets/unicopia/models/block/palm_leaves.json new file mode 100644 index 00000000..0e2acec2 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/palm_leaves.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/leaves", + "textures": { + "all": "unicopia:block/palm_leaves" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/palm_log.json b/src/main/resources/assets/unicopia/models/block/palm_log.json new file mode 100644 index 00000000..009b7de2 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/palm_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "unicopia:block/palm_log_top", + "side": "unicopia:block/palm_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/palm_log_horizontal.json b/src/main/resources/assets/unicopia/models/block/palm_log_horizontal.json new file mode 100644 index 00000000..63718a37 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/palm_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "unicopia:block/palm_log_top", + "side": "unicopia:block/palm_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/palm_planks.json b/src/main/resources/assets/unicopia/models/block/palm_planks.json new file mode 100644 index 00000000..07e952a7 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/palm_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/palm_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/palm_sapling.json b/src/main/resources/assets/unicopia/models/block/palm_sapling.json new file mode 100644 index 00000000..d9718e2e --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/palm_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "unicopia:item/palm_sapling" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/palm_wood.json b/src/main/resources/assets/unicopia/models/block/palm_wood.json new file mode 100644 index 00000000..67ea6997 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/palm_wood.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/palm_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/stripped_palm_log.json b/src/main/resources/assets/unicopia/models/block/stripped_palm_log.json new file mode 100644 index 00000000..ba3c1d65 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/stripped_palm_log.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "unicopia:block/stripped_palm_log_top", + "side": "unicopia:block/stripped_palm_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/stripped_palm_log_horizontal.json b/src/main/resources/assets/unicopia/models/block/stripped_palm_log_horizontal.json new file mode 100644 index 00000000..68fa26c0 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/stripped_palm_log_horizontal.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column_horizontal", + "textures": { + "end": "unicopia:block/stripped_palm_log_top", + "side": "unicopia:block/stripped_palm_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/stripped_palm_wood.json b/src/main/resources/assets/unicopia/models/block/stripped_palm_wood.json new file mode 100644 index 00000000..4436d592 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/stripped_palm_wood.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/stripped_palm_log" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/palm_leaves.json b/src/main/resources/assets/unicopia/models/item/palm_leaves.json new file mode 100644 index 00000000..72642199 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/palm_leaves.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/palm_leaves" +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/palm_log.json b/src/main/resources/assets/unicopia/models/item/palm_log.json new file mode 100644 index 00000000..90c7e485 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/palm_log.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/palm_log" +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/palm_planks.json b/src/main/resources/assets/unicopia/models/item/palm_planks.json new file mode 100644 index 00000000..ed53adda --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/palm_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/palm_planks" +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/palm_sapling.json b/src/main/resources/assets/unicopia/models/item/palm_sapling.json new file mode 100644 index 00000000..360c3260 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/palm_sapling.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/palm_sapling" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/palm_wood.json b/src/main/resources/assets/unicopia/models/item/palm_wood.json new file mode 100644 index 00000000..d453bdfd --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/palm_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/palm_wood" +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/stripped_palm_log.json b/src/main/resources/assets/unicopia/models/item/stripped_palm_log.json new file mode 100644 index 00000000..f22f8113 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/stripped_palm_log.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/stripped_palm_log" +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/stripped_palm_wood.json b/src/main/resources/assets/unicopia/models/item/stripped_palm_wood.json new file mode 100644 index 00000000..1208e15f --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/stripped_palm_wood.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/stripped_palm_wood" +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/textures/block/bananas.png b/src/main/resources/assets/unicopia/textures/block/bananas.png new file mode 100644 index 0000000000000000000000000000000000000000..52346295b161f3b1ace1a589d0ce1cd46c57a642 GIT binary patch literal 154 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|iJmTwAr`&KXYQZ>`B<2lU7oom zCE>s!hcshD0mccXLQ5GXdE|KQ?F5%IF5;8RU@ zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1Yuvg9ZX{O1&N1SBDr{+tfeupaxWiowvbSEsqH%V3dy6>#5f}Xx)0>$QLdf%vqp521XC0 zz1d}JP4cGGIQOIOh_(fGzTwRde6!Qs20tS5!x2i`?5wrZ`{UQQwc?wcS@qc_8Y}s+ z*P+Hyj-E_Rk{CLcS!qtbEPZ#hAkFKjvjU@w&N@lU5CDO60|NyjG^ocrLzWN?R&?@4 z%t(jLlf!_SGyxe!h72@x6sV9Vq>PnFtTo>YtZ{J6 zMaI)CB_u#FS#knRpeR@w!^SG(j28|?CN|7$*|F!q(ULWmt+mefT8xgIaqO&f&b#2E zCvQA^>z(&L_^1K~l3L|pg9|={5Tk4w#dDO^(MK^POq5LGWRpuig%q>UC!5UKW|w^q zIjVw%iYZ)damANVVudPHs-|+a)m2|ZjZLW5sF}viHrIR$El$)9RMiJ&PvpL%1{Z1q zm^v^sGHIYDX6J?r=yJjxGeHau2;#0IAcV$_nf71|cH~sYOb3*zV3a7igHxa*CJ34e z$PFfT3%LhwO6vYkal;)s)uHPQ9yS?p%{EH=>KiUdAzqg0_)Qwzi!;Z(P8$D{8FH4%E_m zhr3#>C9#ZQL8DuR6}Pu@>F6l}e|ZIKk9Z6c+YuR>5pJ>dGUhmJ+dQ=Rs5TYe2^B}>F+9FKdR)y|BU`Wjf(W-l6Ho{8UyujbL|5$z0Ul!5GC z!ZFNfLU6;_lcmmVE#s=H@4jcwuR#(2z+;f+?sf{Rhi$P9CjU2biM9_Wc|XF36Sb$@y)gZEs;BPi zgDHXeLjDr(*c>)yy|7>jwkf7Z;( zaj29^8#~X?9{0c|yK8W#eY|q?p_{9G;zO#pBR?)E^?}#Awchl7BC;-lT)zAo`IOL~ zZ?cc_E~@=-F>Y)9Ggo(Na!?bN`8(pJ1b(O<`SBOje=LftuYVyg@&EtCi*qFFE$H+6^F?uG(I!sq9516B17)6HPdM+Y4lNr+(TJD5R7MIwIcL$LqyMe< zI^22-1-0J7w9QBV^+xoNl)5&@Ig;6y4aWn~LZw~yQiIg4#mw>#uUk+IYOPsb00000 LNkvXXu0mjfH)S8i literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/block/palm_log.png b/src/main/resources/assets/unicopia/textures/block/palm_log.png new file mode 100644 index 0000000000000000000000000000000000000000..846e8f0d3d3c5324cf8ee42bea5e75b1eabd348b GIT binary patch literal 1821 zcmV+&2jcjNP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1YwlH@21{O1&V1SBC4$HCZ+*c;68H+fcfxq4z_ zckHNw;3X+DCG4(Wf8XveJd^{wpvhv6(c=j@WG?8Ke?8Z1v-fxF2mEM`(OyOF+r;V- z-cRF5`LBtm#{dmxQ z*9H+G`h^wzVs120Ls8m4R)G+@myWapyx#W*#Nv>ERSjlCfW;rO`5dlX7KLwt%xWES}AXPr$B?plRa*Ug8>`Bzuvho;4 z3V{ffC<)YLDc~vu4bg=Z3>qpb8dNoEQq!y@N(@nBj48HUEJ;#Gnqo@HQclIhf~iGI zW|pnE%vq4DnqyAca?Yi|Xu-(^yNeYJ9DK+T4n5+L4mKV^;+L_OC(FG}8;nFK!>9Q+d<%ZO5xx=k@ywh!WzRPBlmW#zs!TmoKgps$q2!l&Dl8J zM1dYoWvf<35K!W@Y&PRkI}5w+@`A-*Glu1qKj*-6#XU@TOWh9_pxrXLc%k_M!}72j znDg+wo<6PM!DQ=(oZU9Q;Cq3-$@&@msf?)EX<0l>uz|}vBfleLX~c!6I37Mee4Qo) znLO6k=wvfB1nH4+bEwub^ozvZiKdvkyV6sbS6iD|271 zec#`<_g$`STUin|mXyZ&ypj?dQ=e0kH7yp^)iB!%t%%^w`cH zBR_C)a6R3C#-4<~x4Sg#%t_O-<-r>8$Tah@OoI@o-K(t1N~lL(*e=J(jo`DqGSa_S zjLb&nx0lQnnI?uxr`p*0oz_ z-v-BWbo;reg3_*)jvuw_Aj&nrQYC1ejG4%+#IsoR{2ofO*|Vk>v<{e#OO&TLcJa37eWJ8N_H_v_t?Yj={PWkq*J3|2t$oewz91JQ`B5Bx zN|*N=ryh=PU0^@*e18Hw42(;+r3XH@vik>irHc;sSw<%S00GrWL_t(I%WaceZrd;r zMGwWHBu2G`1PJ=ot#u7uOSf4djhx8hTm7KL+C>Qn1R>s;`xvV4KY#4mMZ&Tnwx{bg z>;RBr20)AkKwATVe_N5K9z7Z)y9j{&dL}N86e=jM9z6{e@P0*4LoFCHGF5PP5z(U| zZxMfSln^N{vF8H7o^E?C6rWJKLuo}Rg?_J$#9tg@H02slS}}cl=3u4AO8NdAFOK-> zDIt?$M(!yB2k-#rEmDAP6yoa8Uq&P?+XF>rTPqv=x6n-@z;Pd7Up7Q$+q$G> zBP|RsPt&?Z!0Bclvdc+ zQ!`F_jsJbc{rW%;hOXBw;u_<{J(wi3ZD4>Da-GCwBfEr>4m}MF=Ml+Ud@yO>_d2dm zJ^!vU3QDO5le@V3W|B67eLb<4Li}`~XkXd_3NX`v%$DL4arIS#d6{Z7s&*P*Px!Z$ z_~Ghs-Ih6xO}pxaJtRc+!f+njrNiMvLb?Wq+u*b}VGY_E{KfGHD3Bx%Bg?BX00000 LNkvXXu0mjf3@vdH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/block/palm_log_top.png b/src/main/resources/assets/unicopia/textures/block/palm_log_top.png new file mode 100644 index 0000000000000000000000000000000000000000..7746f4d6e8378c5aa029ddf095fa078eaa40f961 GIT binary patch literal 1826 zcmV+-2i^FIP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvj>RYp{O1&N1Z-oL;}A%sxxpNNiZyvlw=_$l z*C59+rpjf~=KSl=%lv_hQexvYM4!C3xLk6HGbYjA*Ez>z?bYTEKbkh$USwV#tQq0{ zW@n6oQHF7^CoPaXUhsRQZ+6l*yXsh+H8vV z-4-Qq;v!Z^oDnCEE)J5UN)(pDrwFXPbD_R&>dO_1Shx~AnGlTdM!(IP{MY+ypzA6P zBEs$$R>+IF(LfDFX@B7bLg-p`q#fXOzh590K^(jq%n=*R_81`!rMtGobfN{0iqVai zL!AKt5!O~DLjne@CsFcb19Kn(juHH1WX@t7AE1C#xgtw;A|B*KZfoP6K;4&>hZzzA z5h`8+s7aE+m2>L6alu8@P*zc=s$PReO`5%U=hb^3eA8kM5?s*WLkKaXkfTHwHToE0 zj45W5I0>|>$)}KFN-1Y7nh`nU?Hn@<2On~{Ll1w1BOd9<1?5v*(c()ev80ks2FBPC7!QpB6f`%^Y$WHnF=rZQHZfG8j4ZX0Q>ifq2Hi=l7j5ot z=012c(EY#Vji1b!M&19xoN3g3VeXT+FRazp-%Hb>MPq9+Y@k|!{9NXk`LI$BwtWt8 zw2v7j&7s@Swt$6_Q%0NW4?XDb7R1m#5sKPPkbCWu=(fu>-fr?6F3yiIKAQCq;ySz0 zy7i(+9$5j83w?1sw(n!??-`K8V?$`Z!`4i7tQm{T$H-Lt+^fC)A2H2K@P=%goetnn zKqAp0Jyy_kdeqa*cgHOa0@K>e#$X_bmV?@AGnXE=<@G)eU(=kI$>*^lY9~&cX^G*m zDt&F#lc2H&Xzt=z;^Or<5U7Rlyu*)OAm;B0fZfFUVAVW*l*SV5jyg`zfb7idU-* z$Vhc!={1iT+QJ4xN9{Vdt9d{J9c&5UU~gb6-%ft)(d&)m1Gp(7F3|I+H!n4Dopl5n z&p6gSb5m=c8jGvG%dv`2WFlaF8eV0hWIkb=nt=N56uvxr{r9lz1`(H<9qW<$99 z)R(=AodqcP(7YSo6F~FW@)zme$?Zy7^@D#qhADOyO%vHJ+*_u%Lbeij?!tNJw+=09 zWM*{Y*sM2QlaNG{I9GmbwPQ3tJ=h%_#WYVZw3-{WXI3pOGq5-(yHC}&j>f6j1tkBtJuJlmTenlMuo>X$v}?8h#h__7+i$~ew;k?+oS+w81t zyR`aG$Gc>Vq>;;!;-$NQ&pf$IQsT#+KTe3$>!^49k7rXI_>XFpda3c_q`22GvxUCo zHT~c}1qnxDb8!2pAqXt*mvX(e_tQuUf z!Dx&SgyQh_rN%G4k-c>B4=3tzC{Ba6blK~{ZAj>$DWjtR7T(w!4`9D`*I8a%} zc}JmZakQk6P`ZKypz0m#^+DYulS&2i_46&Wn~DMA?|{BI71fQsjXkRH7tp4|>Gc!3 QA^-pY07*qoM6N<$f;T;PqW}N^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/block/palm_planks.png b/src/main/resources/assets/unicopia/textures/block/palm_planks.png new file mode 100644 index 0000000000000000000000000000000000000000..0579024fcaaaf0e45cf75788ea043dfc9ba20bf8 GIT binary patch literal 1633 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/item/palm_sapling.png b/src/main/resources/assets/unicopia/textures/item/palm_sapling.png new file mode 100644 index 0000000000000000000000000000000000000000..85cb562f261a8f2cea737ed2813c4257d7f807f8 GIT binary patch literal 2564 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 (Lcom/mojang/serialization/Codec;)V accessible field net/minecraft/entity/mob/CreeperEntity CHARGED Lnet/minecraft/entity/data/TrackedData; accessible field net/minecraft/entity/mob/CreeperEntity IGNITED Lnet/minecraft/entity/data/TrackedData; \ No newline at end of file