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 00000000..52346295 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/block/bananas.png differ diff --git a/src/main/resources/assets/unicopia/textures/block/palm_leaves.png b/src/main/resources/assets/unicopia/textures/block/palm_leaves.png new file mode 100644 index 00000000..0dbcba9c Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/block/palm_leaves.png differ 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 00000000..846e8f0d Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/block/palm_log.png differ 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 00000000..7746f4d6 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/block/palm_log_top.png differ 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 00000000..0579024f Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/block/palm_planks.png differ diff --git a/src/main/resources/assets/unicopia/textures/block/stripped_palm_log.png b/src/main/resources/assets/unicopia/textures/block/stripped_palm_log.png new file mode 100644 index 00000000..f5216422 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/block/stripped_palm_log.png differ diff --git a/src/main/resources/assets/unicopia/textures/block/stripped_palm_log_top.png b/src/main/resources/assets/unicopia/textures/block/stripped_palm_log_top.png new file mode 100644 index 00000000..c91e7e09 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/block/stripped_palm_log_top.png differ 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 00000000..85cb562f Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/palm_sapling.png differ diff --git a/src/main/resources/data/minecraft/tags/blocks/leaves.json b/src/main/resources/data/minecraft/tags/blocks/leaves.json index 9df08ebc..00b426f8 100644 --- a/src/main/resources/data/minecraft/tags/blocks/leaves.json +++ b/src/main/resources/data/minecraft/tags/blocks/leaves.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "unicopia:palm_leaves", "unicopia:zap_leaves", "unicopia:green_apple_leaves", "unicopia:sweet_apple_leaves", diff --git a/src/main/resources/data/minecraft/tags/blocks/logs.json b/src/main/resources/data/minecraft/tags/blocks/logs.json index 37a121dc..4e7dd5d0 100644 --- a/src/main/resources/data/minecraft/tags/blocks/logs.json +++ b/src/main/resources/data/minecraft/tags/blocks/logs.json @@ -1,6 +1,10 @@ { "replace": false, "values": [ + "unicopia:palm_log", + "unicopia:palm_wood", + "unicopia:stripped_palm_log", + "unicopia:stripped_palm_wood", "unicopia:zap_log", "unicopia:zap_wood", "unicopia:stripped_zap_log", diff --git a/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json b/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json new file mode 100644 index 00000000..38397972 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/logs_that_burn.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "unicopia:palm_log", + "unicopia:palm_wood", + "unicopia:stripped_palm_log", + "unicopia:stripped_palm_wood" + ] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/planks.json b/src/main/resources/data/minecraft/tags/blocks/planks.json new file mode 100644 index 00000000..78621ab7 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/planks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "unicopia:palm_planks" + ] +} diff --git a/src/main/resources/data/minecraft/tags/items/leaves.json b/src/main/resources/data/minecraft/tags/items/leaves.json index 9df08ebc..00b426f8 100644 --- a/src/main/resources/data/minecraft/tags/items/leaves.json +++ b/src/main/resources/data/minecraft/tags/items/leaves.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ + "unicopia:palm_leaves", "unicopia:zap_leaves", "unicopia:green_apple_leaves", "unicopia:sweet_apple_leaves", diff --git a/src/main/resources/data/minecraft/tags/items/logs.json b/src/main/resources/data/minecraft/tags/items/logs.json index 37a121dc..4e7dd5d0 100644 --- a/src/main/resources/data/minecraft/tags/items/logs.json +++ b/src/main/resources/data/minecraft/tags/items/logs.json @@ -1,6 +1,10 @@ { "replace": false, "values": [ + "unicopia:palm_log", + "unicopia:palm_wood", + "unicopia:stripped_palm_log", + "unicopia:stripped_palm_wood", "unicopia:zap_log", "unicopia:zap_wood", "unicopia:stripped_zap_log", diff --git a/src/main/resources/data/minecraft/tags/items/planks.json b/src/main/resources/data/minecraft/tags/items/planks.json new file mode 100644 index 00000000..78621ab7 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/planks.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "unicopia:palm_planks" + ] +} diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/bananas.json b/src/main/resources/data/unicopia/loot_tables/blocks/bananas.json new file mode 100644 index 00000000..7e5ce591 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/bananas.json @@ -0,0 +1,40 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 12.0, + "min": 6.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "unicopia:banana" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/palm_leaves.json b/src/main/resources/data/unicopia/loot_tables/blocks/palm_leaves.json new file mode 100644 index 00000000..fc7a7f84 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/palm_leaves.json @@ -0,0 +1,135 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + ], + "name": "unicopia:palm_leaves" + }, + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:survives_explosion" + }, + { + "chances": [ + 0.05, + 0.0625, + 0.083333336, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "name": "unicopia:palm_sapling" + } + ] + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": [ + "minecraft:shears" + ] + } + }, + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ] + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "chances": [ + 0.02, + 0.022222223, + 0.025, + 0.033333335, + 0.1 + ], + "condition": "minecraft:table_bonus", + "enchantment": "minecraft:fortune" + } + ], + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "minecraft:stick" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/palm_log.json b/src/main/resources/data/unicopia/loot_tables/blocks/palm_log.json new file mode 100644 index 00000000..e856aef5 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/palm_log.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:palm_log" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/palm_planks.json b/src/main/resources/data/unicopia/loot_tables/blocks/palm_planks.json new file mode 100644 index 00000000..cfe2c6a6 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/palm_planks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:palm_planks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/palm_sapling.json b/src/main/resources/data/unicopia/loot_tables/blocks/palm_sapling.json new file mode 100644 index 00000000..a5e70288 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/palm_sapling.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:palm_sapling" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/palm_wood.json b/src/main/resources/data/unicopia/loot_tables/blocks/palm_wood.json new file mode 100644 index 00000000..cc5db4c2 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/palm_wood.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:palm_wood" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_log.json b/src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_log.json new file mode 100644 index 00000000..10dd8193 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_log.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:stripped_palm_log" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_wood.json b/src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_wood.json new file mode 100644 index 00000000..ba34b411 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/stripped_palm_wood.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:stripped_palm_wood" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/recipes/palm_planks.json b/src/main/resources/data/unicopia/recipes/palm_planks.json new file mode 100644 index 00000000..c8a7dea1 --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/palm_planks.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { "item": "unicopia:palm_log" } + ], + "result": { + "item": "unicopia:palm_planks", + "count": 4 + } +} diff --git a/src/main/resources/data/unicopia/recipes/palm_wood.json b/src/main/resources/data/unicopia/recipes/palm_wood.json new file mode 100644 index 00000000..0c28e123 --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/palm_wood.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##", + "##" + ], + "key": { + "#": { + "item": "unicopia:palm_log" + } + }, + "result": { + "item": "unicopia:palm_wood" + } +} \ No newline at end of file diff --git a/src/main/resources/unicopia.aw b/src/main/resources/unicopia.aw index 2b7d36d4..18495bde 100644 --- a/src/main/resources/unicopia.aw +++ b/src/main/resources/unicopia.aw @@ -6,6 +6,7 @@ accessible class net/minecraft/client/render/item/HeldItemRenderer$H accessible method net/minecraft/world/GameRules register (Ljava/lang/String;Lnet/minecraft/world/GameRules$Category;Lnet/minecraft/world/GameRules$Type;)Lnet/minecraft/world/GameRules$Key; accessible method net/minecraft/world/GameRules$BooleanRule create (Z)Lnet/minecraft/world/GameRules$Type; accessible method net/minecraft/world/GameRules$IntRule create (I)Lnet/minecraft/world/GameRules$Type; +accessible method net/minecraft/world/gen/foliage/FoliagePlacerType (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