diff --git a/src/main/resources/assets/szar/models/block/SlotMachine_outline.bbmodel b/src/blockbench_models/SlotMachine_outline.bbmodel similarity index 100% rename from src/main/resources/assets/szar/models/block/SlotMachine_outline.bbmodel rename to src/blockbench_models/SlotMachine_outline.bbmodel diff --git a/src/blockbench_models/casino_outline.bbmodel b/src/blockbench_models/casino_outline.bbmodel new file mode 100644 index 0000000..26fc5b3 --- /dev/null +++ b/src/blockbench_models/casino_outline.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"5.0","model_format":"java_block","box_uv":false},"name":"casino_outline","parent":"","java_block_version":"1.9.0","ambientocclusion":true,"front_gui_light":false,"visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"unhandled_root_fields":{"format_version":"1.9.0"},"resolution":{"width":16,"height":16},"elements":[{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[16,2,-2],"to":[18,4,0],"autouv":0,"color":7,"origin":[5,2,-1],"faces":{"north":{"uv":[0.25,0.25,0.75,0.75],"texture":0},"east":{"uv":[1.25,0.25,1.75,0.75],"texture":0},"south":{"uv":[2.25,0.25,2.75,0.75],"texture":0},"west":{"uv":[3.25,0.25,3.75,0.75],"texture":0},"up":{"uv":[4.25,0.25,4.75,0.75],"texture":0},"down":{"uv":[5.25,0.25,5.75,0.75],"texture":0}},"type":"cube","uuid":"342c44a2-dc33-4c1c-c7bd-048ea087879b"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[16,6,-2],"to":[18,8,0],"autouv":0,"color":1,"origin":[5,2,-1],"faces":{"north":{"uv":[6.25,0.25,6.75,0.75],"texture":0},"east":{"uv":[7.25,0.25,7.75,0.75],"texture":0},"south":{"uv":[8.25,0.25,8.75,0.75],"texture":0},"west":{"uv":[9.25,0.25,9.75,0.75],"texture":0},"up":{"uv":[10.25,0.25,10.75,0.75],"texture":0},"down":{"uv":[11.25,0.25,11.75,0.75],"texture":0}},"type":"cube","uuid":"43441299-f960-6357-e632-50b6cddca0da"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[18,0,-3],"to":[20,6,-1],"autouv":0,"color":4,"origin":[5,2,-2],"faces":{"north":{"uv":[12.25,0.25,12.75,0.75],"texture":0},"east":{"uv":[13.25,0.25,13.75,0.75],"texture":0},"south":{"uv":[14.25,0.25,14.75,0.75],"texture":0},"west":{"uv":[15.25,0.25,15.75,0.75],"texture":0},"up":{"uv":[0.25,1.25,0.75,1.75],"texture":0},"down":{"uv":[1.25,1.25,1.75,1.75],"texture":0}},"type":"cube","uuid":"aba5fa02-8162-c476-a0f4-dbc05a087df3"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[14,0,0],"to":[16,6,2],"autouv":0,"color":7,"origin":[5,2,1],"faces":{"north":{"uv":[2.25,1.25,2.75,1.75],"texture":0},"east":{"uv":[3.25,1.25,3.75,1.75],"texture":0},"south":{"uv":[4.25,1.25,4.75,1.75],"texture":0},"west":{"uv":[5.25,1.25,5.75,1.75],"texture":0},"up":{"uv":[6.25,1.25,6.75,1.75],"texture":0},"down":{"uv":[7.25,1.25,7.75,1.75],"texture":0}},"type":"cube","uuid":"a6598e49-2dd7-9ae4-7c52-f1c484f52150"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[20,0,-6],"to":[22,2,-4],"autouv":0,"color":5,"origin":[3,2,-5],"faces":{"north":{"uv":[8.25,1.25,8.75,1.75],"texture":0},"east":{"uv":[9.25,1.25,9.75,1.75],"texture":0},"south":{"uv":[10.25,1.25,10.75,1.75],"texture":0},"west":{"uv":[11.25,1.25,11.75,1.75],"texture":0},"up":{"uv":[12.25,1.25,12.75,1.75],"texture":0},"down":{"uv":[13.25,1.25,13.75,1.75],"texture":0}},"type":"cube","uuid":"ecd49322-b8ef-c508-18b4-9127bb5b5d46"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[20,6,-6],"to":[22,8,-4],"autouv":0,"color":2,"origin":[3,2,-5],"faces":{"north":{"uv":[14.25,1.25,14.75,1.75],"texture":0},"east":{"uv":[15.25,1.25,15.75,1.75],"texture":0},"south":{"uv":[0.25,2.25,0.75,2.75],"texture":0},"west":{"uv":[1.25,2.25,1.75,2.75],"texture":0},"up":{"uv":[2.25,2.25,2.75,2.75],"texture":0},"down":{"uv":[3.25,2.25,3.75,2.75],"texture":0}},"type":"cube","uuid":"e1f0b899-4c0b-7d1a-0126-af4d157496a3"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[21,0,-7],"to":[23,8,-5],"autouv":0,"color":5,"origin":[2,2,-6],"faces":{"north":{"uv":[4.25,2.25,4.75,2.75],"texture":0},"east":{"uv":[5.25,2.25,5.75,2.75],"texture":0},"south":{"uv":[6.25,2.25,6.75,2.75],"texture":0},"west":{"uv":[7.25,2.25,7.75,2.75],"texture":0},"up":{"uv":[8.25,2.25,8.75,2.75],"texture":0},"down":{"uv":[9.25,2.25,9.75,2.75],"texture":0}},"type":"cube","uuid":"707f2f43-91bd-4d59-2d1e-30ff75f85f5e"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[9,0,4],"to":[12,2,6],"autouv":0,"color":6,"origin":[6,2,5],"faces":{"north":{"uv":[10.25,2.25,10.75,2.75],"texture":0},"east":{"uv":[11.25,2.25,11.75,2.75],"texture":0},"south":{"uv":[12.25,2.25,12.75,2.75],"texture":0},"west":{"uv":[13.25,2.25,13.75,2.75],"texture":0},"up":{"uv":[14.25,2.25,14.75,2.75],"texture":0},"down":{"uv":[15.25,2.25,15.75,2.75],"texture":0}},"type":"cube","uuid":"8e5b8876-2449-1808-da19-639de3878ff1"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[8,0,6],"to":[10,5,8],"autouv":0,"color":1,"origin":[7,2,7],"faces":{"north":{"uv":[0.25,3.25,0.75,3.75],"texture":0},"east":{"uv":[1.25,3.25,1.75,3.75],"texture":0},"south":{"uv":[2.25,3.25,2.75,3.75],"texture":0},"west":{"uv":[3.25,3.25,3.75,3.75],"texture":0},"up":{"uv":[4.25,3.25,4.75,3.75],"texture":0},"down":{"uv":[5.25,3.25,5.75,3.75],"texture":0}},"type":"cube","uuid":"f7a0fff8-8926-c9e0-71a8-f0fa7a64c204"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[10,3,4],"to":[11,5,6],"autouv":0,"color":5,"origin":[7,2,5],"faces":{"north":{"uv":[6.25,3.25,6.75,3.75],"texture":0},"east":{"uv":[7.25,3.25,7.75,3.75],"texture":0},"south":{"uv":[8.25,3.25,8.75,3.75],"texture":0},"west":{"uv":[9.25,3.25,9.75,3.75],"texture":0},"up":{"uv":[10.25,3.25,10.75,3.75],"texture":0},"down":{"uv":[11.25,3.25,11.75,3.75],"texture":0}},"type":"cube","uuid":"5fcf5ff9-eb96-6be9-ecc4-f6388dd4b8b6"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[8,6,5],"to":[11,8,7],"autouv":0,"color":6,"origin":[7,2,6],"faces":{"north":{"uv":[12.25,3.25,12.75,3.75],"texture":0},"east":{"uv":[13.25,3.25,13.75,3.75],"texture":0},"south":{"uv":[14.25,3.25,14.75,3.75],"texture":0},"west":{"uv":[15.25,3.25,15.75,3.75],"texture":0},"up":{"uv":[0.25,4.25,0.75,4.75],"texture":0},"down":{"uv":[1.25,4.25,1.75,4.75],"texture":0}},"type":"cube","uuid":"ca2f2cb9-e375-66e2-0f0b-3cc7dbcb3ed3"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[11,3,4],"to":[13,8,6],"autouv":0,"color":0,"origin":[7,2,5],"faces":{"north":{"uv":[2.25,4.25,2.75,4.75],"texture":0},"east":{"uv":[3.25,4.25,3.75,4.75],"texture":0},"south":{"uv":[4.25,4.25,4.75,4.75],"texture":0},"west":{"uv":[5.25,4.25,5.75,4.75],"texture":0},"up":{"uv":[6.25,4.25,6.75,4.75],"texture":0},"down":{"uv":[7.25,4.25,7.75,4.75],"texture":0}},"type":"cube","uuid":"e5cce76e-1a4f-97d3-ceea-adc6ffa14193"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[5,0,9],"to":[7,8,11],"autouv":0,"color":9,"origin":[9,2,10],"faces":{"north":{"uv":[8.25,4.25,8.75,4.75],"texture":0},"east":{"uv":[9.25,4.25,9.75,4.75],"texture":0},"south":{"uv":[10.25,4.25,10.75,4.75],"texture":0},"west":{"uv":[11.25,4.25,11.75,4.75],"texture":0},"up":{"uv":[12.25,4.25,12.75,4.75],"texture":0},"down":{"uv":[13.25,4.25,13.75,4.75],"texture":0}},"type":"cube","uuid":"5025bf12-3348-239d-fd81-d2f63ec94be3"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[0,1,14],"to":[1,3,16],"autouv":0,"color":9,"origin":[10,2,15],"faces":{"north":{"uv":[14.25,4.25,14.75,4.75],"texture":0},"east":{"uv":[15.25,4.25,15.75,4.75],"texture":0},"south":{"uv":[0.25,5.25,0.75,5.75],"texture":0},"west":{"uv":[1.25,5.25,1.75,5.75],"texture":0},"up":{"uv":[2.25,5.25,2.75,5.75],"texture":0},"down":{"uv":[3.25,5.25,3.75,5.75],"texture":0}},"type":"cube","uuid":"236569ba-9795-7541-fa19-a1e688fe63aa"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-1,0,15],"to":[1,8,17],"autouv":0,"color":2,"origin":[11,2,16],"faces":{"north":{"uv":[4.25,5.25,4.75,5.75],"texture":0},"east":{"uv":[5.25,5.25,5.75,5.75],"texture":0},"south":{"uv":[6.25,5.25,6.75,5.75],"texture":0},"west":{"uv":[7.25,5.25,7.75,5.75],"texture":0},"up":{"uv":[8.25,5.25,8.75,5.75],"texture":0},"down":{"uv":[9.25,5.25,9.75,5.75],"texture":0}},"type":"cube","uuid":"35a79f38-1062-b993-6990-572fce017a16"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[0,3,13],"to":[2,5,15],"autouv":0,"color":1,"origin":[10,2,14],"faces":{"north":{"uv":[10.25,5.25,10.75,5.75],"texture":0},"east":{"uv":[11.25,5.25,11.75,5.75],"texture":0},"south":{"uv":[12.25,5.25,12.75,5.75],"texture":0},"west":{"uv":[13.25,5.25,13.75,5.75],"texture":0},"up":{"uv":[14.25,5.25,14.75,5.75],"texture":0},"down":{"uv":[15.25,5.25,15.75,5.75],"texture":0}},"type":"cube","uuid":"6c5afe77-54eb-58e6-d430-fa8df08f639f"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[1,5,13],"to":[2,7,15],"autouv":0,"color":5,"origin":[10,2,14],"faces":{"north":{"uv":[0.25,6.25,0.75,6.75],"texture":0},"east":{"uv":[1.25,6.25,1.75,6.75],"texture":0},"south":{"uv":[2.25,6.25,2.75,6.75],"texture":0},"west":{"uv":[3.25,6.25,3.75,6.75],"texture":0},"up":{"uv":[4.25,6.25,4.75,6.75],"texture":0},"down":{"uv":[5.25,6.25,5.75,6.75],"texture":0}},"type":"cube","uuid":"4c1d2eb1-56d6-2ee0-d51e-3549cc9a10b9"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[2,0,12],"to":[4,8,14],"autouv":0,"color":0,"origin":[10,2,13],"faces":{"north":{"uv":[6.25,6.25,6.75,6.75],"texture":0},"east":{"uv":[7.25,6.25,7.75,6.75],"texture":0},"south":{"uv":[8.25,6.25,8.75,6.75],"texture":0},"west":{"uv":[9.25,6.25,9.75,6.75],"texture":0},"up":{"uv":[10.25,6.25,10.75,6.75],"texture":0},"down":{"uv":[11.25,6.25,11.75,6.75],"texture":0}},"type":"cube","uuid":"879078e8-8d9e-cb11-0fde-cbb4c228c56c"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-6,0,19],"to":[-2,2,21],"autouv":0,"color":8,"origin":[12,2,20],"faces":{"north":{"uv":[12.25,6.25,12.75,6.75],"texture":0},"east":{"uv":[13.25,6.25,13.75,6.75],"texture":0},"south":{"uv":[14.25,6.25,14.75,6.75],"texture":0},"west":{"uv":[15.25,6.25,15.75,6.75],"texture":0},"up":{"uv":[0.25,7.25,0.75,7.75],"texture":0},"down":{"uv":[1.25,7.25,1.75,7.75],"texture":0}},"type":"cube","uuid":"ba24d580-7131-03ed-912c-352ad60adb19"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-6,0,21],"to":[-4,6,23],"autouv":0,"color":6,"origin":[14,2,22],"faces":{"north":{"uv":[2.25,7.25,2.75,7.75],"texture":0},"east":{"uv":[3.25,7.25,3.75,7.75],"texture":0},"south":{"uv":[4.25,7.25,4.75,7.75],"texture":0},"west":{"uv":[5.25,7.25,5.75,7.75],"texture":0},"up":{"uv":[6.25,7.25,6.75,7.75],"texture":0},"down":{"uv":[7.25,7.25,7.75,7.75],"texture":0}},"type":"cube","uuid":"ba726150-47de-d057-f02e-1fc4035c46a1"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-6,6,20],"to":[-2,8,22],"autouv":0,"color":3,"origin":[14,2,21],"faces":{"north":{"uv":[8.25,7.25,8.75,7.75],"texture":0},"east":{"uv":[9.25,7.25,9.75,7.75],"texture":0},"south":{"uv":[10.25,7.25,10.75,7.75],"texture":0},"west":{"uv":[11.25,7.25,11.75,7.75],"texture":0},"up":{"uv":[12.25,7.25,12.75,7.75],"texture":0},"down":{"uv":[13.25,7.25,13.75,7.75],"texture":0}},"type":"cube","uuid":"6a589c5a-a365-afe2-9cdd-086e69780ae7"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-4,2,18],"to":[-2,8,20],"autouv":0,"color":4,"origin":[12,2,19],"faces":{"north":{"uv":[14.25,7.25,14.75,7.75],"texture":0},"east":{"uv":[15.25,7.25,15.75,7.75],"texture":0},"south":{"uv":[0.25,8.25,0.75,8.75],"texture":0},"west":{"uv":[1.25,8.25,1.75,8.75],"texture":0},"up":{"uv":[2.25,8.25,2.75,8.75],"texture":0},"down":{"uv":[3.25,8.25,3.75,8.75],"texture":0}},"type":"cube","uuid":"2a43a29c-4bf3-df0e-d6a4-bd51d6e73dc7"}],"groups":[{"uuid":"b98aa115-0e5d-aeb2-e61c-318b167af4b3","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":0,"name":"A","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"6503b1ae-3082-eb7f-4f67-3eab3dc2ccda","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":0,"name":"C","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"485e1de7-e5bc-c646-b69b-5a58cf87bf73","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":2,"name":"S","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"e9c80e21-6f61-5257-b764-24f36cd57376","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":3,"name":"I","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"adf5a56b-bf88-b1cc-8869-8e1f47e3aed8","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":4,"name":"N","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"5ba92e42-cb66-0521-3c69-7a826a528666","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":6,"name":"O","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false}],"outliner":[{"uuid":"b98aa115-0e5d-aeb2-e61c-318b167af4b3","isOpen":false,"children":["342c44a2-dc33-4c1c-c7bd-048ea087879b","43441299-f960-6357-e632-50b6cddca0da","aba5fa02-8162-c476-a0f4-dbc05a087df3","a6598e49-2dd7-9ae4-7c52-f1c484f52150"]},{"uuid":"6503b1ae-3082-eb7f-4f67-3eab3dc2ccda","isOpen":false,"children":["ecd49322-b8ef-c508-18b4-9127bb5b5d46","e1f0b899-4c0b-7d1a-0126-af4d157496a3","707f2f43-91bd-4d59-2d1e-30ff75f85f5e"]},{"uuid":"485e1de7-e5bc-c646-b69b-5a58cf87bf73","isOpen":false,"children":["8e5b8876-2449-1808-da19-639de3878ff1","f7a0fff8-8926-c9e0-71a8-f0fa7a64c204","5fcf5ff9-eb96-6be9-ecc4-f6388dd4b8b6","ca2f2cb9-e375-66e2-0f0b-3cc7dbcb3ed3","e5cce76e-1a4f-97d3-ceea-adc6ffa14193"]},{"uuid":"e9c80e21-6f61-5257-b764-24f36cd57376","isOpen":false,"children":["5025bf12-3348-239d-fd81-d2f63ec94be3"]},{"uuid":"adf5a56b-bf88-b1cc-8869-8e1f47e3aed8","isOpen":false,"children":["236569ba-9795-7541-fa19-a1e688fe63aa","35a79f38-1062-b993-6990-572fce017a16","6c5afe77-54eb-58e6-d430-fa8df08f639f","4c1d2eb1-56d6-2ee0-d51e-3549cc9a10b9","879078e8-8d9e-cb11-0fde-cbb4c228c56c"]},{"uuid":"5ba92e42-cb66-0521-3c69-7a826a528666","isOpen":false,"children":["ba24d580-7131-03ed-912c-352ad60adb19","ba726150-47de-d057-f02e-1fc4035c46a1","6a589c5a-a365-afe2-9cdd-086e69780ae7","2a43a29c-4bf3-df0e-d6a4-bd51d6e73dc7"]}],"textures":[{"name":"casino_red.png","relative_path":"../main/resources/assets/szar/textures/block/casino_red.png","folder":"block","namespace":"szar","id":"0","group":"","width":16,"height":16,"uv_width":16,"uv_height":16,"particle":true,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"1776994c-044d-d63d-03fa-04b4fc4c81ef","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAM0lEQVR4AeyRMQoAAAgCL///59rbpMUhwU0ETzX0xeKoL4BABgXlWDuMqUAG5oLEG90JAwAA///qzUHpAAAABklEQVQDAP1rICFfAbUpAAAAAElFTkSuQmCC"}]} \ No newline at end of file diff --git a/src/blockbench_models/casino_title.bbmodel b/src/blockbench_models/casino_title.bbmodel new file mode 100644 index 0000000..ae77389 --- /dev/null +++ b/src/blockbench_models/casino_title.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"5.0","model_format":"java_block","box_uv":false},"name":"casino_title","parent":"","java_block_version":"1.9.0","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,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[25,0,7],"to":[27,2,9],"autouv":0,"color":0,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[8.25,1.25,8.75,1.75],"texture":0},"east":{"uv":[9.25,1.25,9.75,1.75],"texture":0},"south":{"uv":[10.25,1.25,10.75,1.75],"texture":0},"west":{"uv":[11.25,1.25,11.75,1.75],"texture":0},"up":{"uv":[12.25,1.25,12.75,1.75],"texture":0},"down":{"uv":[13.25,1.25,13.75,1.75],"texture":0}},"type":"cube","uuid":"297b252c-b768-e5c9-5e91-7d3bf35d47a1"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[27,0,7],"to":[29,8,9],"autouv":0,"color":0,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[4.25,2.25,4.75,2.75],"texture":0},"east":{"uv":[5.25,2.25,5.75,2.75],"texture":0},"south":{"uv":[6.25,2.25,6.75,2.75],"texture":0},"west":{"uv":[7.25,2.25,7.75,2.75],"texture":0},"up":{"uv":[8.25,2.25,8.75,2.75],"texture":0},"down":{"uv":[9.25,2.25,9.75,2.75],"texture":0}},"type":"cube","uuid":"0aa1e00d-efb9-e02e-3cff-9b455d796ce4"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[25,6,7],"to":[27,8,9],"autouv":0,"color":0,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[14.25,1.25,14.75,1.75],"texture":0},"east":{"uv":[15.25,1.25,15.75,1.75],"texture":0},"south":{"uv":[0.25,2.25,0.75,2.75],"texture":0},"west":{"uv":[1.25,2.25,1.75,2.75],"texture":0},"up":{"uv":[2.25,2.25,2.75,2.75],"texture":0},"down":{"uv":[3.25,2.25,3.75,2.75],"texture":0}},"type":"cube","uuid":"ab2801e0-cce8-5385-9a46-1722989f747a"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[19,2,7],"to":[21,4,9],"autouv":0,"color":1,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[0.25,0.25,0.75,0.75],"texture":0},"east":{"uv":[1.25,0.25,1.75,0.75],"texture":0},"south":{"uv":[2.25,0.25,2.75,0.75],"texture":0},"west":{"uv":[3.25,0.25,3.75,0.75],"texture":0},"up":{"uv":[4.25,0.25,4.75,0.75],"texture":0},"down":{"uv":[5.25,0.25,5.75,0.75],"texture":0}},"type":"cube","uuid":"b5b7081a-fdaa-636e-6081-0a9f27047570"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[19,6,7],"to":[21,8,9],"autouv":0,"color":1,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[6.25,0.25,6.75,0.75],"texture":0},"east":{"uv":[7.25,0.25,7.75,0.75],"texture":0},"south":{"uv":[8.25,0.25,8.75,0.75],"texture":0},"west":{"uv":[9.25,0.25,9.75,0.75],"texture":0},"up":{"uv":[10.25,0.25,10.75,0.75],"texture":0},"down":{"uv":[11.25,0.25,11.75,0.75],"texture":0}},"type":"cube","uuid":"d0fab3fc-158c-ddc5-6e1a-c03651992195"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[21,0,7],"to":[23,6,9],"autouv":0,"color":1,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[12.25,0.25,12.75,0.75],"texture":0},"east":{"uv":[13.25,0.25,13.75,0.75],"texture":0},"south":{"uv":[14.25,0.25,14.75,0.75],"texture":0},"west":{"uv":[15.25,0.25,15.75,0.75],"texture":0},"up":{"uv":[0.25,1.25,0.75,1.75],"texture":0},"down":{"uv":[1.25,1.25,1.75,1.75],"texture":0}},"type":"cube","uuid":"ccc3eeeb-5ccf-fe9c-1a1b-a666d94f4ddf"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[17,0,7],"to":[19,6,9],"autouv":0,"color":1,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[2.25,1.25,2.75,1.75],"texture":0},"east":{"uv":[3.25,1.25,3.75,1.75],"texture":0},"south":{"uv":[4.25,1.25,4.75,1.75],"texture":0},"west":{"uv":[5.25,1.25,5.75,1.75],"texture":0},"up":{"uv":[6.25,1.25,6.75,1.75],"texture":0},"down":{"uv":[7.25,1.25,7.75,1.75],"texture":0}},"type":"cube","uuid":"822c2879-ab05-29a2-5180-49f1fbb2e102"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[11,0,7],"to":[14,2,9],"autouv":0,"color":2,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[10.25,2.25,10.75,2.75],"texture":0},"east":{"uv":[11.25,2.25,11.75,2.75],"texture":0},"south":{"uv":[12.25,2.25,12.75,2.75],"texture":0},"west":{"uv":[13.25,2.25,13.75,2.75],"texture":0},"up":{"uv":[14.25,2.25,14.75,2.75],"texture":0},"down":{"uv":[15.25,2.25,15.75,2.75],"texture":0}},"type":"cube","uuid":"232f4997-385f-1186-c126-8241737680f2"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[9,6,7],"to":[12,8,9],"autouv":0,"color":2,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[12.25,3.25,12.75,3.75],"texture":0},"east":{"uv":[13.25,3.25,13.75,3.75],"texture":0},"south":{"uv":[14.25,3.25,14.75,3.75],"texture":0},"west":{"uv":[15.25,3.25,15.75,3.75],"texture":0},"up":{"uv":[0.25,4.25,0.75,4.75],"texture":0},"down":{"uv":[1.25,4.25,1.75,4.75],"texture":0}},"type":"cube","uuid":"f7f1f032-34db-091f-3c0f-beb9461c3549"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[12,3,7],"to":[14,8,9],"autouv":0,"color":2,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[2.25,4.25,2.75,4.75],"texture":0},"east":{"uv":[3.25,4.25,3.75,4.75],"texture":0},"south":{"uv":[4.25,4.25,4.75,4.75],"texture":0},"west":{"uv":[5.25,4.25,5.75,4.75],"texture":0},"up":{"uv":[6.25,4.25,6.75,4.75],"texture":0},"down":{"uv":[7.25,4.25,7.75,4.75],"texture":0}},"type":"cube","uuid":"0317b830-a522-6ae2-6a65-60fccef719c9"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[9,0,7],"to":[11,5,9],"autouv":0,"color":2,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[0.25,3.25,0.75,3.75],"texture":0},"east":{"uv":[1.25,3.25,1.75,3.75],"texture":0},"south":{"uv":[2.25,3.25,2.75,3.75],"texture":0},"west":{"uv":[3.25,3.25,3.75,3.75],"texture":0},"up":{"uv":[4.25,3.25,4.75,3.75],"texture":0},"down":{"uv":[5.25,3.25,5.75,3.75],"texture":0}},"type":"cube","uuid":"82b4d492-cbea-d5d3-656d-da36dade143e"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[11,3,7],"to":[12,5,9],"autouv":0,"color":2,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[6.25,3.25,6.75,3.75],"texture":0},"east":{"uv":[7.25,3.25,7.75,3.75],"texture":0},"south":{"uv":[8.25,3.25,8.75,3.75],"texture":0},"west":{"uv":[9.25,3.25,9.75,3.75],"texture":0},"up":{"uv":[10.25,3.25,10.75,3.75],"texture":0},"down":{"uv":[11.25,3.25,11.75,3.75],"texture":0}},"type":"cube","uuid":"53a78e27-c142-8f7f-976e-b3aadae96e82"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[4,0,7],"to":[6,8,9],"autouv":0,"color":3,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[8.25,4.25,8.75,4.75],"texture":0},"east":{"uv":[9.25,4.25,9.75,4.75],"texture":0},"south":{"uv":[10.25,4.25,10.75,4.75],"texture":0},"west":{"uv":[11.25,4.25,11.75,4.75],"texture":0},"up":{"uv":[12.25,4.25,12.75,4.75],"texture":0},"down":{"uv":[13.25,4.25,13.75,4.75],"texture":0}},"type":"cube","uuid":"a24d1761-4be9-6b16-ecf9-1a6c0590b032"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-2,1,7],"to":[-1,3,9],"autouv":0,"color":4,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[14.25,4.25,14.75,4.75],"texture":0},"east":{"uv":[15.25,4.25,15.75,4.75],"texture":0},"south":{"uv":[0.25,5.25,0.75,5.75],"texture":0},"west":{"uv":[1.25,5.25,1.75,5.75],"texture":0},"up":{"uv":[2.25,5.25,2.75,5.75],"texture":0},"down":{"uv":[3.25,5.25,3.75,5.75],"texture":0}},"type":"cube","uuid":"dd79f646-0d2a-e037-1d38-b7a4afbb8d18"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-4,0,7],"to":[-2,8,9],"autouv":0,"color":4,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[4.25,5.25,4.75,5.75],"texture":0},"east":{"uv":[5.25,5.25,5.75,5.75],"texture":0},"south":{"uv":[6.25,5.25,6.75,5.75],"texture":0},"west":{"uv":[7.25,5.25,7.75,5.75],"texture":0},"up":{"uv":[8.25,5.25,8.75,5.75],"texture":0},"down":{"uv":[9.25,5.25,9.75,5.75],"texture":0}},"type":"cube","uuid":"411522cd-7fe9-cfe8-a8fd-6c9c1c539640"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-2,3,7],"to":[0,5,9],"autouv":0,"color":4,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[10.25,5.25,10.75,5.75],"texture":0},"east":{"uv":[11.25,5.25,11.75,5.75],"texture":0},"south":{"uv":[12.25,5.25,12.75,5.75],"texture":0},"west":{"uv":[13.25,5.25,13.75,5.75],"texture":0},"up":{"uv":[14.25,5.25,14.75,5.75],"texture":0},"down":{"uv":[15.25,5.25,15.75,5.75],"texture":0}},"type":"cube","uuid":"a9dc88c6-c4a5-4a99-c3e3-f913d7b8703e"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-1,5,7],"to":[0,7,9],"autouv":0,"color":4,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[0.25,6.25,0.75,6.75],"texture":0},"east":{"uv":[1.25,6.25,1.75,6.75],"texture":0},"south":{"uv":[2.25,6.25,2.75,6.75],"texture":0},"west":{"uv":[3.25,6.25,3.75,6.75],"texture":0},"up":{"uv":[4.25,6.25,4.75,6.75],"texture":0},"down":{"uv":[5.25,6.25,5.75,6.75],"texture":0}},"type":"cube","uuid":"79f8e5c1-77ff-3ec7-5095-5a2addd612dc"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[0,0,7],"to":[2,8,9],"autouv":0,"color":4,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[6.25,6.25,6.75,6.75],"texture":0},"east":{"uv":[7.25,6.25,7.75,6.75],"texture":0},"south":{"uv":[8.25,6.25,8.75,6.75],"texture":0},"west":{"uv":[9.25,6.25,9.75,6.75],"texture":0},"up":{"uv":[10.25,6.25,10.75,6.75],"texture":0},"down":{"uv":[11.25,6.25,11.75,6.75],"texture":0}},"type":"cube","uuid":"9df795f5-082b-d800-79bc-02c260246fae"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-10,0,7],"to":[-6,2,9],"autouv":0,"color":6,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[12.25,6.25,12.75,6.75],"texture":0},"east":{"uv":[13.25,6.25,13.75,6.75],"texture":0},"south":{"uv":[14.25,6.25,14.75,6.75],"texture":0},"west":{"uv":[15.25,6.25,15.75,6.75],"texture":0},"up":{"uv":[0.25,7.25,0.75,7.75],"texture":0},"down":{"uv":[1.25,7.25,1.75,7.75],"texture":0}},"type":"cube","uuid":"3f8c0d90-478e-78c1-9166-a9862c17c421"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-12,0,7],"to":[-10,6,9],"autouv":0,"color":6,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[2.25,7.25,2.75,7.75],"texture":0},"east":{"uv":[3.25,7.25,3.75,7.75],"texture":0},"south":{"uv":[4.25,7.25,4.75,7.75],"texture":0},"west":{"uv":[5.25,7.25,5.75,7.75],"texture":0},"up":{"uv":[6.25,7.25,6.75,7.75],"texture":0},"down":{"uv":[7.25,7.25,7.75,7.75],"texture":0}},"type":"cube","uuid":"38127e5b-d3e5-9b0c-6fb8-fc90a89f5ea9"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-12,6,7],"to":[-8,8,9],"autouv":0,"color":6,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[8.25,7.25,8.75,7.75],"texture":0},"east":{"uv":[9.25,7.25,9.75,7.75],"texture":0},"south":{"uv":[10.25,7.25,10.75,7.75],"texture":0},"west":{"uv":[11.25,7.25,11.75,7.75],"texture":0},"up":{"uv":[12.25,7.25,12.75,7.75],"texture":0},"down":{"uv":[13.25,7.25,13.75,7.75],"texture":0}},"type":"cube","uuid":"b1efe106-5927-1526-8152-7060131f6d26"},{"name":"cube","box_uv":false,"render_order":"default","rescale":false,"locked":false,"shade":true,"light_emission":0,"allow_mirror_modeling":true,"from":[-8,2,7],"to":[-6,8,9],"autouv":0,"color":6,"rotation":[0,45,0],"origin":[8,2,8],"faces":{"north":{"uv":[14.25,7.25,14.75,7.75],"texture":0},"east":{"uv":[15.25,7.25,15.75,7.75],"texture":0},"south":{"uv":[0.25,8.25,0.75,8.75],"texture":0},"west":{"uv":[1.25,8.25,1.75,8.75],"texture":0},"up":{"uv":[2.25,8.25,2.75,8.75],"texture":0},"down":{"uv":[3.25,8.25,3.75,8.75],"texture":0}},"type":"cube","uuid":"74818baf-b960-71d1-a631-e90af8fdd311"}],"groups":[{"uuid":"5ac7bf05-f287-f6b2-48ba-839c65400047","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":0,"name":"C","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"54bd8a0a-8e03-fffd-1342-e9c73db521d3","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":0,"name":"A","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"119b215f-b3d7-b859-8a71-9c315212e4aa","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":2,"name":"S","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"c5572f7e-275e-8fad-bc50-196cb6b67fba","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":3,"name":"I","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"234afe7c-28dd-9fa3-8fc1-2fcbba348a0f","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":4,"name":"N","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false},{"uuid":"4cc47d8c-9a81-b6f2-2f4c-50fed5585dca","export":true,"locked":false,"origin":[10,2,7],"rotation":[0,0,0],"color":6,"name":"O","children":[],"reset":false,"shade":true,"mirror_uv":false,"selected":false,"visibility":true,"autouv":0,"isOpen":false,"primary_selected":false}],"outliner":[{"uuid":"54bd8a0a-8e03-fffd-1342-e9c73db521d3","isOpen":false,"children":["b5b7081a-fdaa-636e-6081-0a9f27047570","d0fab3fc-158c-ddc5-6e1a-c03651992195","ccc3eeeb-5ccf-fe9c-1a1b-a666d94f4ddf","822c2879-ab05-29a2-5180-49f1fbb2e102"]},{"uuid":"5ac7bf05-f287-f6b2-48ba-839c65400047","isOpen":false,"children":["297b252c-b768-e5c9-5e91-7d3bf35d47a1","ab2801e0-cce8-5385-9a46-1722989f747a","0aa1e00d-efb9-e02e-3cff-9b455d796ce4"]},{"uuid":"119b215f-b3d7-b859-8a71-9c315212e4aa","isOpen":false,"children":["232f4997-385f-1186-c126-8241737680f2","82b4d492-cbea-d5d3-656d-da36dade143e","53a78e27-c142-8f7f-976e-b3aadae96e82","f7f1f032-34db-091f-3c0f-beb9461c3549","0317b830-a522-6ae2-6a65-60fccef719c9"]},{"uuid":"c5572f7e-275e-8fad-bc50-196cb6b67fba","isOpen":false,"children":["a24d1761-4be9-6b16-ecf9-1a6c0590b032"]},{"uuid":"234afe7c-28dd-9fa3-8fc1-2fcbba348a0f","isOpen":false,"children":["dd79f646-0d2a-e037-1d38-b7a4afbb8d18","411522cd-7fe9-cfe8-a8fd-6c9c1c539640","a9dc88c6-c4a5-4a99-c3e3-f913d7b8703e","79f8e5c1-77ff-3ec7-5095-5a2addd612dc","9df795f5-082b-d800-79bc-02c260246fae"]},{"uuid":"4cc47d8c-9a81-b6f2-2f4c-50fed5585dca","isOpen":false,"children":["3f8c0d90-478e-78c1-9166-a9862c17c421","38127e5b-d3e5-9b0c-6fb8-fc90a89f5ea9","b1efe106-5927-1526-8152-7060131f6d26","74818baf-b960-71d1-a631-e90af8fdd311"]}],"textures":[{"name":"casino_red.png","relative_path":"../main/resources/assets/szar/textures/block/casino_red.png","folder":"block","namespace":"szar","id":"0","group":"","width":16,"height":16,"uv_width":16,"uv_height":16,"particle":true,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"bc6dcaef-c0a8-c92a-65c1-4678317fafcb","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAM0lEQVR4AeyRMQoAAAgCL///59rbpMUhwU0ETzX0xeKoL4BABgXlWDuMqUAG5oLEG90JAwAA///qzUHpAAAABklEQVQDAP1rICFfAbUpAAAAAElFTkSuQmCC"}]} \ No newline at end of file diff --git a/src/client/java/dev/tggamesyt/szar/client/ClientCosmetics.java b/src/client/java/dev/tggamesyt/szar/client/ClientCosmetics.java index c0ee969..9d791e8 100644 --- a/src/client/java/dev/tggamesyt/szar/client/ClientCosmetics.java +++ b/src/client/java/dev/tggamesyt/szar/client/ClientCosmetics.java @@ -105,7 +105,8 @@ public class ClientCosmetics { /* ---------------- FETCH MOJANG CAPES ---------------- */ public static void fetchMojangCapes(UUID uuid) { - try {MinecraftClient client = MinecraftClient.getInstance(); + try { + MinecraftClient client = MinecraftClient.getInstance(); String accessToken = client.getSession().getAccessToken(); if (accessToken == null) return; @@ -113,39 +114,49 @@ public class ClientCosmetics { HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestProperty("Authorization", "Bearer " + accessToken); con.setRequestMethod("GET"); + con.setConnectTimeout(5000); + con.setReadTimeout(5000); - InputStream in = con.getInputStream(); - String json = new String(in.readAllBytes()); - in.close(); - - JsonObject obj = JsonParser.parseString(json).getAsJsonObject(); - JsonArray capes = obj.getAsJsonArray("capes"); - if (capes == null) return; - - List list = new ArrayList<>(); - for (JsonElement e : capes) { - JsonObject c = e.getAsJsonObject(); - MojangCape cape = new MojangCape(); - cape.id = c.get("id").getAsString(); - cape.name = c.has("alias") ? c.get("alias").getAsString() : cape.id; - cape.url = c.get("url").getAsString(); - list.add(cape); + int responseCode = con.getResponseCode(); + if (responseCode != 200) { + // 401 or any other response → silently ignore + con.disconnect(); + return; } - PacketByteBuf buf = PacketByteBufs.create(); - buf.writeUuid(uuid); - buf.writeInt(list.size()); + try (InputStream in = con.getInputStream()) { + String json = new String(in.readAllBytes()); - for (MojangCape cape : list) { - buf.writeString(cape.id); - buf.writeString(cape.name); - buf.writeString(cape.url); + JsonObject obj = JsonParser.parseString(json).getAsJsonObject(); + JsonArray capes = obj.getAsJsonArray("capes"); + if (capes == null) return; + + List list = new ArrayList<>(); + for (JsonElement e : capes) { + JsonObject c = e.getAsJsonObject(); + MojangCape cape = new MojangCape(); + cape.id = c.get("id").getAsString(); + cape.name = c.has("alias") ? c.get("alias").getAsString() : cape.id; + cape.url = c.get("url").getAsString(); + list.add(cape); + } + + PacketByteBuf buf = PacketByteBufs.create(); + buf.writeUuid(uuid); + buf.writeInt(list.size()); + + for (MojangCape cape : list) { + buf.writeString(cape.id); + buf.writeString(cape.name); + buf.writeString(cape.url); + } + + ClientPlayNetworking.send(MOJANG_CAPES_SYNC, buf); } - ClientPlayNetworking.send(MOJANG_CAPES_SYNC, buf); - } catch (Exception ex) { - ex.printStackTrace(); + // Only log unexpected exceptions + ex.printStackTrace(System.err); } } diff --git a/src/client/java/dev/tggamesyt/szar/client/SlotMachineScreen.java b/src/client/java/dev/tggamesyt/szar/client/SlotMachineScreen.java index b0376a4..c1dcc8c 100644 --- a/src/client/java/dev/tggamesyt/szar/client/SlotMachineScreen.java +++ b/src/client/java/dev/tggamesyt/szar/client/SlotMachineScreen.java @@ -4,18 +4,26 @@ import com.mojang.blaze3d.systems.RenderSystem; import dev.tggamesyt.szar.SlotMachineBlockEntity; import dev.tggamesyt.szar.SlotMachineScreenHandler; import dev.tggamesyt.szar.Szar; +import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.HandledScreen; +import net.minecraft.client.sound.PositionedSoundInstance; +import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; import net.minecraft.util.Identifier; import dev.tggamesyt.szar.SlotSymbol; +import java.util.Objects; + public class SlotMachineScreen extends HandledScreen { private static final Identifier BG_TEXTURE = @@ -27,9 +35,15 @@ public class SlotMachineScreen extends HandledScreen { new Identifier(Szar.MOD_ID, "textures/gui/handle2.png"); private static final Identifier HANDLE_3 = new Identifier(Szar.MOD_ID, "textures/gui/handle3.png"); - + private PositionedSoundInstance spinSound; + private boolean wasSpinning = false; private final int handleX = 120; private final int handleY = 20; + // Track when to play win sound + private boolean winSoundPending = false; + private int winSoundDelay = 0; // ticks until sound plays + private boolean lastWinState = false; // tracks PropertyDelegate slot 1 + private final PlayerInventory inventory; private boolean handleClicked = false; private int handleAnimTicks = 0; @@ -41,6 +55,8 @@ public class SlotMachineScreen extends HandledScreen { super(handler, inventory, title); this.backgroundWidth = 176; this.backgroundHeight = 166; + this.inventory = inventory; + inventory.player.playSound(Szar.LETS_GAMBLE, 1f, 1f); } // ---------------------------- @@ -85,14 +101,60 @@ public class SlotMachineScreen extends HandledScreen { @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { - renderBackground(context); super.render(context, mouseX, mouseY, delta); - if (client != null && client.player != null) { - handler.tick(client.player); - } drawMouseoverTooltip(context, mouseX, mouseY); + boolean spinning = handler.getPropertyDelegate().get(0) == 1; + boolean won = handler.getPropertyDelegate().get(1) == 1; + + // Start spin sound when spin starts + if (spinning && !wasSpinning) { + spinSound = new PositionedSoundInstance( + Szar.SLOT_MACHINE_BASE.getId(), + SoundCategory.MASTER, + 5.0f, + 1.0f, + net.minecraft.util.math.random.Random.create(), + true, + 0, + SoundInstance.AttenuationType.NONE, + 0.0, 0.0, 0.0, + true + ); + MinecraftClient.getInstance().getSoundManager().play(spinSound); + } + + // Stop spin sound when spin ends + if (!spinning && wasSpinning) { + stopSpinSound(); + } + + // === Delayed win sound logic === + if (!lastWinState && spinning) { + // spin is in progress, first tick that win property is set → start delay + winSoundPending = true; + winSoundDelay = 0; + } + + if (winSoundPending) { + winSoundDelay++; + if (winSoundDelay >= 15) { // 15-tick delay + if (inventory.player != null) { + if (won) { + inventory.player.playSound(Szar.SLOT_MACHINE_WIN, 5.0f, 1.0f); + inventory.player.playSound(Szar.WON, 5.0f, 1.0f); + } else { + inventory.player.playSound(Szar.DANGIT, 5.0f, 1.0f); + } + } + winSoundPending = false; + } + } + + lastWinState = won; + wasSpinning = spinning; + int guiLeft = (width - backgroundWidth) / 2; int guiTop = (height - backgroundHeight) / 2; @@ -111,7 +173,7 @@ public class SlotMachineScreen extends HandledScreen { // CALL SCREEN HANDLER LOGIC HERE if (client != null && client.player != null && client.interactionManager != null) { - client.interactionManager.clickButton(handler.syncId, 0); + client.interactionManager.clickButton(handler.syncId, 0); } } } @@ -146,4 +208,16 @@ public class SlotMachineScreen extends HandledScreen { return super.mouseClicked(mouseX, mouseY, button); } + + private void stopSpinSound() { + if (MinecraftClient.getInstance() != null && spinSound != null) { + MinecraftClient.getInstance().getSoundManager().stop(spinSound); + spinSound = null; + } + } + @Override + public void removed() { + super.removed(); + stopSpinSound(); + } } \ No newline at end of file diff --git a/src/client/java/dev/tggamesyt/szar/client/SzarClient.java b/src/client/java/dev/tggamesyt/szar/client/SzarClient.java index 23952e3..15d7544 100644 --- a/src/client/java/dev/tggamesyt/szar/client/SzarClient.java +++ b/src/client/java/dev/tggamesyt/szar/client/SzarClient.java @@ -118,7 +118,6 @@ public class SzarClient implements ClientModInitializer { // Apply the cosmetic profile on the main thread client.execute(() -> { ClientCosmetics.fetchMojangCapes(playerUuid); - System.out.println("got it client"); ClientCosmetics.apply(playerUuid, nameType, staticColor, gradientStart, gradientEnd, capeTexture); }); }); diff --git a/src/main/java/dev/tggamesyt/szar/BasicRotatableModelBlock.java b/src/main/java/dev/tggamesyt/szar/BasicRotatableModelBlock.java new file mode 100644 index 0000000..3b62333 --- /dev/null +++ b/src/main/java/dev/tggamesyt/szar/BasicRotatableModelBlock.java @@ -0,0 +1,77 @@ +package dev.tggamesyt.szar; + + +import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; +import net.minecraft.block.*; +import net.minecraft.block.entity.*; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; +import net.minecraft.network.PacketByteBuf; +import net.minecraft.screen.NamedScreenHandlerFactory; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.SimpleNamedScreenHandlerFactory; +import net.minecraft.server.network.ServerPlayerEntity; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.DirectionProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.text.Text; +import net.minecraft.util.*; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.*; +import net.minecraft.util.shape.*; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +public class BasicRotatableModelBlock extends Block { + + public static final DirectionProperty FACING = Properties.HORIZONTAL_FACING; + VoxelShape shape; + + public BasicRotatableModelBlock(Settings settings, VoxelShape shape) { + super(settings); + this.shape = shape; + setDefaultState(getStateManager().getDefaultState().with(FACING, Direction.NORTH)); + } + + private static VoxelShape rotateShape(Direction from, Direction to, VoxelShape shape) { + VoxelShape[] buffer = new VoxelShape[]{shape, VoxelShapes.empty()}; + + int times = (to.getHorizontal() - from.getHorizontal() + 4) % 4; + + for (int i = 0; i < times; i++) { + buffer[0].forEachBox((minX, minY, minZ, maxX, maxY, maxZ) -> + buffer[1] = VoxelShapes.union(buffer[1], + VoxelShapes.cuboid(1 - maxZ, minY, minX, 1 - minZ, maxY, maxX)) + ); + buffer[0] = buffer[1]; + buffer[1] = VoxelShapes.empty(); + } + + return buffer[0]; + } + + @Override + public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return rotateShape(Direction.NORTH, state.get(FACING), shape); + } + + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return getCollisionShape(state, world, pos, context); + } + + // ===== ROTATION ===== + + @Override + public BlockState getPlacementState(ItemPlacementContext ctx) { + return getDefaultState().with(FACING, ctx.getHorizontalPlayerFacing().getOpposite()); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING); + } +} diff --git a/src/main/java/dev/tggamesyt/szar/CasinoStructure.java b/src/main/java/dev/tggamesyt/szar/CasinoStructure.java new file mode 100644 index 0000000..a34ba51 --- /dev/null +++ b/src/main/java/dev/tggamesyt/szar/CasinoStructure.java @@ -0,0 +1,66 @@ +package dev.tggamesyt.szar; + +import com.mojang.serialization.Codec; +import net.minecraft.structure.StructurePlacementData; +import net.minecraft.util.BlockRotation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.math.random.ChunkRandom; +import net.minecraft.world.Heightmap; +import net.minecraft.world.gen.structure.Structure; +import net.minecraft.world.gen.structure.StructureType; + +import java.util.Optional; + +public class CasinoStructure extends Structure { + + public static final Codec CODEC = + Structure.createCodec(CasinoStructure::new); + + public CasinoStructure(Config config) { + super(config); + } + + @Override + protected Optional getStructurePosition(Context context) { + return Structure.getStructurePosition( + context, + Heightmap.Type.WORLD_SURFACE_WG, + collector -> { + + ChunkPos chunkPos = context.chunkPos(); + int x = chunkPos.getCenterX(); + int z = chunkPos.getCenterZ(); + + int y = context.chunkGenerator().getHeightInGround( + x, z, + Heightmap.Type.WORLD_SURFACE_WG, + context.world(), + context.noiseConfig() + ); + + BlockPos pos = new BlockPos(x, y, z); + + StructurePlacementData placement = + new StructurePlacementData() + .setRotation( + BlockRotation.random(context.random()) + ); + + collector.addPiece( + new CasinoStructurePiece( + context, + pos, + BlockPos.ORIGIN, + placement + ) + ); + } + ); + } + + @Override + public StructureType getType() { + return Szar.CASINO_TYPE; + } +} \ No newline at end of file diff --git a/src/main/java/dev/tggamesyt/szar/CasinoStructurePiece.java b/src/main/java/dev/tggamesyt/szar/CasinoStructurePiece.java new file mode 100644 index 0000000..4d6be18 --- /dev/null +++ b/src/main/java/dev/tggamesyt/szar/CasinoStructurePiece.java @@ -0,0 +1,60 @@ +package dev.tggamesyt.szar; + +import net.minecraft.nbt.NbtCompound; +import net.minecraft.structure.SimpleStructurePiece; +import net.minecraft.structure.StructureContext; +import net.minecraft.structure.StructurePlacementData; +import net.minecraft.structure.StructureTemplateManager; +import net.minecraft.structure.StructurePieceType; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockBox; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.random.Random; +import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.gen.structure.Structure; + +public class CasinoStructurePiece extends SimpleStructurePiece { + + private static final Identifier TEMPLATE_ID = + new Identifier(Szar.MOD_ID, "casino"); + + /* ===== NORMAL CONSTRUCTOR (Worldgen) ===== */ + public CasinoStructurePiece( + Structure.Context context, + BlockPos pos, + BlockPos origin, + StructurePlacementData placement + ) { + super( + Szar.CASINO_PIECE, + 0, + context.structureTemplateManager(), + TEMPLATE_ID, + TEMPLATE_ID.toString(), + placement, + pos + ); + } + + /* ===== NBT CONSTRUCTOR (Chunk Save/Load) ===== */ + public CasinoStructurePiece(StructureContext context, NbtCompound nbt) { + super( + Szar.CASINO_PIECE, + nbt, + context.structureTemplateManager(), + identifier -> new StructurePlacementData() + ); + } + + /* ===== Metadata Handler (DATA structure blocks) ===== */ + @Override + protected void handleMetadata( + String metadata, + BlockPos pos, + ServerWorldAccess world, + Random random, + BlockBox boundingBox + ) { + + } +} \ No newline at end of file diff --git a/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java b/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java index fc43399..ee5434c 100644 --- a/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java +++ b/src/main/java/dev/tggamesyt/szar/ServerCosmetics.java @@ -217,16 +217,11 @@ public class ServerCosmetics { /* ---------------- SYNC ---------------- */ public static void sync(ServerPlayerEntity player, UserCosmetics user) { - System.out.println("Syncing player: " + player.getName().getString() + " user: " + user.toString()); List original = player.getServer().getPlayerManager().getPlayerList(); List list = new ArrayList<>(original); if (!list.contains(player)) {list.add(player);} - System.out.println( - player.getServer().getPlayerManager().getPlayerList().size() - ); for (ServerPlayerEntity p : list) { - System.out.println("sending sync : " + player.getName().getString() + " to user: " + p.getName().getString()); PacketByteBuf buf = PacketByteBufs.create(); // Write player UUID first diff --git a/src/main/java/dev/tggamesyt/szar/SlotMachineScreenHandler.java b/src/main/java/dev/tggamesyt/szar/SlotMachineScreenHandler.java index 5969ead..afbda10 100644 --- a/src/main/java/dev/tggamesyt/szar/SlotMachineScreenHandler.java +++ b/src/main/java/dev/tggamesyt/szar/SlotMachineScreenHandler.java @@ -4,6 +4,8 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.SimpleInventory; import net.minecraft.item.ItemStack; +import net.minecraft.screen.ArrayPropertyDelegate; +import net.minecraft.screen.PropertyDelegate; import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.slot.Slot; import net.minecraft.util.ItemScatterer; @@ -14,23 +16,43 @@ import java.util.Random; public class SlotMachineScreenHandler extends ScreenHandler { + // ===== TIMING CONFIG ===== + public static final int PREPARE_TIME = 35; + public static final int FAST_SPIN_TIME = 35; + public static final int LOCK_INTERVAL = 8; + private static final int RESULT_VIEW_TIME = 80; + + private static final int IDLE_SPEED = 20; + private static final int PREPARE_SPEED = 8; + private static final int FAST_SPEED = 1; + public final SlotMachineBlockEntity blockEntity; private final SimpleInventory betInventory = new SimpleInventory(1); - private final Random random = new Random(); private final PlayerInventory playerInventory; + private final PropertyDelegate propertyDelegate; + private final Random random = new Random(); + + private int spinTimer = 0; + private boolean spinning = false; + private boolean lastSpinWon = false; + private int currentBetAmount = 0; private ItemStack currentBetStack = ItemStack.EMPTY; - private boolean spinning = false; - private int spinTicks = 0; - private SlotSymbol final0, final1, final2; + private boolean forceWin = false; + private int winTier = 0; // 0 = fruit, 1 = golden apple small, 2 = golden apple jackpot + public SlotMachineScreenHandler(int syncId, PlayerInventory playerInv, SlotMachineBlockEntity blockEntity) { super(Szar.SLOT_MACHINE_SCREEN_HANDLER_TYPE, syncId); this.playerInventory = playerInv; this.blockEntity = blockEntity; + this.propertyDelegate = new ArrayPropertyDelegate(2); + this.addProperties(propertyDelegate); + + // Bet slot this.addSlot(new Slot(betInventory, 0, 44, 35) { @Override public boolean canInsert(ItemStack stack) { @@ -43,115 +65,133 @@ public class SlotMachineScreenHandler extends ScreenHandler { } }); + // Player inventory slots for (int y = 0; y < 3; y++) for (int x = 0; x < 9; x++) this.addSlot(new Slot(playerInv, x + y * 9 + 9, 8 + x * 18, 84 + y * 18)); - for (int x = 0; x < 9; x++) this.addSlot(new Slot(playerInv, x, 8 + x * 18, 142)); } - @Override - public boolean canUse(PlayerEntity player) { - return true; - } - @Override public boolean onButtonClick(PlayerEntity player, int id) { - - if (id != 0) return false; - if (spinning) return false; + if (id != 0 || spinning) return false; ItemStack bet = betInventory.getStack(0); if (bet.isEmpty()) return false; - // TAKE BET IMMEDIATELY currentBetAmount = bet.getCount(); currentBetStack = bet.copy(); betInventory.setStack(0, ItemStack.EMPTY); - spinning = true; - spinTicks = 60; + // === Determine if this spin will definitely win (40%) === + forceWin = random.nextFloat() < 0.4f; + if (forceWin) { + float tierRoll = random.nextFloat(); + if (tierRoll < 0.80f) winTier = 0; // Fruit win (2x items) + else if (tierRoll < 0.96f) winTier = 1; // Golden Apple small (25x) + else winTier = 2; // Jackpot (100x) + } else { + winTier = -1; // no win + } - final0 = SlotSymbol.roll(random); - final1 = rollWithBias(final0); - final2 = rollWithBias(final0, final1); + // === Preselect final symbols based on forced win type === + if (forceWin) { + switch (winTier) { + case 0 -> { // fruit + final0 = SlotSymbol.rollFruit(random); + final1 = final0; + final2 = final0; + } + case 1 -> { // golden apple small + final0 = SlotSymbol.BELL; + final1 = final0; + final2 = final0; + } + case 2 -> { // jackpot + final0 = SlotSymbol.SEVEN; + final1 = final0; + final2 = final0; + } + } + } else { + final0 = SlotSymbol.roll(random); + final1 = SlotSymbol.roll(random); + final2 = SlotSymbol.roll(random); + if (final0 == final1 && final1 == final2) { + forceWin = true; + winTier = final0 == SlotSymbol.BELL ? 1 : final0 == SlotSymbol.SEVEN ? 2 : 0; + } + } + + spinTimer = 0; + spinning = true; + propertyDelegate.set(0, 1); return true; } - public void tick(PlayerEntity player) { + @Override + public void sendContentUpdates() { + super.sendContentUpdates(); - if (!spinning) return; - - spinTicks--; - - // Animate random symbols during spin - if (spinTicks > 40) { - blockEntity.setSymbols( - random.nextInt(7), - random.nextInt(7), - random.nextInt(7) - ); + if (!spinning) { + if (blockEntity.getWorld().getTime() % IDLE_SPEED == 0) { + blockEntity.setSymbols( + random.nextInt(7), + random.nextInt(7), + random.nextInt(7) + ); + } + return; } - // Lock first reel - if (spinTicks == 40) { - blockEntity.setSymbols( - final0.ordinal(), - random.nextInt(7), - random.nextInt(7) - ); + spinTimer++; + + int totalSpinDuration = + PREPARE_TIME + + FAST_SPIN_TIME + + LOCK_INTERVAL * 3 + + RESULT_VIEW_TIME; + + int speed = switch (spinTimer < PREPARE_TIME ? 0 : spinTimer < PREPARE_TIME + FAST_SPIN_TIME ? 1 : 2) { + case 0 -> PREPARE_SPEED; + case 1 -> FAST_SPEED; + default -> FAST_SPEED; + }; + + boolean lock0 = spinTimer >= PREPARE_TIME + FAST_SPIN_TIME + LOCK_INTERVAL; + boolean lock1 = spinTimer >= PREPARE_TIME + FAST_SPIN_TIME + LOCK_INTERVAL * 2; + boolean lock2 = spinTimer >= PREPARE_TIME + FAST_SPIN_TIME + LOCK_INTERVAL * 3; + + int reel0 = lock0 ? final0.ordinal() : random.nextInt(7); + int reel1 = lock1 ? final1.ordinal() : random.nextInt(7); + int reel2 = lock2 ? final2.ordinal() : random.nextInt(7); + + if (spinTimer % speed == 0) { + blockEntity.setSymbols(reel0, reel1, reel2); } - - // Lock second reel - if (spinTicks == 20) { - blockEntity.setSymbols( - final0.ordinal(), - final1.ordinal(), - random.nextInt(7) - ); + if (spinTimer >= (totalSpinDuration - RESULT_VIEW_TIME + 15)) { + propertyDelegate.set(1, forceWin ? 1 : 0); } - - // Lock third reel - if (spinTicks == 0) { - blockEntity.setSymbols( - final0.ordinal(), - final1.ordinal(), - final2.ordinal() - ); - - finishSpin(player); + if (spinTimer >= totalSpinDuration) { + finishSpin(playerInventory.player); spinning = false; + propertyDelegate.set(0, 0); } } - private SlotSymbol rollWithBias(SlotSymbol... biasToward) { - - float bonusChance = 0.20f; // 20% bonus chance toward existing symbol - - float r = random.nextFloat(); - - if (r < bonusChance) { - return biasToward[random.nextInt(biasToward.length)]; - } - - return SlotSymbol.roll(random); - } - private void finishSpin(PlayerEntity player) { + lastSpinWon = forceWin; - int payout = 0; - - if (final0 == final1 && final1 == final2) { - payout = switch (final0) { - case SEVEN -> currentBetAmount * 100; - case BELL -> currentBetAmount * 15; - default -> currentBetAmount * 2; + if (lastSpinWon) { + int payout = switch (winTier) { + case 0 -> currentBetAmount * 2; // fruit 2x + case 1 -> currentBetAmount * 16; // golden apple small + case 2 -> currentBetAmount * 32; // jackpot + default -> 0; }; - } - if (payout > 0) { Direction facing = blockEntity.getCachedState().get(SlotMachineBlock.FACING); BlockPos drop = blockEntity.getPos().offset(facing); @@ -163,84 +203,29 @@ public class SlotMachineScreenHandler extends ScreenHandler { new ItemStack(currentBetStack.getItem(), payout) ); } - currentBetAmount = 0; currentBetStack = ItemStack.EMPTY; } @Override - public ItemStack quickMove(PlayerEntity player, int index) { - ItemStack newStack = ItemStack.EMPTY; - Slot slot = this.slots.get(index); - - if (slot.hasStack()) { - ItemStack original = slot.getStack(); - newStack = original.copy(); - - // Prevent shift-click while spinning - if (spinning) { - return ItemStack.EMPTY; - } - - // If clicking bet slot → move to player inventory - if (index == 0) { - if (!this.insertItem(original, 1, this.slots.size(), true)) { - return ItemStack.EMPTY; - } - } - // If clicking player inventory → move to bet slot - else { - if (!this.insertItem(original, 0, 1, false)) { - return ItemStack.EMPTY; - } - } - - if (original.isEmpty()) { - slot.setStack(ItemStack.EMPTY); - } else { - slot.markDirty(); - } - } - - return newStack; + public boolean canUse(PlayerEntity player) { + return true; } @Override - public void sendContentUpdates() { - super.sendContentUpdates(); + public ItemStack quickMove(PlayerEntity player, int index) { + if (spinning) return ItemStack.EMPTY; + return ItemStack.EMPTY; + } - if (!spinning) return; + public PropertyDelegate getPropertyDelegate() { + return propertyDelegate; + } + public int getSpinTimer() { + return spinTimer; + } - spinTicks--; - - int reel0; - int reel1; - int reel2; - - if (spinTicks > 40) { - reel0 = random.nextInt(7); - } else { - reel0 = final0.ordinal(); - } - - if (spinTicks > 20) { - reel1 = random.nextInt(7); - } else { - reel1 = final1.ordinal(); - } - -// Reel 3 stops at tick 0 - if (spinTicks > 0) { - reel2 = random.nextInt(7); - } else { - reel2 = final2.ordinal(); - } - - blockEntity.setSymbols(reel0, reel1, reel2); - - if (spinTicks <= 0) { - finishSpin(playerInventory.player); - spinning = false; - } + public boolean didLastSpinWin() { + return forceWin; } } \ No newline at end of file diff --git a/src/main/java/dev/tggamesyt/szar/SlotSymbol.java b/src/main/java/dev/tggamesyt/szar/SlotSymbol.java index 101d405..5cac4fe 100644 --- a/src/main/java/dev/tggamesyt/szar/SlotSymbol.java +++ b/src/main/java/dev/tggamesyt/szar/SlotSymbol.java @@ -4,9 +4,11 @@ package dev.tggamesyt.szar; import net.minecraft.item.Item; import net.minecraft.item.Items; +import java.util.Random; + public enum SlotSymbol { - SEVEN(Items.ENCHANTED_GOLDEN_APPLE), - BELL(Items.GOLDEN_APPLE), + SEVEN(Items.DEEPSLATE_EMERALD_ORE), + BELL(Items.BELL), APPLE(Items.APPLE), SWEET_BERRIES(Items.SWEET_BERRIES), GLOW_BERRIES(Items.GLOW_BERRIES), @@ -20,12 +22,16 @@ public enum SlotSymbol { } // Roll a random symbol according to the specified probabilities - public static SlotSymbol roll(java.util.Random random) { + public static SlotSymbol roll(Random random) { float r = random.nextFloat(); if (r < 0.0255f) return SEVEN; // 2.55% else if (r < 0.0255f + 0.101f) return BELL; // 10.1% else { - // 5 fruits, equally likely + return rollFruit(random); + } + } + + public static SlotSymbol rollFruit(Random random) { int fruitIndex = random.nextInt(5); switch (fruitIndex) { case 0: return APPLE; @@ -34,6 +40,5 @@ public enum SlotSymbol { case 3: return MELON_SLICE; default: return CHORUS_FRUIT; } - } } } \ No newline at end of file diff --git a/src/main/java/dev/tggamesyt/szar/Szar.java b/src/main/java/dev/tggamesyt/szar/Szar.java index f196840..36d19c9 100644 --- a/src/main/java/dev/tggamesyt/szar/Szar.java +++ b/src/main/java/dev/tggamesyt/szar/Szar.java @@ -58,6 +58,8 @@ import net.minecraft.util.Formatting; import net.minecraft.util.Identifier; import net.minecraft.util.Rarity; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; import net.minecraft.village.TradeOffer; import net.minecraft.village.VillagerProfession; import net.minecraft.world.Heightmap; @@ -87,6 +89,36 @@ public class Szar implements ModInitializer { public static final String MOD_ID = "szar"; public static final Logger LOGGER = LogManager.getLogger(MOD_ID); public static MinecraftServer SERVER; + public static final SoundEvent SLOT_MACHINE_BASE = + Registry.register( + Registries.SOUND_EVENT, + new Identifier(Szar.MOD_ID, "slot_machine_base"), + SoundEvent.of(new Identifier(Szar.MOD_ID, "slot_machine_base")) + ); + public static final SoundEvent SLOT_MACHINE_WIN = + Registry.register( + Registries.SOUND_EVENT, + new Identifier(Szar.MOD_ID, "slot_machine_win"), + SoundEvent.of(new Identifier(Szar.MOD_ID, "slot_machine_win")) + ); + public static final SoundEvent LETS_GAMBLE = + Registry.register( + Registries.SOUND_EVENT, + new Identifier(Szar.MOD_ID, "lets_gamble"), + SoundEvent.of(new Identifier(Szar.MOD_ID, "lets_gamble")) + ); + public static final SoundEvent DANGIT = + Registry.register( + Registries.SOUND_EVENT, + new Identifier(Szar.MOD_ID, "aw_dangit"), + SoundEvent.of(new Identifier(Szar.MOD_ID, "aw_dangit")) + ); + public static final SoundEvent WON = + Registry.register( + Registries.SOUND_EVENT, + new Identifier(Szar.MOD_ID, "won"), + SoundEvent.of(new Identifier(Szar.MOD_ID, "won")) + ); public static final SoundEvent MERL_SOUND = SoundEvent.of(new Identifier("szar", "merl")); public static final Identifier PLANE_ANIM_PACKET = @@ -778,7 +810,95 @@ public class Szar implements ModInitializer { new Identifier(MOD_ID, "towers"), new BlockItem(OBELISK_CORE, new Item.Settings()) ); + public static final StructurePieceType CASINO_PIECE = + Registry.register( + Registries.STRUCTURE_PIECE, + new Identifier(MOD_ID, "casino_piece"), + CasinoStructurePiece::new + ); + public static final StructureType CASINO_TYPE = + Registry.register( + Registries.STRUCTURE_TYPE, + new Identifier(MOD_ID, "casino"), + () -> CasinoStructure.CODEC + ); + static VoxelShape shape0 = VoxelShapes.cuboid(0.1875f, 0f, 0.625f, 0.6875f, 0.5f, 1.125f); + static VoxelShape shape1 = VoxelShapes.cuboid(0.1875f, 1.5f, 0.625f, 0.6875f, 2f, 1.125f); + static VoxelShape shape2 = VoxelShapes.cuboid(0.5625f, 0f, 0.25f, 1.0625f, 2f, 0.75f); + static VoxelShape C_SHAPE = VoxelShapes.union(shape0, shape1, shape2); + public static final Block C_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(MOD_ID, "c"), + new BasicRotatableModelBlock( + AbstractBlock.Settings + .copy(Blocks.IRON_BLOCK), C_SHAPE + + )); + static VoxelShape shape3 = VoxelShapes.cuboid(0.25f, 0.5f, 0.25f, 0.75f, 1f, 0.75f); + static VoxelShape shape4 = VoxelShapes.cuboid(0.25f, 1.5f, 0.25f, 0.75f, 2f, 0.75f); + static VoxelShape shape5 = VoxelShapes.cuboid(0.625f, 0f, -0.0625f, 1.125f, 1.5f, 0.4375f); + static VoxelShape shape6 = VoxelShapes.cuboid(-0.125f, 0f, 0.5625f, 0.375f, 1.5f, 1.0625f); + static VoxelShape A_SHAPE = VoxelShapes.union(shape3, shape4, shape5, shape6); + public static final Block A_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(MOD_ID, "a"), + new BasicRotatableModelBlock( + AbstractBlock.Settings + .copy(Blocks.IRON_BLOCK), A_SHAPE + + )); + static VoxelShape shape8 = VoxelShapes.cuboid(0.3125f, 0f, 0f, 1.3125f, 0.5f, 0.5f); + static VoxelShape shape9 = VoxelShapes.cuboid(-0.0625f, 0f, 0.5625f, 0.4375f, 1.25f, 1.0625f); + static VoxelShape shape10 = VoxelShapes.cuboid(0.3125f, 0.75f, 0.25f, 0.8125f, 1.25f, 0.75f); + static VoxelShape shape11 = VoxelShapes.cuboid(-0.1875f, 1.5f, 0.3125f, 0.8125f, 2f, 0.8125f); + static VoxelShape shape12 = VoxelShapes.cuboid(0.625f, 0.75f, -0.1875f, 1.125f, 2f, 0.3125f); + static VoxelShape S_SHAPE = VoxelShapes.union(shape8, shape9, shape10, shape11, shape12); + public static final Block S_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(MOD_ID, "s"), + new BasicRotatableModelBlock( + AbstractBlock.Settings + .copy(Blocks.IRON_BLOCK), S_SHAPE + + )); + static VoxelShape shape13 = VoxelShapes.cuboid(0.25f, 0f, 0.25f, 0.75f, 2f, 0.75f); + static VoxelShape I_SHAPE = VoxelShapes.union(shape13); + public static final Block I_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(MOD_ID, "i"), + new BasicRotatableModelBlock( + AbstractBlock.Settings + .copy(Blocks.IRON_BLOCK), I_SHAPE + + )); + static VoxelShape shape14 = VoxelShapes.cuboid(0.25f, 0.25f, 0.375f, 0.5f, 0.75f, 0.875f); + static VoxelShape shape15 = VoxelShapes.cuboid(-0.125f, 0f, 0.5625f, 0.375f, 2f, 1.0625f); + static VoxelShape shape16 = VoxelShapes.cuboid(0.25f, 0.75f, 0.25f, 0.75f, 1.25f, 0.75f); + static VoxelShape shape17 = VoxelShapes.cuboid(0.5f, 1.25f, 0.125f, 0.75f, 1.75f, 0.625f); + static VoxelShape shape18 = VoxelShapes.cuboid(0.625f, 0f, -0.0625f, 1.125f, 2f, 0.4375f); + static VoxelShape N_SHAPE = VoxelShapes.union(shape14, shape15, shape16, shape17, shape18); + public static final Block N_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(MOD_ID, "n"), + new BasicRotatableModelBlock( + AbstractBlock.Settings + .copy(Blocks.IRON_BLOCK), N_SHAPE + + )); + static VoxelShape shape19 = VoxelShapes.cuboid(0.1875f, 0f, 0.125f, 1.1875f, 0.5f, 0.625f); + static VoxelShape shape20 = VoxelShapes.cuboid(-0.0625f, 0f, 0.625f, 0.4375f, 1.5f, 1.125f); + static VoxelShape shape21 = VoxelShapes.cuboid(-0.0625f, 1.5f, 0.5f, 0.9375f, 2f, 1f); + static VoxelShape shape22 = VoxelShapes.cuboid(0.6875f, 0.5f, 0f, 1.1875f, 2f, 0.5f); + static VoxelShape O_SHAPE = VoxelShapes.union(shape19, shape20, shape21, shape22); + public static final Block O_BLOCK = Registry.register( + Registries.BLOCK, + new Identifier(MOD_ID, "o"), + new BasicRotatableModelBlock( + AbstractBlock.Settings + .copy(Blocks.IRON_BLOCK), O_SHAPE + + )); public static final ScreenHandlerType SLOT_MACHINE_SCREEN_HANDLER_TYPE = ScreenHandlerRegistry.registerExtended( new Identifier(Szar.MOD_ID, "slot_machine"), diff --git a/src/main/resources/assets/szar/blockstates/a.json b/src/main/resources/assets/szar/blockstates/a.json new file mode 100644 index 0000000..87019bd --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/a.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "szar:block/a", "y": 0 }, + "facing=south": { "model": "szar:block/a", "y": 180 }, + "facing=west": { "model": "szar:block/a", "y": 270 }, + "facing=east": { "model": "szar:block/a", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/blockstates/c.json b/src/main/resources/assets/szar/blockstates/c.json new file mode 100644 index 0000000..5e7b623 --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/c.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "szar:block/c", "y": 0 }, + "facing=south": { "model": "szar:block/c", "y": 180 }, + "facing=west": { "model": "szar:block/c", "y": 270 }, + "facing=east": { "model": "szar:block/c", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/blockstates/casino.json b/src/main/resources/assets/szar/blockstates/casino.json new file mode 100644 index 0000000..9a8a6d1 --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/casino.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "szar:block/casino", "y": 0 }, + "facing=south": { "model": "szar:block/casino", "y": 180 }, + "facing=west": { "model": "szar:block/casino", "y": 270 }, + "facing=east": { "model": "szar:block/casino", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/blockstates/i.json b/src/main/resources/assets/szar/blockstates/i.json new file mode 100644 index 0000000..34509d0 --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/i.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "szar:block/i", "y": 0 }, + "facing=south": { "model": "szar:block/i", "y": 180 }, + "facing=west": { "model": "szar:block/i", "y": 270 }, + "facing=east": { "model": "szar:block/i", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/blockstates/n.json b/src/main/resources/assets/szar/blockstates/n.json new file mode 100644 index 0000000..3c6833a --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/n.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "szar:block/n", "y": 0 }, + "facing=south": { "model": "szar:block/n", "y": 180 }, + "facing=west": { "model": "szar:block/n", "y": 270 }, + "facing=east": { "model": "szar:block/n", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/blockstates/o.json b/src/main/resources/assets/szar/blockstates/o.json new file mode 100644 index 0000000..8dbf155 --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/o.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "szar:block/o", "y": 0 }, + "facing=south": { "model": "szar:block/o", "y": 180 }, + "facing=west": { "model": "szar:block/o", "y": 270 }, + "facing=east": { "model": "szar:block/o", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/blockstates/s.json b/src/main/resources/assets/szar/blockstates/s.json new file mode 100644 index 0000000..d7429cd --- /dev/null +++ b/src/main/resources/assets/szar/blockstates/s.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=north": { "model": "szar:block/s", "y": 0 }, + "facing=south": { "model": "szar:block/s", "y": 180 }, + "facing=west": { "model": "szar:block/s", "y": 270 }, + "facing=east": { "model": "szar:block/s", "y": 90 } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/lang/en_us.json b/src/main/resources/assets/szar/lang/en_us.json index b637bec..f31b611 100644 --- a/src/main/resources/assets/szar/lang/en_us.json +++ b/src/main/resources/assets/szar/lang/en_us.json @@ -80,5 +80,6 @@ "item.szar.white_liquid": "...", "item.szar.plane": "Plane", "item.szar.wheel": "Wheel", - "block.szar.slot_machine": "Slot Machine" + "block.szar.slot_machine": "Slot Machine", + "block.szar.casino": "Casino Title" } diff --git a/src/main/resources/assets/szar/models/block/a.json b/src/main/resources/assets/szar/models/block/a.json new file mode 100644 index 0000000..8d22840 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/a.json @@ -0,0 +1,112 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [9, 8, -1], + "to": [17, 16, 7], + "rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]}, + "faces": { + "north": {"uv": [0.25, 0.25, 0.75, 0.75], "texture": "#0"}, + "east": {"uv": [1.25, 0.25, 1.75, 0.75], "texture": "#0"}, + "south": {"uv": [2.25, 0.25, 2.75, 0.75], "texture": "#0"}, + "west": {"uv": [3.25, 0.25, 3.75, 0.75], "texture": "#0"}, + "up": {"uv": [4.25, 0.25, 4.75, 0.75], "texture": "#0"}, + "down": {"uv": [5.25, 0.25, 5.75, 0.75], "texture": "#0"} + } + }, + { + "from": [9, 24, -1], + "to": [17, 32, 7], + "rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]}, + "faces": { + "north": {"uv": [6.25, 0.25, 6.75, 0.75], "texture": "#0"}, + "east": {"uv": [7.25, 0.25, 7.75, 0.75], "texture": "#0"}, + "south": {"uv": [8.25, 0.25, 8.75, 0.75], "texture": "#0"}, + "west": {"uv": [9.25, 0.25, 9.75, 0.75], "texture": "#0"}, + "up": {"uv": [10.25, 0.25, 10.75, 0.75], "texture": "#0"}, + "down": {"uv": [11.25, 0.25, 11.75, 0.75], "texture": "#0"} + } + }, + { + "from": [17, 0, -1], + "to": [25, 24, 7], + "rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]}, + "faces": { + "north": {"uv": [12.25, 0.25, 12.75, 0.75], "texture": "#0"}, + "east": {"uv": [13.25, 0.25, 13.75, 0.75], "texture": "#0"}, + "south": {"uv": [14.25, 0.25, 14.75, 0.75], "texture": "#0"}, + "west": {"uv": [15.25, 0.25, 15.75, 0.75], "texture": "#0"}, + "up": {"uv": [0.25, 1.25, 0.75, 1.75], "texture": "#0"}, + "down": {"uv": [1.25, 1.25, 1.75, 1.75], "texture": "#0"} + } + }, + { + "from": [1, 0, -1], + "to": [9, 24, 7], + "rotation": {"angle": 45, "axis": "y", "origin": [13, 0, 3]}, + "faces": { + "north": {"uv": [2.25, 1.25, 2.75, 1.75], "texture": "#0"}, + "east": {"uv": [3.25, 1.25, 3.75, 1.75], "texture": "#0"}, + "south": {"uv": [4.25, 1.25, 4.75, 1.75], "texture": "#0"}, + "west": {"uv": [5.25, 1.25, 5.75, 1.75], "texture": "#0"}, + "up": {"uv": [6.25, 1.25, 6.75, 1.75], "texture": "#0"}, + "down": {"uv": [7.25, 1.25, 7.75, 1.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "A", + "origin": [10, 2, 7], + "color": 0, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/a_outline.json b/src/main/resources/assets/szar/models/block/a_outline.json new file mode 100644 index 0000000..36d5024 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/a_outline.json @@ -0,0 +1,112 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [4, 8, 4], + "to": [12, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0.25, 0.25, 0.75, 0.75], "texture": "#0"}, + "east": {"uv": [1.25, 0.25, 1.75, 0.75], "texture": "#0"}, + "south": {"uv": [2.25, 0.25, 2.75, 0.75], "texture": "#0"}, + "west": {"uv": [3.25, 0.25, 3.75, 0.75], "texture": "#0"}, + "up": {"uv": [4.25, 0.25, 4.75, 0.75], "texture": "#0"}, + "down": {"uv": [5.25, 0.25, 5.75, 0.75], "texture": "#0"} + } + }, + { + "from": [4, 24, 4], + "to": [12, 32, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [6.25, 0.25, 6.75, 0.75], "texture": "#0"}, + "east": {"uv": [7.25, 0.25, 7.75, 0.75], "texture": "#0"}, + "south": {"uv": [8.25, 0.25, 8.75, 0.75], "texture": "#0"}, + "west": {"uv": [9.25, 0.25, 9.75, 0.75], "texture": "#0"}, + "up": {"uv": [10.25, 0.25, 10.75, 0.75], "texture": "#0"}, + "down": {"uv": [11.25, 0.25, 11.75, 0.75], "texture": "#0"} + } + }, + { + "from": [10, 0, -1], + "to": [18, 24, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 3]}, + "faces": { + "north": {"uv": [12.25, 0.25, 12.75, 0.75], "texture": "#0"}, + "east": {"uv": [13.25, 0.25, 13.75, 0.75], "texture": "#0"}, + "south": {"uv": [14.25, 0.25, 14.75, 0.75], "texture": "#0"}, + "west": {"uv": [15.25, 0.25, 15.75, 0.75], "texture": "#0"}, + "up": {"uv": [0.25, 1.25, 0.75, 1.75], "texture": "#0"}, + "down": {"uv": [1.25, 1.25, 1.75, 1.75], "texture": "#0"} + } + }, + { + "from": [-2, 0, 9], + "to": [6, 24, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 0, 13]}, + "faces": { + "north": {"uv": [2.25, 1.25, 2.75, 1.75], "texture": "#0"}, + "east": {"uv": [3.25, 1.25, 3.75, 1.75], "texture": "#0"}, + "south": {"uv": [4.25, 1.25, 4.75, 1.75], "texture": "#0"}, + "west": {"uv": [5.25, 1.25, 5.75, 1.75], "texture": "#0"}, + "up": {"uv": [6.25, 1.25, 6.75, 1.75], "texture": "#0"}, + "down": {"uv": [7.25, 1.25, 7.75, 1.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "AB", + "origin": [10, 2, 7], + "color": 0, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/c.json b/src/main/resources/assets/szar/models/block/c.json new file mode 100644 index 0000000..4efbf2b --- /dev/null +++ b/src/main/resources/assets/szar/models/block/c.json @@ -0,0 +1,57 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [3, 0, 0], + "to": [11, 8, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [11, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.75, 1.75], "texture": "#0"}, + "east": {"uv": [9.25, 1.25, 9.75, 1.75], "texture": "#0"}, + "south": {"uv": [10.25, 1.25, 10.75, 1.75], "texture": "#0"}, + "west": {"uv": [11.25, 1.25, 11.75, 1.75], "texture": "#0"}, + "up": {"uv": [12.25, 1.25, 12.75, 1.75], "texture": "#0"}, + "down": {"uv": [13.25, 1.25, 13.75, 1.75], "texture": "#0"} + } + }, + { + "from": [3, 24, 0], + "to": [11, 32, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [11, 0, 1]}, + "faces": { + "north": {"uv": [14.25, 1.25, 14.75, 1.75], "texture": "#0"}, + "east": {"uv": [15.25, 1.25, 15.75, 1.75], "texture": "#0"}, + "south": {"uv": [0.25, 2.25, 0.75, 2.75], "texture": "#0"}, + "west": {"uv": [1.25, 2.25, 1.75, 2.75], "texture": "#0"}, + "up": {"uv": [2.25, 2.25, 2.75, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 2.25, 3.75, 2.75], "texture": "#0"} + } + }, + { + "from": [11, 0, 0], + "to": [19, 32, 8], + "rotation": {"angle": 45, "axis": "y", "origin": [11, 0, 1]}, + "faces": { + "north": {"uv": [4.25, 2.25, 4.75, 2.75], "texture": "#0"}, + "east": {"uv": [5.25, 2.25, 5.75, 2.75], "texture": "#0"}, + "south": {"uv": [6.25, 2.25, 6.75, 2.75], "texture": "#0"}, + "west": {"uv": [7.25, 2.25, 7.75, 2.75], "texture": "#0"}, + "up": {"uv": [8.25, 2.25, 8.75, 2.75], "texture": "#0"}, + "down": {"uv": [9.25, 2.25, 9.75, 2.75], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "C", + "origin": [10, 2, 7], + "color": 0, + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/c_outline.json b/src/main/resources/assets/szar/models/block/c_outline.json new file mode 100644 index 0000000..95a204d --- /dev/null +++ b/src/main/resources/assets/szar/models/block/c_outline.json @@ -0,0 +1,57 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [3, 0, 10], + "to": [11, 8, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 11]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.75, 1.75], "texture": "#0"}, + "east": {"uv": [9.25, 1.25, 9.75, 1.75], "texture": "#0"}, + "south": {"uv": [10.25, 1.25, 10.75, 1.75], "texture": "#0"}, + "west": {"uv": [11.25, 1.25, 11.75, 1.75], "texture": "#0"}, + "up": {"uv": [12.25, 1.25, 12.75, 1.75], "texture": "#0"}, + "down": {"uv": [13.25, 1.25, 13.75, 1.75], "texture": "#0"} + } + }, + { + "from": [3, 24, 10], + "to": [11, 32, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 0, 11]}, + "faces": { + "north": {"uv": [14.25, 1.25, 14.75, 1.75], "texture": "#0"}, + "east": {"uv": [15.25, 1.25, 15.75, 1.75], "texture": "#0"}, + "south": {"uv": [0.25, 2.25, 0.75, 2.75], "texture": "#0"}, + "west": {"uv": [1.25, 2.25, 1.75, 2.75], "texture": "#0"}, + "up": {"uv": [2.25, 2.25, 2.75, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 2.25, 3.75, 2.75], "texture": "#0"} + } + }, + { + "from": [9, 0, 4], + "to": [17, 32, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 5]}, + "faces": { + "north": {"uv": [4.25, 2.25, 4.75, 2.75], "texture": "#0"}, + "east": {"uv": [5.25, 2.25, 5.75, 2.75], "texture": "#0"}, + "south": {"uv": [6.25, 2.25, 6.75, 2.75], "texture": "#0"}, + "west": {"uv": [7.25, 2.25, 7.75, 2.75], "texture": "#0"}, + "up": {"uv": [8.25, 2.25, 8.75, 2.75], "texture": "#0"}, + "down": {"uv": [9.25, 2.25, 9.75, 2.75], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "CB", + "origin": [10, 2, 7], + "color": 0, + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/casino.json b/src/main/resources/assets/szar/models/block/casino.json new file mode 100644 index 0000000..ce73001 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/casino.json @@ -0,0 +1,378 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [19, 2, 7], + "to": [21, 4, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [0.25, 0.25, 0.75, 0.75], "texture": "#0"}, + "east": {"uv": [1.25, 0.25, 1.75, 0.75], "texture": "#0"}, + "south": {"uv": [2.25, 0.25, 2.75, 0.75], "texture": "#0"}, + "west": {"uv": [3.25, 0.25, 3.75, 0.75], "texture": "#0"}, + "up": {"uv": [4.25, 0.25, 4.75, 0.75], "texture": "#0"}, + "down": {"uv": [5.25, 0.25, 5.75, 0.75], "texture": "#0"} + } + }, + { + "from": [19, 6, 7], + "to": [21, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [6.25, 0.25, 6.75, 0.75], "texture": "#0"}, + "east": {"uv": [7.25, 0.25, 7.75, 0.75], "texture": "#0"}, + "south": {"uv": [8.25, 0.25, 8.75, 0.75], "texture": "#0"}, + "west": {"uv": [9.25, 0.25, 9.75, 0.75], "texture": "#0"}, + "up": {"uv": [10.25, 0.25, 10.75, 0.75], "texture": "#0"}, + "down": {"uv": [11.25, 0.25, 11.75, 0.75], "texture": "#0"} + } + }, + { + "from": [21, 0, 7], + "to": [23, 6, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [12.25, 0.25, 12.75, 0.75], "texture": "#0"}, + "east": {"uv": [13.25, 0.25, 13.75, 0.75], "texture": "#0"}, + "south": {"uv": [14.25, 0.25, 14.75, 0.75], "texture": "#0"}, + "west": {"uv": [15.25, 0.25, 15.75, 0.75], "texture": "#0"}, + "up": {"uv": [0.25, 1.25, 0.75, 1.75], "texture": "#0"}, + "down": {"uv": [1.25, 1.25, 1.75, 1.75], "texture": "#0"} + } + }, + { + "from": [17, 0, 7], + "to": [19, 6, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [2.25, 1.25, 2.75, 1.75], "texture": "#0"}, + "east": {"uv": [3.25, 1.25, 3.75, 1.75], "texture": "#0"}, + "south": {"uv": [4.25, 1.25, 4.75, 1.75], "texture": "#0"}, + "west": {"uv": [5.25, 1.25, 5.75, 1.75], "texture": "#0"}, + "up": {"uv": [6.25, 1.25, 6.75, 1.75], "texture": "#0"}, + "down": {"uv": [7.25, 1.25, 7.75, 1.75], "texture": "#0"} + } + }, + { + "from": [25, 0, 7], + "to": [27, 2, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.75, 1.75], "texture": "#0"}, + "east": {"uv": [9.25, 1.25, 9.75, 1.75], "texture": "#0"}, + "south": {"uv": [10.25, 1.25, 10.75, 1.75], "texture": "#0"}, + "west": {"uv": [11.25, 1.25, 11.75, 1.75], "texture": "#0"}, + "up": {"uv": [12.25, 1.25, 12.75, 1.75], "texture": "#0"}, + "down": {"uv": [13.25, 1.25, 13.75, 1.75], "texture": "#0"} + } + }, + { + "from": [25, 6, 7], + "to": [27, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [14.25, 1.25, 14.75, 1.75], "texture": "#0"}, + "east": {"uv": [15.25, 1.25, 15.75, 1.75], "texture": "#0"}, + "south": {"uv": [0.25, 2.25, 0.75, 2.75], "texture": "#0"}, + "west": {"uv": [1.25, 2.25, 1.75, 2.75], "texture": "#0"}, + "up": {"uv": [2.25, 2.25, 2.75, 2.75], "texture": "#0"}, + "down": {"uv": [3.25, 2.25, 3.75, 2.75], "texture": "#0"} + } + }, + { + "from": [27, 0, 7], + "to": [29, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [4.25, 2.25, 4.75, 2.75], "texture": "#0"}, + "east": {"uv": [5.25, 2.25, 5.75, 2.75], "texture": "#0"}, + "south": {"uv": [6.25, 2.25, 6.75, 2.75], "texture": "#0"}, + "west": {"uv": [7.25, 2.25, 7.75, 2.75], "texture": "#0"}, + "up": {"uv": [8.25, 2.25, 8.75, 2.75], "texture": "#0"}, + "down": {"uv": [9.25, 2.25, 9.75, 2.75], "texture": "#0"} + } + }, + { + "from": [11, 0, 7], + "to": [14, 2, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [10.25, 2.25, 10.75, 2.75], "texture": "#0"}, + "east": {"uv": [11.25, 2.25, 11.75, 2.75], "texture": "#0"}, + "south": {"uv": [12.25, 2.25, 12.75, 2.75], "texture": "#0"}, + "west": {"uv": [13.25, 2.25, 13.75, 2.75], "texture": "#0"}, + "up": {"uv": [14.25, 2.25, 14.75, 2.75], "texture": "#0"}, + "down": {"uv": [15.25, 2.25, 15.75, 2.75], "texture": "#0"} + } + }, + { + "from": [9, 0, 7], + "to": [11, 5, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [0.25, 3.25, 0.75, 3.75], "texture": "#0"}, + "east": {"uv": [1.25, 3.25, 1.75, 3.75], "texture": "#0"}, + "south": {"uv": [2.25, 3.25, 2.75, 3.75], "texture": "#0"}, + "west": {"uv": [3.25, 3.25, 3.75, 3.75], "texture": "#0"}, + "up": {"uv": [4.25, 3.25, 4.75, 3.75], "texture": "#0"}, + "down": {"uv": [5.25, 3.25, 5.75, 3.75], "texture": "#0"} + } + }, + { + "from": [11, 3, 7], + "to": [12, 5, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [6.25, 3.25, 6.75, 3.75], "texture": "#0"}, + "east": {"uv": [7.25, 3.25, 7.75, 3.75], "texture": "#0"}, + "south": {"uv": [8.25, 3.25, 8.75, 3.75], "texture": "#0"}, + "west": {"uv": [9.25, 3.25, 9.75, 3.75], "texture": "#0"}, + "up": {"uv": [10.25, 3.25, 10.75, 3.75], "texture": "#0"}, + "down": {"uv": [11.25, 3.25, 11.75, 3.75], "texture": "#0"} + } + }, + { + "from": [9, 6, 7], + "to": [12, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [12.25, 3.25, 12.75, 3.75], "texture": "#0"}, + "east": {"uv": [13.25, 3.25, 13.75, 3.75], "texture": "#0"}, + "south": {"uv": [14.25, 3.25, 14.75, 3.75], "texture": "#0"}, + "west": {"uv": [15.25, 3.25, 15.75, 3.75], "texture": "#0"}, + "up": {"uv": [0.25, 4.25, 0.75, 4.75], "texture": "#0"}, + "down": {"uv": [1.25, 4.25, 1.75, 4.75], "texture": "#0"} + } + }, + { + "from": [12, 3, 7], + "to": [14, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [2.25, 4.25, 2.75, 4.75], "texture": "#0"}, + "east": {"uv": [3.25, 4.25, 3.75, 4.75], "texture": "#0"}, + "south": {"uv": [4.25, 4.25, 4.75, 4.75], "texture": "#0"}, + "west": {"uv": [5.25, 4.25, 5.75, 4.75], "texture": "#0"}, + "up": {"uv": [6.25, 4.25, 6.75, 4.75], "texture": "#0"}, + "down": {"uv": [7.25, 4.25, 7.75, 4.75], "texture": "#0"} + } + }, + { + "from": [4, 0, 7], + "to": [6, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [8.25, 4.25, 8.75, 4.75], "texture": "#0"}, + "east": {"uv": [9.25, 4.25, 9.75, 4.75], "texture": "#0"}, + "south": {"uv": [10.25, 4.25, 10.75, 4.75], "texture": "#0"}, + "west": {"uv": [11.25, 4.25, 11.75, 4.75], "texture": "#0"}, + "up": {"uv": [12.25, 4.25, 12.75, 4.75], "texture": "#0"}, + "down": {"uv": [13.25, 4.25, 13.75, 4.75], "texture": "#0"} + } + }, + { + "from": [-2, 1, 7], + "to": [-1, 3, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [14.25, 4.25, 14.75, 4.75], "texture": "#0"}, + "east": {"uv": [15.25, 4.25, 15.75, 4.75], "texture": "#0"}, + "south": {"uv": [0.25, 5.25, 0.75, 5.75], "texture": "#0"}, + "west": {"uv": [1.25, 5.25, 1.75, 5.75], "texture": "#0"}, + "up": {"uv": [2.25, 5.25, 2.75, 5.75], "texture": "#0"}, + "down": {"uv": [3.25, 5.25, 3.75, 5.75], "texture": "#0"} + } + }, + { + "from": [-4, 0, 7], + "to": [-2, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [4.25, 5.25, 4.75, 5.75], "texture": "#0"}, + "east": {"uv": [5.25, 5.25, 5.75, 5.75], "texture": "#0"}, + "south": {"uv": [6.25, 5.25, 6.75, 5.75], "texture": "#0"}, + "west": {"uv": [7.25, 5.25, 7.75, 5.75], "texture": "#0"}, + "up": {"uv": [8.25, 5.25, 8.75, 5.75], "texture": "#0"}, + "down": {"uv": [9.25, 5.25, 9.75, 5.75], "texture": "#0"} + } + }, + { + "from": [-2, 3, 7], + "to": [0, 5, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [10.25, 5.25, 10.75, 5.75], "texture": "#0"}, + "east": {"uv": [11.25, 5.25, 11.75, 5.75], "texture": "#0"}, + "south": {"uv": [12.25, 5.25, 12.75, 5.75], "texture": "#0"}, + "west": {"uv": [13.25, 5.25, 13.75, 5.75], "texture": "#0"}, + "up": {"uv": [14.25, 5.25, 14.75, 5.75], "texture": "#0"}, + "down": {"uv": [15.25, 5.25, 15.75, 5.75], "texture": "#0"} + } + }, + { + "from": [-1, 5, 7], + "to": [0, 7, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [0.25, 6.25, 0.75, 6.75], "texture": "#0"}, + "east": {"uv": [1.25, 6.25, 1.75, 6.75], "texture": "#0"}, + "south": {"uv": [2.25, 6.25, 2.75, 6.75], "texture": "#0"}, + "west": {"uv": [3.25, 6.25, 3.75, 6.75], "texture": "#0"}, + "up": {"uv": [4.25, 6.25, 4.75, 6.75], "texture": "#0"}, + "down": {"uv": [5.25, 6.25, 5.75, 6.75], "texture": "#0"} + } + }, + { + "from": [0, 0, 7], + "to": [2, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [6.25, 6.25, 6.75, 6.75], "texture": "#0"}, + "east": {"uv": [7.25, 6.25, 7.75, 6.75], "texture": "#0"}, + "south": {"uv": [8.25, 6.25, 8.75, 6.75], "texture": "#0"}, + "west": {"uv": [9.25, 6.25, 9.75, 6.75], "texture": "#0"}, + "up": {"uv": [10.25, 6.25, 10.75, 6.75], "texture": "#0"}, + "down": {"uv": [11.25, 6.25, 11.75, 6.75], "texture": "#0"} + } + }, + { + "from": [-10, 0, 7], + "to": [-6, 2, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [12.25, 6.25, 12.75, 6.75], "texture": "#0"}, + "east": {"uv": [13.25, 6.25, 13.75, 6.75], "texture": "#0"}, + "south": {"uv": [14.25, 6.25, 14.75, 6.75], "texture": "#0"}, + "west": {"uv": [15.25, 6.25, 15.75, 6.75], "texture": "#0"}, + "up": {"uv": [0.25, 7.25, 0.75, 7.75], "texture": "#0"}, + "down": {"uv": [1.25, 7.25, 1.75, 7.75], "texture": "#0"} + } + }, + { + "from": [-12, 0, 7], + "to": [-10, 6, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [2.25, 7.25, 2.75, 7.75], "texture": "#0"}, + "east": {"uv": [3.25, 7.25, 3.75, 7.75], "texture": "#0"}, + "south": {"uv": [4.25, 7.25, 4.75, 7.75], "texture": "#0"}, + "west": {"uv": [5.25, 7.25, 5.75, 7.75], "texture": "#0"}, + "up": {"uv": [6.25, 7.25, 6.75, 7.75], "texture": "#0"}, + "down": {"uv": [7.25, 7.25, 7.75, 7.75], "texture": "#0"} + } + }, + { + "from": [-12, 6, 7], + "to": [-8, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [8.25, 7.25, 8.75, 7.75], "texture": "#0"}, + "east": {"uv": [9.25, 7.25, 9.75, 7.75], "texture": "#0"}, + "south": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"}, + "west": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"}, + "up": {"uv": [12.25, 7.25, 12.75, 7.75], "texture": "#0"}, + "down": {"uv": [13.25, 7.25, 13.75, 7.75], "texture": "#0"} + } + }, + { + "from": [-8, 2, 7], + "to": [-6, 8, 9], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 2, 8]}, + "faces": { + "north": {"uv": [14.25, 7.25, 14.75, 7.75], "texture": "#0"}, + "east": {"uv": [15.25, 7.25, 15.75, 7.75], "texture": "#0"}, + "south": {"uv": [0.25, 8.25, 0.75, 8.75], "texture": "#0"}, + "west": {"uv": [1.25, 8.25, 1.75, 8.75], "texture": "#0"}, + "up": {"uv": [2.25, 8.25, 2.75, 8.75], "texture": "#0"}, + "down": {"uv": [3.25, 8.25, 3.75, 8.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, -45, 0], + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "rotation": [0, 45, 0], + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, 90, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "A", + "origin": [10, 2, 7], + "color": 0, + "children": [0, 1, 2, 3] + }, + { + "name": "C", + "origin": [10, 2, 7], + "color": 0, + "children": [4, 5, 6] + }, + { + "name": "S", + "origin": [10, 2, 7], + "color": 2, + "children": [7, 8, 9, 10, 11] + }, + { + "name": "I", + "origin": [10, 2, 7], + "color": 3, + "children": [12] + }, + { + "name": "N", + "origin": [10, 2, 7], + "color": 4, + "children": [13, 14, 15, 16, 17] + }, + { + "name": "O", + "origin": [10, 2, 7], + "color": 6, + "children": [18, 19, 20, 21] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/i.json b/src/main/resources/assets/szar/models/block/i.json new file mode 100644 index 0000000..2991638 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/i.json @@ -0,0 +1,73 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 32, 12], + "rotation": {"angle": -45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.25, 4.25, 8.75, 4.75], "texture": "#0"}, + "east": {"uv": [9.25, 4.25, 9.75, 4.75], "texture": "#0"}, + "south": {"uv": [10.25, 4.25, 10.75, 4.75], "texture": "#0"}, + "west": {"uv": [11.25, 4.25, 11.75, 4.75], "texture": "#0"}, + "up": {"uv": [12.25, 4.25, 12.75, 4.75], "texture": "#0"}, + "down": {"uv": [13.25, 4.25, 13.75, 4.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "I", + "origin": [10, 2, 7], + "color": 3, + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/i_outline.json b/src/main/resources/assets/szar/models/block/i_outline.json new file mode 100644 index 0000000..2f3b50b --- /dev/null +++ b/src/main/resources/assets/szar/models/block/i_outline.json @@ -0,0 +1,72 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 32, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [8.25, 4.25, 8.75, 4.75], "texture": "#missing"}, + "east": {"uv": [9.25, 4.25, 9.75, 4.75], "texture": "#missing"}, + "south": {"uv": [10.25, 4.25, 10.75, 4.75], "texture": "#missing"}, + "west": {"uv": [11.25, 4.25, 11.75, 4.75], "texture": "#missing"}, + "up": {"uv": [12.25, 4.25, 12.75, 4.75], "texture": "#missing"}, + "down": {"uv": [13.25, 4.25, 13.75, 4.75], "texture": "#missing"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "I", + "origin": [10, 2, 7], + "color": 3, + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/n.json b/src/main/resources/assets/szar/models/block/n.json new file mode 100644 index 0000000..d66e84e --- /dev/null +++ b/src/main/resources/assets/szar/models/block/n.json @@ -0,0 +1,125 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [8, 12, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [14.25, 4.25, 14.75, 4.75], "texture": "#0"}, + "east": {"uv": [15.25, 4.25, 15.75, 4.75], "texture": "#0"}, + "south": {"uv": [0.25, 5.25, 0.75, 5.75], "texture": "#0"}, + "west": {"uv": [1.25, 5.25, 1.75, 5.75], "texture": "#0"}, + "up": {"uv": [2.25, 5.25, 2.75, 5.75], "texture": "#0"}, + "down": {"uv": [3.25, 5.25, 3.75, 5.75], "texture": "#0"} + } + }, + { + "from": [-4, 0, 4], + "to": [4, 32, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [4.25, 5.25, 4.75, 5.75], "texture": "#0"}, + "east": {"uv": [5.25, 5.25, 5.75, 5.75], "texture": "#0"}, + "south": {"uv": [6.25, 5.25, 6.75, 5.75], "texture": "#0"}, + "west": {"uv": [7.25, 5.25, 7.75, 5.75], "texture": "#0"}, + "up": {"uv": [8.25, 5.25, 8.75, 5.75], "texture": "#0"}, + "down": {"uv": [9.25, 5.25, 9.75, 5.75], "texture": "#0"} + } + }, + { + "from": [4, 12, 4], + "to": [12, 20, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [10.25, 5.25, 10.75, 5.75], "texture": "#0"}, + "east": {"uv": [11.25, 5.25, 11.75, 5.75], "texture": "#0"}, + "south": {"uv": [12.25, 5.25, 12.75, 5.75], "texture": "#0"}, + "west": {"uv": [13.25, 5.25, 13.75, 5.75], "texture": "#0"}, + "up": {"uv": [14.25, 5.25, 14.75, 5.75], "texture": "#0"}, + "down": {"uv": [15.25, 5.25, 15.75, 5.75], "texture": "#0"} + } + }, + { + "from": [8, 20, 4], + "to": [12, 28, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0.25, 6.25, 0.75, 6.75], "texture": "#0"}, + "east": {"uv": [1.25, 6.25, 1.75, 6.75], "texture": "#0"}, + "south": {"uv": [2.25, 6.25, 2.75, 6.75], "texture": "#0"}, + "west": {"uv": [3.25, 6.25, 3.75, 6.75], "texture": "#0"}, + "up": {"uv": [4.25, 6.25, 4.75, 6.75], "texture": "#0"}, + "down": {"uv": [5.25, 6.25, 5.75, 6.75], "texture": "#0"} + } + }, + { + "from": [12, 0, 4], + "to": [20, 32, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [6.25, 6.25, 6.75, 6.75], "texture": "#0"}, + "east": {"uv": [7.25, 6.25, 7.75, 6.75], "texture": "#0"}, + "south": {"uv": [8.25, 6.25, 8.75, 6.75], "texture": "#0"}, + "west": {"uv": [9.25, 6.25, 9.75, 6.75], "texture": "#0"}, + "up": {"uv": [10.25, 6.25, 10.75, 6.75], "texture": "#0"}, + "down": {"uv": [11.25, 6.25, 11.75, 6.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "N", + "origin": [10, 2, 7], + "color": 4, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/n_outline.json b/src/main/resources/assets/szar/models/block/n_outline.json new file mode 100644 index 0000000..1c6ca4f --- /dev/null +++ b/src/main/resources/assets/szar/models/block/n_outline.json @@ -0,0 +1,125 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [4, 4, 6], + "to": [8, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 10]}, + "faces": { + "north": {"uv": [14.25, 4.25, 14.75, 4.75], "texture": "#0"}, + "east": {"uv": [15.25, 4.25, 15.75, 4.75], "texture": "#0"}, + "south": {"uv": [0.25, 5.25, 0.75, 5.75], "texture": "#0"}, + "west": {"uv": [1.25, 5.25, 1.75, 5.75], "texture": "#0"}, + "up": {"uv": [2.25, 5.25, 2.75, 5.75], "texture": "#0"}, + "down": {"uv": [3.25, 5.25, 3.75, 5.75], "texture": "#0"} + } + }, + { + "from": [-2, 0, 9], + "to": [6, 32, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 0, 13]}, + "faces": { + "north": {"uv": [4.25, 5.25, 4.75, 5.75], "texture": "#0"}, + "east": {"uv": [5.25, 5.25, 5.75, 5.75], "texture": "#0"}, + "south": {"uv": [6.25, 5.25, 6.75, 5.75], "texture": "#0"}, + "west": {"uv": [7.25, 5.25, 7.75, 5.75], "texture": "#0"}, + "up": {"uv": [8.25, 5.25, 8.75, 5.75], "texture": "#0"}, + "down": {"uv": [9.25, 5.25, 9.75, 5.75], "texture": "#0"} + } + }, + { + "from": [4, 12, 4], + "to": [12, 20, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [10.25, 5.25, 10.75, 5.75], "texture": "#0"}, + "east": {"uv": [11.25, 5.25, 11.75, 5.75], "texture": "#0"}, + "south": {"uv": [12.25, 5.25, 12.75, 5.75], "texture": "#0"}, + "west": {"uv": [13.25, 5.25, 13.75, 5.75], "texture": "#0"}, + "up": {"uv": [14.25, 5.25, 14.75, 5.75], "texture": "#0"}, + "down": {"uv": [15.25, 5.25, 15.75, 5.75], "texture": "#0"} + } + }, + { + "from": [8, 20, 2], + "to": [12, 28, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 6]}, + "faces": { + "north": {"uv": [0.25, 6.25, 0.75, 6.75], "texture": "#0"}, + "east": {"uv": [1.25, 6.25, 1.75, 6.75], "texture": "#0"}, + "south": {"uv": [2.25, 6.25, 2.75, 6.75], "texture": "#0"}, + "west": {"uv": [3.25, 6.25, 3.75, 6.75], "texture": "#0"}, + "up": {"uv": [4.25, 6.25, 4.75, 6.75], "texture": "#0"}, + "down": {"uv": [5.25, 6.25, 5.75, 6.75], "texture": "#0"} + } + }, + { + "from": [10, 0, -1], + "to": [18, 32, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 3]}, + "faces": { + "north": {"uv": [6.25, 6.25, 6.75, 6.75], "texture": "#0"}, + "east": {"uv": [7.25, 6.25, 7.75, 6.75], "texture": "#0"}, + "south": {"uv": [8.25, 6.25, 8.75, 6.75], "texture": "#0"}, + "west": {"uv": [9.25, 6.25, 9.75, 6.75], "texture": "#0"}, + "up": {"uv": [10.25, 6.25, 10.75, 6.75], "texture": "#0"}, + "down": {"uv": [11.25, 6.25, 11.75, 6.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "NB", + "origin": [10, 2, 7], + "color": 4, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/o.json b/src/main/resources/assets/szar/models/block/o.json new file mode 100644 index 0000000..1f71602 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/o.json @@ -0,0 +1,112 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [1, 0, 7], + "to": [17, 8, 15], + "rotation": {"angle": 45, "axis": "y", "origin": [4, 0, 10]}, + "faces": { + "north": {"uv": [12.25, 6.25, 12.75, 6.75], "texture": "#0"}, + "east": {"uv": [13.25, 6.25, 13.75, 6.75], "texture": "#0"}, + "south": {"uv": [14.25, 6.25, 14.75, 6.75], "texture": "#0"}, + "west": {"uv": [15.25, 6.25, 15.75, 6.75], "texture": "#0"}, + "up": {"uv": [0.25, 7.25, 0.75, 7.75], "texture": "#0"}, + "down": {"uv": [1.25, 7.25, 1.75, 7.75], "texture": "#0"} + } + }, + { + "from": [-7, 0, 7], + "to": [1, 24, 15], + "rotation": {"angle": 45, "axis": "y", "origin": [4, 0, 10]}, + "faces": { + "north": {"uv": [2.25, 7.25, 2.75, 7.75], "texture": "#0"}, + "east": {"uv": [3.25, 7.25, 3.75, 7.75], "texture": "#0"}, + "south": {"uv": [4.25, 7.25, 4.75, 7.75], "texture": "#0"}, + "west": {"uv": [5.25, 7.25, 5.75, 7.75], "texture": "#0"}, + "up": {"uv": [6.25, 7.25, 6.75, 7.75], "texture": "#0"}, + "down": {"uv": [7.25, 7.25, 7.75, 7.75], "texture": "#0"} + } + }, + { + "from": [-7, 24, 7], + "to": [9, 32, 15], + "rotation": {"angle": 45, "axis": "y", "origin": [4, 18, 10]}, + "faces": { + "north": {"uv": [8.25, 7.25, 8.75, 7.75], "texture": "#0"}, + "east": {"uv": [9.25, 7.25, 9.75, 7.75], "texture": "#0"}, + "south": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"}, + "west": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"}, + "up": {"uv": [12.25, 7.25, 12.75, 7.75], "texture": "#0"}, + "down": {"uv": [13.25, 7.25, 13.75, 7.75], "texture": "#0"} + } + }, + { + "from": [9, 8, 7], + "to": [17, 32, 15], + "rotation": {"angle": 45, "axis": "y", "origin": [4, 6, 10]}, + "faces": { + "north": {"uv": [14.25, 7.25, 14.75, 7.75], "texture": "#0"}, + "east": {"uv": [15.25, 7.25, 15.75, 7.75], "texture": "#0"}, + "south": {"uv": [0.25, 8.25, 0.75, 8.75], "texture": "#0"}, + "west": {"uv": [1.25, 8.25, 1.75, 8.75], "texture": "#0"}, + "up": {"uv": [2.25, 8.25, 2.75, 8.75], "texture": "#0"}, + "down": {"uv": [3.25, 8.25, 3.75, 8.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "O", + "origin": [10, 2, 7], + "color": 6, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/o_outline.json b/src/main/resources/assets/szar/models/block/o_outline.json new file mode 100644 index 0000000..fe8e948 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/o_outline.json @@ -0,0 +1,112 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "0": "szar:block/casino_red", + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [3, 0, 2], + "to": [19, 8, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 0, 5]}, + "faces": { + "north": {"uv": [12.25, 6.25, 12.75, 6.75], "texture": "#0"}, + "east": {"uv": [13.25, 6.25, 13.75, 6.75], "texture": "#0"}, + "south": {"uv": [14.25, 6.25, 14.75, 6.75], "texture": "#0"}, + "west": {"uv": [15.25, 6.25, 15.75, 6.75], "texture": "#0"}, + "up": {"uv": [0.25, 7.25, 0.75, 7.75], "texture": "#0"}, + "down": {"uv": [1.25, 7.25, 1.75, 7.75], "texture": "#0"} + } + }, + { + "from": [-1, 0, 10], + "to": [7, 24, 18], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 0, 13]}, + "faces": { + "north": {"uv": [2.25, 7.25, 2.75, 7.75], "texture": "#0"}, + "east": {"uv": [3.25, 7.25, 3.75, 7.75], "texture": "#0"}, + "south": {"uv": [4.25, 7.25, 4.75, 7.75], "texture": "#0"}, + "west": {"uv": [5.25, 7.25, 5.75, 7.75], "texture": "#0"}, + "up": {"uv": [6.25, 7.25, 6.75, 7.75], "texture": "#0"}, + "down": {"uv": [7.25, 7.25, 7.75, 7.75], "texture": "#0"} + } + }, + { + "from": [-1, 24, 8], + "to": [15, 32, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 18, 11]}, + "faces": { + "north": {"uv": [8.25, 7.25, 8.75, 7.75], "texture": "#0"}, + "east": {"uv": [9.25, 7.25, 9.75, 7.75], "texture": "#0"}, + "south": {"uv": [10.25, 7.25, 10.75, 7.75], "texture": "#0"}, + "west": {"uv": [11.25, 7.25, 11.75, 7.75], "texture": "#0"}, + "up": {"uv": [12.25, 7.25, 12.75, 7.75], "texture": "#0"}, + "down": {"uv": [13.25, 7.25, 13.75, 7.75], "texture": "#0"} + } + }, + { + "from": [11, 8, 0], + "to": [19, 32, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 6, 3]}, + "faces": { + "north": {"uv": [14.25, 7.25, 14.75, 7.75], "texture": "#0"}, + "east": {"uv": [15.25, 7.25, 15.75, 7.75], "texture": "#0"}, + "south": {"uv": [0.25, 8.25, 0.75, 8.75], "texture": "#0"}, + "west": {"uv": [1.25, 8.25, 1.75, 8.75], "texture": "#0"}, + "up": {"uv": [2.25, 8.25, 2.75, 8.75], "texture": "#0"}, + "down": {"uv": [3.25, 8.25, 3.75, 8.75], "texture": "#0"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "OB", + "origin": [10, 2, 7], + "color": 6, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/s.json b/src/main/resources/assets/szar/models/block/s.json new file mode 100644 index 0000000..93f5278 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/s.json @@ -0,0 +1,124 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [5, 0, 4], + "to": [21, 8, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [10.25, 2.25, 10.75, 2.75], "texture": "#particle"}, + "east": {"uv": [11.25, 2.25, 11.75, 2.75], "texture": "#particle"}, + "south": {"uv": [12.25, 2.25, 12.75, 2.75], "texture": "#particle"}, + "west": {"uv": [13.25, 2.25, 13.75, 2.75], "texture": "#particle"}, + "up": {"uv": [14.25, 2.25, 14.75, 2.75], "texture": "#particle"}, + "down": {"uv": [15.25, 2.25, 15.75, 2.75], "texture": "#particle"} + } + }, + { + "from": [-3, 0, 4], + "to": [5, 20, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [0.25, 3.25, 0.75, 3.75], "texture": "#particle"}, + "east": {"uv": [1.25, 3.25, 1.75, 3.75], "texture": "#particle"}, + "south": {"uv": [2.25, 3.25, 2.75, 3.75], "texture": "#particle"}, + "west": {"uv": [3.25, 3.25, 3.75, 3.75], "texture": "#particle"}, + "up": {"uv": [4.25, 3.25, 4.75, 3.75], "texture": "#particle"}, + "down": {"uv": [5.25, 3.25, 5.75, 3.75], "texture": "#particle"} + } + }, + { + "from": [5, 12, 4], + "to": [13, 20, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [6.25, 3.25, 6.75, 3.75], "texture": "#particle"}, + "east": {"uv": [7.25, 3.25, 7.75, 3.75], "texture": "#particle"}, + "south": {"uv": [8.25, 3.25, 8.75, 3.75], "texture": "#particle"}, + "west": {"uv": [9.25, 3.25, 9.75, 3.75], "texture": "#particle"}, + "up": {"uv": [10.25, 3.25, 10.75, 3.75], "texture": "#particle"}, + "down": {"uv": [11.25, 3.25, 11.75, 3.75], "texture": "#particle"} + } + }, + { + "from": [-3, 24, 4], + "to": [13, 32, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [12.25, 3.25, 12.75, 3.75], "texture": "#particle"}, + "east": {"uv": [13.25, 3.25, 13.75, 3.75], "texture": "#particle"}, + "south": {"uv": [14.25, 3.25, 14.75, 3.75], "texture": "#particle"}, + "west": {"uv": [15.25, 3.25, 15.75, 3.75], "texture": "#particle"}, + "up": {"uv": [0.25, 4.25, 0.75, 4.75], "texture": "#particle"}, + "down": {"uv": [1.25, 4.25, 1.75, 4.75], "texture": "#particle"} + } + }, + { + "from": [13, 12, 4], + "to": [21, 32, 12], + "rotation": {"angle": 45, "axis": "y", "origin": [8, 0, 8]}, + "faces": { + "north": {"uv": [2.25, 4.25, 2.75, 4.75], "texture": "#particle"}, + "east": {"uv": [3.25, 4.25, 3.75, 4.75], "texture": "#particle"}, + "south": {"uv": [4.25, 4.25, 4.75, 4.75], "texture": "#particle"}, + "west": {"uv": [5.25, 4.25, 5.75, 4.75], "texture": "#particle"}, + "up": {"uv": [6.25, 4.25, 6.75, 4.75], "texture": "#particle"}, + "down": {"uv": [7.25, 4.25, 7.75, 4.75], "texture": "#particle"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "S", + "origin": [10, 2, 7], + "color": 2, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/block/s_outline.json b/src/main/resources/assets/szar/models/block/s_outline.json new file mode 100644 index 0000000..1d61c23 --- /dev/null +++ b/src/main/resources/assets/szar/models/block/s_outline.json @@ -0,0 +1,129 @@ +{ + "format_version": "1.9.0", + "credit": "Made with Blockbench", + "textures": { + "particle": "szar:block/casino_red" + }, + "elements": [ + { + "from": [5, 0, 0], + "to": [21, 8, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 2, 1]}, + "color": 7, + "faces": { + "north": {"uv": [10.25, 2.25, 10.75, 2.75], "texture": "#missing"}, + "east": {"uv": [11.25, 2.25, 11.75, 2.75], "texture": "#missing"}, + "south": {"uv": [12.25, 2.25, 12.75, 2.75], "texture": "#missing"}, + "west": {"uv": [13.25, 2.25, 13.75, 2.75], "texture": "#missing"}, + "up": {"uv": [14.25, 2.25, 14.75, 2.75], "texture": "#missing"}, + "down": {"uv": [15.25, 2.25, 15.75, 2.75], "texture": "#missing"} + } + }, + { + "from": [-1, 0, 9], + "to": [7, 20, 17], + "rotation": {"angle": 0, "axis": "y", "origin": [-2, 2, 10]}, + "color": 0, + "faces": { + "north": {"uv": [0.25, 3.25, 0.75, 3.75], "texture": "#missing"}, + "east": {"uv": [1.25, 3.25, 1.75, 3.75], "texture": "#missing"}, + "south": {"uv": [2.25, 3.25, 2.75, 3.75], "texture": "#missing"}, + "west": {"uv": [3.25, 3.25, 3.75, 3.75], "texture": "#missing"}, + "up": {"uv": [4.25, 3.25, 4.75, 3.75], "texture": "#missing"}, + "down": {"uv": [5.25, 3.25, 5.75, 3.75], "texture": "#missing"} + } + }, + { + "from": [5, 12, 4], + "to": [13, 20, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 11, 5]}, + "color": 4, + "faces": { + "north": {"uv": [6.25, 3.25, 6.75, 3.75], "texture": "#missing"}, + "east": {"uv": [7.25, 3.25, 7.75, 3.75], "texture": "#missing"}, + "south": {"uv": [8.25, 3.25, 8.75, 3.75], "texture": "#missing"}, + "west": {"uv": [9.25, 3.25, 9.75, 3.75], "texture": "#missing"}, + "up": {"uv": [10.25, 3.25, 10.75, 3.75], "texture": "#missing"}, + "down": {"uv": [11.25, 3.25, 11.75, 3.75], "texture": "#missing"} + } + }, + { + "from": [-3, 24, 5], + "to": [13, 32, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [-3, 20, 6]}, + "color": 3, + "faces": { + "north": {"uv": [12.25, 3.25, 12.75, 3.75], "texture": "#missing"}, + "east": {"uv": [13.25, 3.25, 13.75, 3.75], "texture": "#missing"}, + "south": {"uv": [14.25, 3.25, 14.75, 3.75], "texture": "#missing"}, + "west": {"uv": [15.25, 3.25, 15.75, 3.75], "texture": "#missing"}, + "up": {"uv": [0.25, 4.25, 0.75, 4.75], "texture": "#missing"}, + "down": {"uv": [1.25, 4.25, 1.75, 4.75], "texture": "#missing"} + } + }, + { + "from": [10, 12, -3], + "to": [18, 32, 5], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 11, -2]}, + "color": 8, + "faces": { + "north": {"uv": [2.25, 4.25, 2.75, 4.75], "texture": "#missing"}, + "east": {"uv": [3.25, 4.25, 3.75, 4.75], "texture": "#missing"}, + "south": {"uv": [4.25, 4.25, 4.75, 4.75], "texture": "#missing"}, + "west": {"uv": [5.25, 4.25, 5.75, 4.75], "texture": "#missing"}, + "up": {"uv": [6.25, 4.25, 6.75, 4.75], "texture": "#missing"}, + "down": {"uv": [7.25, 4.25, 7.75, 4.75], "texture": "#missing"} + } + } + ], + "display": { + "thirdperson_righthand": { + "translation": [0, 0, -1.5], + "scale": [0.2, 0.2, 0.2] + }, + "thirdperson_lefthand": { + "translation": [0, 0, -0.25], + "scale": [0.2, 0.2, 0.2] + }, + "firstperson_righthand": { + "rotation": [0, -180, 0], + "translation": [33.25, -15, -45.5] + }, + "firstperson_lefthand": { + "rotation": [0, -180, 0], + "translation": [31.25, -15, -45.75] + }, + "ground": { + "translation": [0, 0.75, 0], + "scale": [0.2, 0.2, 0.2] + }, + "gui": { + "rotation": [0, 135, 0], + "translation": [0.25, 1.5, 0], + "scale": [0.3, 0.3, 0.3] + }, + "head": { + "rotation": [0, -45, 0], + "translation": [0, 38.5, 0], + "scale": [4, 4, 4] + }, + "fixed": { + "rotation": [0, -45, 0], + "translation": [-0.5, 2, 0], + "scale": [0.4, 0.4, 0.4] + }, + "on_shelf": { + "rotation": [0, 135, 0], + "translation": [1.25, 0, 0], + "scale": [0.4, 0.4, 0.4] + } + }, + "groups": [ + { + "name": "SB", + "origin": [10, 2, 7], + "color": 2, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/models/item/casino.json b/src/main/resources/assets/szar/models/item/casino.json new file mode 100644 index 0000000..c470cbf --- /dev/null +++ b/src/main/resources/assets/szar/models/item/casino.json @@ -0,0 +1,3 @@ +{ + "parent": "szar:block/casino" +} diff --git a/src/main/resources/assets/szar/sounds.json b/src/main/resources/assets/szar/sounds.json index 4b16277..179c51a 100644 --- a/src/main/resources/assets/szar/sounds.json +++ b/src/main/resources/assets/szar/sounds.json @@ -82,5 +82,29 @@ "stream": true } ] + }, + "lets_gamble": { + "sounds": [ + { + "name": "szar:lets_gamble", + "stream": true + } + ] + }, + "aw_dangit": { + "sounds": [ + { + "name": "szar:aw_dangit", + "stream": true + } + ] + }, + "won": { + "sounds": [ + { + "name": "szar:won", + "stream": true + } + ] } } diff --git a/src/main/resources/assets/szar/sounds/aw_dangit.ogg b/src/main/resources/assets/szar/sounds/aw_dangit.ogg new file mode 100644 index 0000000..4f484a6 Binary files /dev/null and b/src/main/resources/assets/szar/sounds/aw_dangit.ogg differ diff --git a/src/main/resources/assets/szar/sounds/lets_gamble.ogg b/src/main/resources/assets/szar/sounds/lets_gamble.ogg new file mode 100644 index 0000000..e25f9bc Binary files /dev/null and b/src/main/resources/assets/szar/sounds/lets_gamble.ogg differ diff --git a/src/main/resources/assets/szar/sounds/won.ogg b/src/main/resources/assets/szar/sounds/won.ogg new file mode 100644 index 0000000..799e2a2 Binary files /dev/null and b/src/main/resources/assets/szar/sounds/won.ogg differ diff --git a/src/main/resources/assets/szar/textures/block/casino_red.png b/src/main/resources/assets/szar/textures/block/casino_red.png new file mode 100644 index 0000000..10c4096 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/casino_red.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1.png new file mode 100644 index 0000000..a3c96ed Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_down.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_down.png new file mode 100644 index 0000000..f09e7b7 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_down.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_down.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_down.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_down.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_up.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_up.png new file mode 100644 index 0000000..74966f4 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_up.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_up.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_up.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_1_up.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2.png new file mode 100644 index 0000000..7e41ed7 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_down.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_down.png new file mode 100644 index 0000000..8b51a55 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_down.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_down.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_down.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_down.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_up.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_up.png new file mode 100644 index 0000000..12aa92e Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_up.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_up.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_up.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_2_up.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3.png new file mode 100644 index 0000000..645cd07 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_down.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_down.png new file mode 100644 index 0000000..6139405 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_down.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_down.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_down.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_down.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_up.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_up.png new file mode 100644 index 0000000..aba0d5a Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_up.png differ diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_up.png.mcmeta b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_up.png.mcmeta new file mode 100644 index 0000000..8ddc3cf --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/old_slots_backup/slot_3_up.png.mcmeta @@ -0,0 +1,6 @@ +{ + "animation": { + "interpolate": false, + "frametime": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/old_slots_backup/slotmachine_slots_og.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slotmachine_slots_og.png new file mode 100644 index 0000000..d58f6d8 Binary files /dev/null and b/src/main/resources/assets/szar/textures/block/old_slots_backup/slotmachine_slots_og.png differ diff --git a/src/main/resources/assets/szar/textures/block/slotmachine_slots_noback.png b/src/main/resources/assets/szar/textures/block/old_slots_backup/slotmachine_slots_og_noback.png similarity index 100% rename from src/main/resources/assets/szar/textures/block/slotmachine_slots_noback.png rename to src/main/resources/assets/szar/textures/block/old_slots_backup/slotmachine_slots_og_noback.png diff --git a/src/main/resources/assets/szar/textures/block/slot_1.png b/src/main/resources/assets/szar/textures/block/slot_1.png index a3c96ed..1b21a40 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_1.png and b/src/main/resources/assets/szar/textures/block/slot_1.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_1_down.png b/src/main/resources/assets/szar/textures/block/slot_1_down.png index f09e7b7..5a64bc0 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_1_down.png and b/src/main/resources/assets/szar/textures/block/slot_1_down.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_1_up.png b/src/main/resources/assets/szar/textures/block/slot_1_up.png index 74966f4..d3d4362 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_1_up.png and b/src/main/resources/assets/szar/textures/block/slot_1_up.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_2.png b/src/main/resources/assets/szar/textures/block/slot_2.png index 7e41ed7..3263a86 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_2.png and b/src/main/resources/assets/szar/textures/block/slot_2.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_2_down.png b/src/main/resources/assets/szar/textures/block/slot_2_down.png index 8b51a55..30fe943 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_2_down.png and b/src/main/resources/assets/szar/textures/block/slot_2_down.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_2_up.png b/src/main/resources/assets/szar/textures/block/slot_2_up.png index 12aa92e..11f53bf 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_2_up.png and b/src/main/resources/assets/szar/textures/block/slot_2_up.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_3.png b/src/main/resources/assets/szar/textures/block/slot_3.png index 645cd07..c1b9308 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_3.png and b/src/main/resources/assets/szar/textures/block/slot_3.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_3_down.png b/src/main/resources/assets/szar/textures/block/slot_3_down.png index 6139405..efb9c2e 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_3_down.png and b/src/main/resources/assets/szar/textures/block/slot_3_down.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_3_up.png b/src/main/resources/assets/szar/textures/block/slot_3_up.png index aba0d5a..a4cbcee 100644 Binary files a/src/main/resources/assets/szar/textures/block/slot_3_up.png and b/src/main/resources/assets/szar/textures/block/slot_3_up.png differ diff --git a/src/main/resources/assets/szar/textures/block/slot_animation.py b/src/main/resources/assets/szar/textures/block/slot_animation.py new file mode 100644 index 0000000..29bc88f --- /dev/null +++ b/src/main/resources/assets/szar/textures/block/slot_animation.py @@ -0,0 +1,109 @@ +import os +import random +from PIL import Image +import json + +# --------------------- CONFIG --------------------- +INPUT_PATH = r"slotmachine_slots.png" +OUTPUT_DIR = r"" # folder to save output +NUM_SLOTS = 3 +SPEED = -4 # pixels per frame, positive = up, negative = down +# --------------------------------------- + +os.makedirs(OUTPUT_DIR, exist_ok=True) + +original = Image.open(INPUT_PATH) +width, height = original.size +FRAME_SIZE = width # square frames + +if height % FRAME_SIZE != 0: + raise ValueError("Image height must be divisible by its width (square frames).") + +num_frames = height // FRAME_SIZE +total_pixels = height # total pixels for smooth sliding + + +# ---------------- HELPER FUNCTIONS ---------------- +def create_animation_image(img, start_y, speed=SPEED): + """ + Create rolling animation starting at absolute pixel y. + Wraps around the image if crop goes past the bottom. + Speed determines pixels per frame (positive = up, negative = down) + """ + frames_list = [] + for i in range(total_pixels): + y = (start_y + i * speed) % total_pixels + if y + FRAME_SIZE <= total_pixels: + frame = img.crop((0, y, width, y + FRAME_SIZE)) + else: + part1 = img.crop((0, y, width, total_pixels)) + part2 = img.crop((0, 0, width, FRAME_SIZE - (total_pixels - y))) + frame = Image.new("RGBA", (width, FRAME_SIZE)) + frame.paste(part1, (0, 0)) + frame.paste(part2, (0, part1.height)) + frames_list.append(frame) + + final_img = Image.new("RGBA", (width, FRAME_SIZE * len(frames_list))) + for idx, frame in enumerate(frames_list): + final_img.paste(frame, (0, idx * FRAME_SIZE)) + return final_img + + +def save_png_and_mcmeta(image, base_name): + png_path = os.path.join(OUTPUT_DIR, base_name + ".png") + mcmeta_path = png_path + ".mcmeta" + image.save(png_path) + json.dump({"animation": {"interpolate": False, "frametime": 1}}, + open(mcmeta_path, "w"), indent=4) + + +def generate_unique_shuffle(existing_orders): + frames_indices = list(range(num_frames)) + attempt = 0 + while True: + random.shuffle(frames_indices) + conflict = False + for order in existing_orders: + for i, frame_idx in enumerate(frames_indices): + if frame_idx == order[i]: + conflict = True + break + if conflict: + break + if not conflict: + return frames_indices + attempt += 1 + if attempt > 1000: + raise RuntimeError("Cannot generate unique shuffle after 1000 tries.") + + +# ---------------- GENERATE SLOTS ---------------- +existing_orders = [] + +for slot_idx in range(1, NUM_SLOTS + 1): + base_name = f"slot_{slot_idx}" + + # generate fully unique shuffled frame order + shuffle_order = generate_unique_shuffle(existing_orders) + existing_orders.append(shuffle_order) + + # build shuffled base image + shuffled_img = Image.new("RGBA", (width, height)) + for i, frame_idx in enumerate(shuffle_order): + frame = original.crop((0, frame_idx * FRAME_SIZE, width, (frame_idx + 1) * FRAME_SIZE)) + shuffled_img.paste(frame, (0, i * FRAME_SIZE)) + + # main sliding animation + main_offset = random.randint(0, total_pixels - 1) + main_img = create_animation_image(shuffled_img, main_offset, speed=SPEED) + save_png_and_mcmeta(main_img, base_name) + + # up/down relative to main, looping + up_offset = (main_offset - FRAME_SIZE) % total_pixels + down_offset = (main_offset + FRAME_SIZE) % total_pixels + up_img = create_animation_image(shuffled_img, up_offset, speed=SPEED) + down_img = create_animation_image(shuffled_img, down_offset, speed=SPEED) + save_png_and_mcmeta(up_img, base_name + "_up") + save_png_and_mcmeta(down_img, base_name + "_down") + +print(f"Generated {NUM_SLOTS * 3 * 2} PNG+mcmeta files in {OUTPUT_DIR}") \ No newline at end of file diff --git a/src/main/resources/assets/szar/textures/block/slotmachine_slots.png b/src/main/resources/assets/szar/textures/block/slotmachine_slots.png index d58f6d8..bb8f70f 100644 Binary files a/src/main/resources/assets/szar/textures/block/slotmachine_slots.png and b/src/main/resources/assets/szar/textures/block/slotmachine_slots.png differ diff --git a/src/main/resources/assets/szar/textures/etc/casino.png b/src/main/resources/assets/szar/textures/etc/casino.png new file mode 100644 index 0000000..81119ff Binary files /dev/null and b/src/main/resources/assets/szar/textures/etc/casino.png differ diff --git a/src/main/resources/data/szar/structures/casino.nbt b/src/main/resources/data/szar/structures/casino.nbt new file mode 100644 index 0000000..1d2bdc5 Binary files /dev/null and b/src/main/resources/data/szar/structures/casino.nbt differ diff --git a/src/main/resources/data/szar/worldgen/structure/casino.json b/src/main/resources/data/szar/worldgen/structure/casino.json new file mode 100644 index 0000000..e583905 --- /dev/null +++ b/src/main/resources/data/szar/worldgen/structure/casino.json @@ -0,0 +1,8 @@ +{ + "type": "szar:casino", + "biomes": "#minecraft:is_overworld", + "step": "surface_structures", + "terrain_adaptation": "beard_thin", + "spawn_overrides": {}, + "config": {} +} \ No newline at end of file diff --git a/src/main/resources/data/szar/worldgen/structure_set/casino.json b/src/main/resources/data/szar/worldgen/structure_set/casino.json new file mode 100644 index 0000000..17f3ed4 --- /dev/null +++ b/src/main/resources/data/szar/worldgen/structure_set/casino.json @@ -0,0 +1,14 @@ +{ + "structures": [ + { + "structure": "szar:casino", + "weight": 1 + } + ], + "placement": { + "type": "minecraft:random_spread", + "spacing": 40, + "separation": 20, + "salt": 753329346 + } +} \ No newline at end of file diff --git a/src/main/resources/data/szar/worldgen/structure_set/two_towers.json b/src/main/resources/data/szar/worldgen/structure_set/two_towers.json index 8877f33..df592f7 100644 --- a/src/main/resources/data/szar/worldgen/structure_set/two_towers.json +++ b/src/main/resources/data/szar/worldgen/structure_set/two_towers.json @@ -9,6 +9,6 @@ "type": "minecraft:random_spread", "spacing": 40, "separation": 28, - "salt": 987654321 + "salt": 295402814 } }