From 4ff50b44d436d03e7d00a3d85d71533ab819cb6e Mon Sep 17 00:00:00 2001 From: techno-sam <77073745+techno-sam@users.noreply.github.com> Date: Thu, 28 Aug 2025 13:25:29 +0200 Subject: [PATCH] rendering improvements begin adding weeping sky datagen bayer transparency --- .../5790708f1bab3bc9da26dbe9791dce16c55e0cb8 | 44 ++++++ .../dcc41341364508cf6e5f757a3f66d54c126e2c9d | 3 + .../crystalline_sky/blockstates/sky.json | 7 + .../blockstates/sky_light.json | 52 ++++++++ .../blockstates/weeping_sky.json | 7 + .../assets/crystalline_sky/items/sky.json | 6 + .../crystalline_sky/items/sky_light.json | 125 ++++++++++++++++++ .../crystalline_sky/items/weeping_sky.json | 6 + .../crystalline_sky/models/block/sky.json | 6 + .../models/block/sky_light_00.json | 5 + .../models/block/sky_light_01.json | 5 + .../models/block/sky_light_02.json | 5 + .../models/block/sky_light_03.json | 5 + .../models/block/sky_light_04.json | 5 + .../models/block/sky_light_05.json | 5 + .../models/block/sky_light_06.json | 5 + .../models/block/sky_light_07.json | 5 + .../models/block/sky_light_08.json | 5 + .../models/block/sky_light_09.json | 5 + .../models/block/sky_light_10.json | 5 + .../models/block/sky_light_11.json | 5 + .../models/block/sky_light_12.json | 5 + .../models/block/sky_light_13.json | 5 + .../models/block/sky_light_14.json | 5 + .../models/block/sky_light_15.json | 5 + .../models/block/weeping_sky.json | 6 + .../crystalline_sky/models/item/sky.json | 6 + .../models/item/sky_light.json | 6 + .../models/item/sky_light_00.json | 6 + .../models/item/sky_light_01.json | 6 + .../models/item/sky_light_02.json | 6 + .../models/item/sky_light_03.json | 6 + .../models/item/sky_light_04.json | 6 + .../models/item/sky_light_05.json | 6 + .../models/item/sky_light_06.json | 6 + .../models/item/sky_light_07.json | 6 + .../models/item/sky_light_08.json | 6 + .../models/item/sky_light_09.json | 6 + .../models/item/sky_light_10.json | 6 + .../models/item/sky_light_11.json | 6 + .../models/item/sky_light_12.json | 6 + .../models/item/sky_light_13.json | 6 + .../models/item/sky_light_14.json | 6 + .../models/item/sky_light_15.json | 6 + .../models/item/weeping_sky.json | 6 + .../loot_table/blocks/sky.json | 32 +++++ .../loot_table/blocks/weeping_sky.json | 32 +++++ .../crystalline_sky/CrystallineSkyClient.java | 1 + .../datagen/CrystallineSkyDataGenerator.java | 2 + .../providers/CrystallineSkyLootProvider.java | 20 +++ .../CrystallineSkyModelProvider.java | 29 ++-- .../mixin/client/ClientWorldMixin.java | 2 + .../mixin/client/WorldRendererMixin.java | 9 +- .../registry/CrystallineBlocks.java | 8 +- .../registry/CrystallineItems.java | 5 + .../client/CrystallineRenderPipelines.java | 1 + .../assets/crystalline_sky/lang/en_us.json | 3 + .../shaders/core/terrain_sky.fsh | 27 +++- .../crystalline_sky/textures/block/sky.png | Bin 0 -> 4345 bytes .../crystalline_sky/textures/block/sky.xcf | Bin 0 -> 1979 bytes .../textures/block/weeping_sky.png | Bin 0 -> 4377 bytes .../textures/block/weeping_sky.xcf | Bin 0 -> 2309 bytes 62 files changed, 610 insertions(+), 17 deletions(-) create mode 100644 src/generated/resources/.cache/5790708f1bab3bc9da26dbe9791dce16c55e0cb8 create mode 100644 src/generated/resources/.cache/dcc41341364508cf6e5f757a3f66d54c126e2c9d create mode 100644 src/generated/resources/assets/crystalline_sky/blockstates/sky.json create mode 100644 src/generated/resources/assets/crystalline_sky/blockstates/sky_light.json create mode 100644 src/generated/resources/assets/crystalline_sky/blockstates/weeping_sky.json create mode 100644 src/generated/resources/assets/crystalline_sky/items/sky.json create mode 100644 src/generated/resources/assets/crystalline_sky/items/sky_light.json create mode 100644 src/generated/resources/assets/crystalline_sky/items/weeping_sky.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_00.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_01.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_02.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_03.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_04.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_05.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_06.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_07.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_08.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_09.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_10.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_11.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_12.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_13.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_14.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/sky_light_15.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/block/weeping_sky.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_00.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_01.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_02.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_03.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_04.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_05.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_06.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_07.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_08.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_09.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_10.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_11.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_12.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_13.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_14.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/sky_light_15.json create mode 100644 src/generated/resources/assets/crystalline_sky/models/item/weeping_sky.json create mode 100644 src/generated/resources/data/crystalline_sky/loot_table/blocks/sky.json create mode 100644 src/generated/resources/data/crystalline_sky/loot_table/blocks/weeping_sky.json create mode 100644 src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyLootProvider.java create mode 100644 src/main/resources/assets/crystalline_sky/textures/block/sky.png create mode 100644 src/main/resources/assets/crystalline_sky/textures/block/sky.xcf create mode 100644 src/main/resources/assets/crystalline_sky/textures/block/weeping_sky.png create mode 100644 src/main/resources/assets/crystalline_sky/textures/block/weeping_sky.xcf diff --git a/src/generated/resources/.cache/5790708f1bab3bc9da26dbe9791dce16c55e0cb8 b/src/generated/resources/.cache/5790708f1bab3bc9da26dbe9791dce16c55e0cb8 new file mode 100644 index 0000000..566541c --- /dev/null +++ b/src/generated/resources/.cache/5790708f1bab3bc9da26dbe9791dce16c55e0cb8 @@ -0,0 +1,44 @@ +// 1.21.8 -999999999-01-01T00:00:00 Crystalline Sky/Model Definitions +e832366c216102270b75085db7a7169881b853b3 assets/crystalline_sky/blockstates/sky.json +ecc125a24d3e2c86d922352d8449f26a4e06d122 assets/crystalline_sky/blockstates/sky_light.json +03e2eb768bc34fbeaabffbff8ed3a2a3044a6db1 assets/crystalline_sky/blockstates/weeping_sky.json +c0168359bc7e3978778cee2d000b21c3889c235c assets/crystalline_sky/items/sky.json +c9ebbcbf9d632aeab6bfab2014d7c225f2b290d9 assets/crystalline_sky/items/sky_light.json +2371c7a720a552589983925a24677fd3d1b649b4 assets/crystalline_sky/items/weeping_sky.json +6d1e10716c05150e73b2b9e254091125264a7a3d assets/crystalline_sky/models/block/sky.json +3183aeb9fff78d0c65f1ddd0dfb599420573e281 assets/crystalline_sky/models/block/sky_light_00.json +7eaa4c3d4913e0cb117585204dd1dd9e58402b83 assets/crystalline_sky/models/block/sky_light_01.json +59463cef438e58b137e5ce27402acf42a3a0ae87 assets/crystalline_sky/models/block/sky_light_02.json +ee9cb7604922cdb2ad71d021a593ca82f0baf493 assets/crystalline_sky/models/block/sky_light_03.json +317f9881c20b1aaa3902b3999dd1c76d00afbde6 assets/crystalline_sky/models/block/sky_light_04.json +2ce612b8445da92c6cecd07bd5364a25bcfb127f assets/crystalline_sky/models/block/sky_light_05.json +19859c3124196f3788bfbae1ec2bcd4d1e46db2e assets/crystalline_sky/models/block/sky_light_06.json +fceb0c59b7f6d431200764ccf87596541bacb17f assets/crystalline_sky/models/block/sky_light_07.json +c0d693e4f78ce15c238909130382909abda4c922 assets/crystalline_sky/models/block/sky_light_08.json +ef9e5aca345b59cb4692a7bcfaac539aed6f6889 assets/crystalline_sky/models/block/sky_light_09.json +9c6ba4d90f2c4f2a9beb910c1b32023e49445749 assets/crystalline_sky/models/block/sky_light_10.json +e91808daecfc454b784f5fb27003c58bb0caedce assets/crystalline_sky/models/block/sky_light_11.json +e2c7bebd9eca446bb06fff866ec4d4996917e7e4 assets/crystalline_sky/models/block/sky_light_12.json +0b4015acca6117ea633ae3cdaf3fe40fcab6b628 assets/crystalline_sky/models/block/sky_light_13.json +0ac5351c3a01e0f9e76517452918e12770b3b54b assets/crystalline_sky/models/block/sky_light_14.json +a87d8988452529a1f5af5662ad636223fdd98fec assets/crystalline_sky/models/block/sky_light_15.json +14508173fcca14cb42755d47374c94d3eace42ce assets/crystalline_sky/models/block/weeping_sky.json +008a0d0a76a34d8f375fa355452a5d0f93f9af3b assets/crystalline_sky/models/item/sky.json +2fedd8aff557d4e559ffa8166b4e5ac78136046d assets/crystalline_sky/models/item/sky_light.json +9f0d9fe5dfb05bbe18177db5c40e600c5b256858 assets/crystalline_sky/models/item/sky_light_00.json +0e8a96cfb88f4c58679709cc9397b5700878a9c4 assets/crystalline_sky/models/item/sky_light_01.json +ed5894de7afa66f73c72093f2dd7d046cf647070 assets/crystalline_sky/models/item/sky_light_02.json +b29c14f77a08da7a6994cff4c6801d6f04b12ec0 assets/crystalline_sky/models/item/sky_light_03.json +51fa40ff02afcec303e7a18478cbae5375dfb140 assets/crystalline_sky/models/item/sky_light_04.json +42f8b696ba0f511edce656b9055764ed13013221 assets/crystalline_sky/models/item/sky_light_05.json +910c51120a0931851db6b75b337bc21241165c2f assets/crystalline_sky/models/item/sky_light_06.json +dff33a68a694de0f3ef177886c002204ffe49a8c assets/crystalline_sky/models/item/sky_light_07.json +89582890605d371d936384a83950af603d2fe495 assets/crystalline_sky/models/item/sky_light_08.json +7115b88da2cc0bfdc68646d034de8d14f181eb01 assets/crystalline_sky/models/item/sky_light_09.json +9c6c61b7f805a614d2d15d8dde390ed068913182 assets/crystalline_sky/models/item/sky_light_10.json +04f1e4eba184b8e7b1669fc61006e3d00e09d164 assets/crystalline_sky/models/item/sky_light_11.json +b8795df31017499b35a5b37a4dfbe555a8242cb0 assets/crystalline_sky/models/item/sky_light_12.json +25f0831f8c64db0e5c08fc968445e329f1e3a91c assets/crystalline_sky/models/item/sky_light_13.json +58349dc5dedb8016fb0bc958fcd4a9ccde13a1cd assets/crystalline_sky/models/item/sky_light_14.json +d500e56057c0c2f3c948894694e2826f1726fd9e assets/crystalline_sky/models/item/sky_light_15.json +15c0a47d504ddd41bbecd4ac58c0c8ccd0f37943 assets/crystalline_sky/models/item/weeping_sky.json diff --git a/src/generated/resources/.cache/dcc41341364508cf6e5f757a3f66d54c126e2c9d b/src/generated/resources/.cache/dcc41341364508cf6e5f757a3f66d54c126e2c9d new file mode 100644 index 0000000..5e21ebe --- /dev/null +++ b/src/generated/resources/.cache/dcc41341364508cf6e5f757a3f66d54c126e2c9d @@ -0,0 +1,3 @@ +// 1.21.8 -999999999-01-01T00:00:00 Crystalline Sky/Block Loot Tables +6a9b7a08424cbd3d699dfd3252d432517254aa45 data/crystalline_sky/loot_table/blocks/sky.json +337de0acfc1b9b86adde0705e342ed1d4b5c9c4e data/crystalline_sky/loot_table/blocks/weeping_sky.json diff --git a/src/generated/resources/assets/crystalline_sky/blockstates/sky.json b/src/generated/resources/assets/crystalline_sky/blockstates/sky.json new file mode 100644 index 0000000..84195c0 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/blockstates/sky.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "crystalline_sky:block/sky" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/blockstates/sky_light.json b/src/generated/resources/assets/crystalline_sky/blockstates/sky_light.json new file mode 100644 index 0000000..a5cd922 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/blockstates/sky_light.json @@ -0,0 +1,52 @@ +{ + "variants": { + "level=0": { + "model": "crystalline_sky:block/sky_light_00" + }, + "level=1": { + "model": "crystalline_sky:block/sky_light_01" + }, + "level=10": { + "model": "crystalline_sky:block/sky_light_10" + }, + "level=11": { + "model": "crystalline_sky:block/sky_light_11" + }, + "level=12": { + "model": "crystalline_sky:block/sky_light_12" + }, + "level=13": { + "model": "crystalline_sky:block/sky_light_13" + }, + "level=14": { + "model": "crystalline_sky:block/sky_light_14" + }, + "level=15": { + "model": "crystalline_sky:block/sky_light_15" + }, + "level=2": { + "model": "crystalline_sky:block/sky_light_02" + }, + "level=3": { + "model": "crystalline_sky:block/sky_light_03" + }, + "level=4": { + "model": "crystalline_sky:block/sky_light_04" + }, + "level=5": { + "model": "crystalline_sky:block/sky_light_05" + }, + "level=6": { + "model": "crystalline_sky:block/sky_light_06" + }, + "level=7": { + "model": "crystalline_sky:block/sky_light_07" + }, + "level=8": { + "model": "crystalline_sky:block/sky_light_08" + }, + "level=9": { + "model": "crystalline_sky:block/sky_light_09" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/blockstates/weeping_sky.json b/src/generated/resources/assets/crystalline_sky/blockstates/weeping_sky.json new file mode 100644 index 0000000..5ba2f3f --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/blockstates/weeping_sky.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "crystalline_sky:block/weeping_sky" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/items/sky.json b/src/generated/resources/assets/crystalline_sky/items/sky.json new file mode 100644 index 0000000..b3ec26f --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/items/sky.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/items/sky_light.json b/src/generated/resources/assets/crystalline_sky/items/sky_light.json new file mode 100644 index 0000000..9495310 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/items/sky_light.json @@ -0,0 +1,125 @@ +{ + "model": { + "type": "minecraft:select", + "block_state_property": "level", + "cases": [ + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_00" + }, + "when": "0" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_01" + }, + "when": "1" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_02" + }, + "when": "2" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_03" + }, + "when": "3" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_04" + }, + "when": "4" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_05" + }, + "when": "5" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_06" + }, + "when": "6" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_07" + }, + "when": "7" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_08" + }, + "when": "8" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_09" + }, + "when": "9" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_10" + }, + "when": "10" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_11" + }, + "when": "11" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_12" + }, + "when": "12" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_13" + }, + "when": "13" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_14" + }, + "when": "14" + }, + { + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light_15" + }, + "when": "15" + } + ], + "fallback": { + "type": "minecraft:model", + "model": "crystalline_sky:item/sky_light" + }, + "property": "minecraft:block_state" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/items/weeping_sky.json b/src/generated/resources/assets/crystalline_sky/items/weeping_sky.json new file mode 100644 index 0000000..959c7bb --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/items/weeping_sky.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "crystalline_sky:item/weeping_sky" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky.json b/src/generated/resources/assets/crystalline_sky/models/block/sky.json new file mode 100644 index 0000000..2995258 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "crystalline_sky:block/sky" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_00.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_00.json new file mode 100644 index 0000000..02d750b --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_00.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_00" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_01.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_01.json new file mode 100644 index 0000000..3ff7913 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_01.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_01" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_02.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_02.json new file mode 100644 index 0000000..4b27c50 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_02.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_02" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_03.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_03.json new file mode 100644 index 0000000..f705f4a --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_03.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_03" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_04.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_04.json new file mode 100644 index 0000000..f4cbb07 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_04.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_04" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_05.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_05.json new file mode 100644 index 0000000..1158dea --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_05.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_05" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_06.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_06.json new file mode 100644 index 0000000..8f518d8 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_06.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_06" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_07.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_07.json new file mode 100644 index 0000000..5fe8fc9 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_07.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_07" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_08.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_08.json new file mode 100644 index 0000000..c28f0b3 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_08.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_08" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_09.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_09.json new file mode 100644 index 0000000..84b3aff --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_09.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_09" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_10.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_10.json new file mode 100644 index 0000000..7e614cf --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_10.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_10" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_11.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_11.json new file mode 100644 index 0000000..92f30b0 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_11.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_11" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_12.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_12.json new file mode 100644 index 0000000..bb49c80 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_12.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_12" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_13.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_13.json new file mode 100644 index 0000000..7dee254 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_13.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_13" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_14.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_14.json new file mode 100644 index 0000000..e40210b --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_14.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_14" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/sky_light_15.json b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_15.json new file mode 100644 index 0000000..9fe7af7 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/sky_light_15.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "crystalline_sky:item/sky_light_15" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/block/weeping_sky.json b/src/generated/resources/assets/crystalline_sky/models/block/weeping_sky.json new file mode 100644 index 0000000..48e6899 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/block/weeping_sky.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "crystalline_sky:block/weeping_sky" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky.json b/src/generated/resources/assets/crystalline_sky/models/item/sky.json new file mode 100644 index 0000000..b695a0a --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:block/sky" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light.json new file mode 100644 index 0000000..ea7699a --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_00.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_00.json new file mode 100644 index 0000000..33cdbb9 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_00.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_00" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_01.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_01.json new file mode 100644 index 0000000..4b725a3 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_01.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_01" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_02.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_02.json new file mode 100644 index 0000000..1e115f7 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_02.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_02" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_03.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_03.json new file mode 100644 index 0000000..39c4045 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_03.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_03" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_04.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_04.json new file mode 100644 index 0000000..49e2542 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_04.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_04" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_05.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_05.json new file mode 100644 index 0000000..3f95c92 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_05.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_05" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_06.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_06.json new file mode 100644 index 0000000..ac60103 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_06.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_06" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_07.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_07.json new file mode 100644 index 0000000..508dffe --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_07.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_07" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_08.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_08.json new file mode 100644 index 0000000..8d95f87 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_08.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_08" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_09.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_09.json new file mode 100644 index 0000000..d3db953 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_09.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_09" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_10.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_10.json new file mode 100644 index 0000000..8af4925 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_10.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_10" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_11.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_11.json new file mode 100644 index 0000000..e142424 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_11.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_11" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_12.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_12.json new file mode 100644 index 0000000..179e917 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_12.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_12" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_13.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_13.json new file mode 100644 index 0000000..5a27dfc --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_13.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_13" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_14.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_14.json new file mode 100644 index 0000000..62ad704 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_14.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_14" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/sky_light_15.json b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_15.json new file mode 100644 index 0000000..24521f1 --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/sky_light_15.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:item/sky_light_15" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/crystalline_sky/models/item/weeping_sky.json b/src/generated/resources/assets/crystalline_sky/models/item/weeping_sky.json new file mode 100644 index 0000000..eac2cff --- /dev/null +++ b/src/generated/resources/assets/crystalline_sky/models/item/weeping_sky.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "crystalline_sky:block/weeping_sky" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/crystalline_sky/loot_table/blocks/sky.json b/src/generated/resources/data/crystalline_sky/loot_table/blocks/sky.json new file mode 100644 index 0000000..b65ecb9 --- /dev/null +++ b/src/generated/resources/data/crystalline_sky/loot_table/blocks/sky.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "crystalline_sky:sky" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/crystalline_sky/loot_table/blocks/weeping_sky.json b/src/generated/resources/data/crystalline_sky/loot_table/blocks/weeping_sky.json new file mode 100644 index 0000000..a4c4af8 --- /dev/null +++ b/src/generated/resources/data/crystalline_sky/loot_table/blocks/weeping_sky.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "crystalline_sky:weeping_sky" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/CrystallineSkyClient.java b/src/main/java/io/github/slimeistdev/crystalline_sky/CrystallineSkyClient.java index e0b3260..e7fdbe1 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/CrystallineSkyClient.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/CrystallineSkyClient.java @@ -9,5 +9,6 @@ public class CrystallineSkyClient implements ClientModInitializer { @Override public void onInitializeClient() { BlockRenderLayerMap.putBlock(CrystallineBlocks.SKY, BlockRenderLayerExt.CRYSTALLINE_SKY_SKY); + BlockRenderLayerMap.putBlock(CrystallineBlocks.WEEPING_SKY, BlockRenderLayerExt.CRYSTALLINE_SKY_SKY); } } diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/CrystallineSkyDataGenerator.java b/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/CrystallineSkyDataGenerator.java index ff59484..92359ea 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/CrystallineSkyDataGenerator.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/CrystallineSkyDataGenerator.java @@ -1,5 +1,6 @@ package io.github.slimeistdev.crystalline_sky.datagen; +import io.github.slimeistdev.crystalline_sky.datagen.providers.CrystallineSkyLootProvider; import io.github.slimeistdev.crystalline_sky.datagen.providers.CrystallineSkyModelProvider; import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; @@ -10,5 +11,6 @@ public class CrystallineSkyDataGenerator implements DataGeneratorEntrypoint { FabricDataGenerator.Pack pack = gen.createPack(); pack.addProvider(CrystallineSkyModelProvider::new); + pack.addProvider(CrystallineSkyLootProvider::new); } } diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyLootProvider.java b/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyLootProvider.java new file mode 100644 index 0000000..81ed49c --- /dev/null +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyLootProvider.java @@ -0,0 +1,20 @@ +package io.github.slimeistdev.crystalline_sky.datagen.providers; + +import io.github.slimeistdev.crystalline_sky.registry.CrystallineBlocks; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider; +import net.minecraft.registry.RegistryWrapper; + +import java.util.concurrent.CompletableFuture; + +public class CrystallineSkyLootProvider extends FabricBlockLootTableProvider { + public CrystallineSkyLootProvider(FabricDataOutput dataOutput, CompletableFuture registryLookup) { + super(dataOutput, registryLookup); + } + + @Override + public void generate() { + addDropWithSilkTouch(CrystallineBlocks.SKY); + addDropWithSilkTouch(CrystallineBlocks.WEEPING_SKY); + } +} diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyModelProvider.java b/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyModelProvider.java index 8e56f9c..c2ce620 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyModelProvider.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/datagen/providers/CrystallineSkyModelProvider.java @@ -4,10 +4,12 @@ import io.github.slimeistdev.crystalline_sky.registry.CrystallineBlocks; import io.github.slimeistdev.crystalline_sky.registry.CrystallineItems; import net.fabricmc.fabric.api.client.datagen.v1.provider.FabricModelProvider; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.block.Block; import net.minecraft.block.LightBlock; import net.minecraft.client.data.*; import net.minecraft.client.render.item.model.ItemModel; import net.minecraft.client.render.model.json.WeightedVariant; +import net.minecraft.item.Item; import net.minecraft.state.property.Properties; import net.minecraft.util.Identifier; @@ -17,6 +19,7 @@ import java.util.Map; import static net.minecraft.client.data.BlockStateModelGenerator.createWeightedVariant; +@SuppressWarnings("SameParameterValue") public class CrystallineSkyModelProvider extends FabricModelProvider { public CrystallineSkyModelProvider(FabricDataOutput output) { super(output); @@ -24,33 +27,37 @@ public class CrystallineSkyModelProvider extends FabricModelProvider { @Override public void generateBlockStateModels(BlockStateModelGenerator gen) { - gen.registerBuiltinWithParticle(CrystallineBlocks.SKY, CrystallineItems.SKY); - gen.registerItemModel(CrystallineItems.SKY); - - registerSkyLightBlock(gen); + registerSkyBlock(gen, CrystallineBlocks.SKY); + registerSkyBlock(gen, CrystallineBlocks.WEEPING_SKY); + registerSkyLightBlock(gen, CrystallineBlocks.SKY_LIGHT, CrystallineItems.SKY_LIGHT); } - private void registerSkyLightBlock(BlockStateModelGenerator gen) { - ItemModel.Unbaked fallback = ItemModels.basic(gen.uploadItemModel(CrystallineItems.SKY_LIGHT)); + private void registerSkyBlock(BlockStateModelGenerator gen, Block block) { + gen.registerSimpleCubeAll(block); + gen.registerItemModel(block); + } + + private void registerSkyLightBlock(BlockStateModelGenerator gen, Block block, Item item) { + ItemModel.Unbaked fallback = ItemModels.basic(gen.uploadItemModel(item)); Map itemModels = new HashMap<>(16); BlockStateVariantMap.SingleProperty levelProp = BlockStateVariantMap.models(Properties.LEVEL_15); for (int level = 0; level <= 15; level++) { String suffix = String.format(Locale.ROOT, "_%02d", level); - Identifier texture = TextureMap.getSubId(CrystallineItems.SKY_LIGHT, suffix); + Identifier texture = TextureMap.getSubId(item, suffix); - levelProp.register(level, createWeightedVariant(Models.PARTICLE.upload(CrystallineBlocks.SKY_LIGHT, suffix, TextureMap.particle(texture), gen.modelCollector))); + levelProp.register(level, createWeightedVariant(Models.PARTICLE.upload(block, suffix, TextureMap.particle(texture), gen.modelCollector))); ItemModel.Unbaked levelItemModel = ItemModels.basic(Models.GENERATED.upload( - ModelIds.getItemSubModelId(CrystallineItems.SKY_LIGHT, suffix), + ModelIds.getItemSubModelId(item, suffix), TextureMap.layer0(texture), gen.modelCollector )); itemModels.put(level, levelItemModel); } - gen.itemModelOutput.accept(CrystallineItems.SKY_LIGHT, ItemModels.select(LightBlock.LEVEL_15, fallback, itemModels)); - gen.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(CrystallineBlocks.SKY_LIGHT).with(levelProp)); + gen.itemModelOutput.accept(item, ItemModels.select(LightBlock.LEVEL_15, fallback, itemModels)); + gen.blockStateCollector.accept(VariantsBlockModelDefinitionCreator.of(block).with(levelProp)); } @Override diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/ClientWorldMixin.java b/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/ClientWorldMixin.java index 08e8f63..bceafe3 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/ClientWorldMixin.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/ClientWorldMixin.java @@ -25,5 +25,7 @@ public class ClientWorldMixin { private static void modifyBlockMarkerItems(CallbackInfo ci) { BLOCK_MARKER_ITEMS = new HashSet<>(BLOCK_MARKER_ITEMS); BLOCK_MARKER_ITEMS.add(CrystallineItems.SKY_LIGHT); + BLOCK_MARKER_ITEMS.add(CrystallineItems.SKY); + BLOCK_MARKER_ITEMS.add(CrystallineItems.WEEPING_SKY); } } diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/WorldRendererMixin.java b/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/WorldRendererMixin.java index 9abbfd4..ccf4ba5 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/WorldRendererMixin.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/mixin/client/WorldRendererMixin.java @@ -18,6 +18,7 @@ import net.minecraft.client.render.*; import net.minecraft.client.util.Handle; import net.minecraft.client.util.ObjectAllocator; import net.minecraft.client.world.ClientWorld; +import net.minecraft.util.math.MathHelper; import net.minecraft.util.profiler.Profiler; import org.jetbrains.annotations.Nullable; import org.joml.*; @@ -158,7 +159,13 @@ public abstract class WorldRendererMixin { && client.player != null && (client.player.getMainHandStack().isOf(CrystallineItems.SKY) || client.player.getOffHandStack().isOf(CrystallineItems.SKY))) { - colorModulator = new Vector4f(1.0f, 0.5f, 0.5f, 1.0f).mul(colorModulator); + + float f = ticks + client.getRenderTickCounter().getTickProgress(true); + float alpha = (MathHelper.sin(f / 10.0f) + 1.0f) / 2.0f; + // remap alpha from [0, 1] to [0, 0.75] + float maxAlpha = 1.0f - 0.25f; + alpha = alpha * maxAlpha; + colorModulator = new Vector4f(1.0f, 1.0f, 1.0f, alpha).mul(colorModulator); } return original.call(modelView, colorModulator, modelOffset, textureMatrix, lineWidth); diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineBlocks.java b/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineBlocks.java index c72f130..80f341c 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineBlocks.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineBlocks.java @@ -24,6 +24,8 @@ public class CrystallineBlocks { .blockVision(Blocks::never) .emissiveLighting(Blocks::always)); + public static final Block WEEPING_SKY = register("weeping_sky", TransparentBlock::new, Settings.copy(SKY)); + public static final Block SKY_LIGHT = register( "sky_light", LightBlock::new, @@ -46,10 +48,14 @@ public class CrystallineBlocks { return getSkyLightLevel(state) > 0; } + public static boolean isWeepingSky(BlockState state) { + return state.isOf(WEEPING_SKY); + } + public static int getSkyLightLevel(BlockState state) { if (state.isOf(SKY_LIGHT)) { return state.get(LightBlock.LEVEL_15); - } else if (state.isOf(SKY)) { + } else if (state.isOf(SKY) || state.isOf(WEEPING_SKY)) { return 15; } diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineItems.java b/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineItems.java index 7237260..707f77b 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineItems.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/registry/CrystallineItems.java @@ -13,6 +13,11 @@ public class CrystallineItems { settings -> settings.rarity(Rarity.EPIC) ); + public static final Item WEEPING_SKY = Items.register( + CrystallineBlocks.WEEPING_SKY, + settings -> settings.rarity(Rarity.EPIC) + ); + public static final Item SKY_LIGHT = Items.register( CrystallineBlocks.SKY_LIGHT, settings -> settings.rarity(Rarity.EPIC) diff --git a/src/main/java/io/github/slimeistdev/crystalline_sky/registry/client/CrystallineRenderPipelines.java b/src/main/java/io/github/slimeistdev/crystalline_sky/registry/client/CrystallineRenderPipelines.java index 9ab3162..7d61671 100644 --- a/src/main/java/io/github/slimeistdev/crystalline_sky/registry/client/CrystallineRenderPipelines.java +++ b/src/main/java/io/github/slimeistdev/crystalline_sky/registry/client/CrystallineRenderPipelines.java @@ -13,6 +13,7 @@ public class CrystallineRenderPipelines { .withFragmentShader(CrystallineSky.id("core/terrain_sky")) .withVertexShader(CrystallineSky.id("core/terrain_sky")) .withLocation(CrystallineSky.id("pipeline/sky")) + .withShaderDefine("BAYER_BIAS", 0.03125f) .build() ); } diff --git a/src/main/resources/assets/crystalline_sky/lang/en_us.json b/src/main/resources/assets/crystalline_sky/lang/en_us.json index 2c63c08..87884a6 100644 --- a/src/main/resources/assets/crystalline_sky/lang/en_us.json +++ b/src/main/resources/assets/crystalline_sky/lang/en_us.json @@ -1,2 +1,5 @@ { + "block.crystalline_sky.sky": "Sky", + "block.crystalline_sky.weeping_sky": "Weeping Sky", + "block.crystalline_sky.sky_light": "Sky Light" } diff --git a/src/main/resources/assets/crystalline_sky/shaders/core/terrain_sky.fsh b/src/main/resources/assets/crystalline_sky/shaders/core/terrain_sky.fsh index 7a8d5e1..8b6fd56 100644 --- a/src/main/resources/assets/crystalline_sky/shaders/core/terrain_sky.fsh +++ b/src/main/resources/assets/crystalline_sky/shaders/core/terrain_sky.fsh @@ -1,5 +1,6 @@ #version 150 +#moj_import #moj_import #moj_import @@ -11,12 +12,30 @@ in vec4 texProj0; out vec4 fragColor; +#ifndef BAYER_BIAS +#define BAYER_BIAS 0.0 +#endif + +#ifndef SCALE +#define SCALE 1 +#endif + +const mat4x4 bayerMatrix4x4 = mat4x4( + 0.0, 8.0, 2.0, 10.0, + 12.0, 4.0, 14.0, 6.0, + 3.0, 11.0, 1.0, 9.0, + 15.0, 7.0, 13.0, 5.0 +) / 16.0; + void main() { - vec4 color = textureProj(Sampler0, texProj0) * ColorModulator; -#ifdef ALPHA_CUTOUT - if (color.a < ALPHA_CUTOUT) { + int x = int(gl_FragCoord.x / SCALE) % 4; + int y = int(gl_FragCoord.y / SCALE) % 4; + float bayer = bayerMatrix4x4[y][x]; + + if (ColorModulator.a <= bayer + BAYER_BIAS) { discard; } -#endif + + vec4 color = textureProj(Sampler0, texProj0) * vec4(ColorModulator.rgb, 1.0); fragColor = apply_fog(color, sphericalVertexDistance, cylindricalVertexDistance, FogEnvironmentalStart, FogEnvironmentalEnd, FogRenderDistanceStart, FogRenderDistanceEnd, FogColor); } diff --git a/src/main/resources/assets/crystalline_sky/textures/block/sky.png b/src/main/resources/assets/crystalline_sky/textures/block/sky.png new file mode 100644 index 0000000000000000000000000000000000000000..c306fc71ed8f1af94e741da05db7c2e63459a778 GIT binary patch literal 4345 zcmeHKeNYtV8DG?jAXuWPNUW@@2{pQRyZ5zsn>#+dL%5p53!Xu09NpV}7dCJo>@LSa z8&M-oLsF@sI)G=?2*i?To6H20T85-z(Q2k@(HIR0sS@MF4AM*!M`G-|cYIDVlVPU$ zkDJ-A=lwmu_j!Kr^FDL$bI#oC_}JuF1VQ5MIkr6bOi->F)8Rek%liy`bXL07%Xv&W z>KA>yPy$f7!Vgdo6nF#)Uhz1u#-BjrzA3EPxp^>HUz$_*i=G45-k&z7x;3>lltRC7 zVxXeqZ-=bL-_+N9+NfRN{@uF9nC5K(&06yZQybl&Q!Ov@VrSC}FRe!nX@LwL_5--PJxihb?weQ>NFAmJ5b3fZ5R&IK@qjW`E zyQN?@7M;Y!T_=&d_Ne!EB+snT&u$e~8K!@_wC(p*ziOPZspnn+rv3HYvj`IPj9|4o z?N;k>J}`^W)4MD=Co&eE+_a&2-6OLC31z38`)=iBEi9f}<6PVwdxWlk^6pO@$uB0( z&wlsK-rg?v#dl8@k; zA2{36EPa%^^UrTICG4NGCRxt>clOaUs*X~X>DG;g2bSz@NZpw*vstz0c>V79-N8m< z>*3_SK}oedbjv z=fLyVUp&1oYDw3Wr<{vTTW+V{={ZsmsyS}|Wa+s<_tlhZ8UFc2`jWxH%WWG{GkO=i zb%Fl&mvidxEp0!4{^jg4p7Yl&y<&9ImJ1JA#U{j2_4cnHt&&-!#*#!kyUh5r?(X7v- zVmO~0sDd6ptUClTrw9EETMT5>4GIOX1?xZFfuRCt!SeME!r`}qA|aM1bm4Iu(Iu1%-eH zON&L#BFEEtwpBwE@XLY~$+DkTtINyFRpnZhPb^fECX-1`Xw(`F4iUIi;gy*n?v<7( z6cG*^kXTXh%Yx5~Dx8elS0-C9434A2@p=3X#|XVw8d3r3p$;;BHK`)h9*=sgha_hO zAjwcb-|Hc{;4W3?0m)Y;vLGt}yz-K<6dXI^?=KTe!s&3V8k7JJgi3H$a@>^Jc87Ds zLy@3R@c6@CQ0#F?S>Q*-8W)=~5>97qAkck;cN}^+_b?cu91hy%W6PBA>^2Lg%ujPZ zR^aIHE1@H`Iz6w)c}_>*IwPgU87)iTj9yRhdXfc%-Z+NJ?v-T5%L0W8lB)#BLmJ!$ z4MkD7Mx%A(Iup;~Mnb2@4S*;0q?=?J9T-EgMigLGG9_c9Qm8mcWuiDO&~N~!jJy$2 z>3G}(fDw079N;L%q$f0nFcrtrt9+t|fy*g)m_nfTdkez@ir{pn({8~uDq_^)EMa6G zI#{sB1aDbzbigHez*?D6)FdfA%)@9h=}dZqmZU~OPXJMZm8fu%gi0F;L0J|WCIf|K zlsbh3VGo!KZ506{`$U(|S7O1GkWj^QWY__>6UWGmjgbK)B{X`PFwz>zMVO$Pv{tvA z(9pyfypI$3iXTENn+G*VmOMw0;QSR~Q)EZ21*MU%$Y+TV-byGM-V`*$MpBTN0N}!L zLaxXVTf}$^0qh<_OX6i5g%bB=OFA&sFV zXpENaj;!dLGaigiz|JM7RYTJuyDigYJkwnF=&Y%W<7_EK%f)S;*{auXoc=_7sr%;R zjqMpl_Uh_8fAUXV|J4i86`M)d-M2cnWd5w>YQje^^?%tCyR|EIN5Q2;TQ-jz+pz4Z zo~Ul7DZ6XhR?Ei6Zv~#WY?PAsrB3Ut-5b>wibrZguh=Hj8Y-Nm@i!=Xj_;32n zDc!o-4B4@=KkW~Gz5L;8Kz;Vkfwq5CH}FWF7Vk>o?yWiM0g0<&xQIO~*LHN}=I#Fj DX(J;X literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/crystalline_sky/textures/block/sky.xcf b/src/main/resources/assets/crystalline_sky/textures/block/sky.xcf new file mode 100644 index 0000000000000000000000000000000000000000..b5cd8281d85203a856ee46cab06c7825009290f5 GIT binary patch literal 1979 zcmds1QBTuQ6u#@qMpt1_(I;uHQ!{wz*f1gwVbMI{}yVK>prpXVhwHia4i9!4` zFbiZdc-#agH$I792;g&o2uuLCV=lnnVoVsq&f3kU*7aP|ZX24TcMQZ>7Ld0#H+kFv zcgDgLG`pi)hGuzoi)1w3_XR&VY8%{l+jeWQuwYtEx9xg-Au^h0?diN4UA0AY?~UoM z@#v!Np5N7*wqx;H72eSWFLty8#}2sdH1`dkGF;R2jetk`6d%!xVw&?@s*a8k=q)|a zDUMn)KkDnfPMaSZo^QL(TDexKmbu|H-4>>_R(|#JskT~PZxrfDVxz!$Jh*25x1O&eRUh2G(-y z{C7LuN?@C2Wo)VSrSl!5%}%v!Fmfi|rh*AgzA`%KqJQ8}JVzV|fxE=l-{Xmo4xl(` zrI^F8Qi|V6@j{C86qi%{Mv70RcoCe&OIjX;#-{f_h&c?qPdr3}y_e$2Pl3MkR1>=? zC#jv@iza>;+31<{QT%HXUuLHmhi(aj7FZU@foDUR{S46oo+u0k^?)(Dp&k@iX7KAI zGQvp)p~ywv01~)~Hp){OqZ@fDMgel*Sruv(9pI<2B2xdE(`XJd6QX$)V8_i1)g;x? zPEPvojw)Tpq9W{e37KRa;uDbjIHnJw+_xmIsNsAbC;|c?1Jjq{ zY+h9(8ObF;RHb=ERr=v^9w-6=AOq8v;_SHJk7Oj50I@F}D}5ylhk2j~2!ISsUy8F~ eEF-xDh@mu8LWN18$mCF9Q(@*B5TF&2qp;sXiQ0Jp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/crystalline_sky/textures/block/weeping_sky.png b/src/main/resources/assets/crystalline_sky/textures/block/weeping_sky.png new file mode 100644 index 0000000000000000000000000000000000000000..75043782082d09d290f66018607f460b73d7dac1 GIT binary patch literal 4377 zcmeHLeNYo;8V^!F1q?-?Dy8d!RoZT{*=&;Cm4E~Sq$L<3Sn#yCU%?&7hsi<$eiqb| z*4nYsxfZRC)p{R_Z4arnw5L=VY-OxodvXeR?da9}9E&=F_Nw>p@*zw+bHmK_KQgn~ z-RJ#1zxR25@AE#BH;uN!yy(c;kqU((+LE7B1nx@d3J(R}PuzMygWKskd#PAN`yr3l z?GUPXNUZhn5FZd63Ps?u)Aoy)Q&80R*Jmy?ZLQsO^?cjTnufHx9n3Q0<-iD ze80Z$(2MIla~+m>^NKb-8u@&@DY&im*XJ)yYi2%cZ#~&uf90`#scSNC?MawlUefvU zj*na3YuWs0ceyL~PVBP0!;E1+ll%3O?;N(S(x#WL{WH8b>uD~jC;a%Dy-yAjT>q71 zUBtJ+$p@kiTu@wYj49c?K>PcQ)TSerS#K=7usQwT!lyq3_0^Wmy1z2arceYm2-(>- zOLq2XJ|K(T>vkCPPc2I7EH8e?{8W97vigket$)1@Z(p_OOG2asO%N{f5_L9P^4(_Q2bJ+gy0p zbdi1iRzgKf5!A+ahn6``ZZR+R!7nKR9t& z;mEMOd#vrxvFDFPFJFF4$Itk%FDP_x)TO2sY5BzqW^NqR-aD9tdZyn#T>DAeoz?dg z+;0wj747kaZ;MY`(|^7Hn{!w08^8R=jWGLKZ}XlPLOuay7Z5;sm0AlZ*6mc$oSWfQ z0jCGlokEeG8Sv0-B`-n@Um>`R@QwBpFeGqB_<5ZbwR*DoRYHE9moKg>w6k@UEXl!{ z8IkD$3J^GXk%j`!DwmH67-5;00?(3J4MQ?StTe) z?_<4!M-<#HNaCa!ceQAQVK5Gj#^>}{tz+~q--rr84|Ra{s5L57?R2Wgd-z0i4Imi_ z=qEjVcCbs;MZC{l?PYm$4et_D##3EqWT9m;_Jwmgn0l_(rLrB_yBN|-C;sn9qv;iAOWpVjL+Qsq`6(Cm$fJZ~nII7do z2!Y}#f}=Qw5TqVQ2%gknJV9z52HiM{#a;naC0#W>Dv62%R5+nCICLNyosK6E+@K{8 zLa)~&810}*o<|)R&&X69OXa$~P8uwy;G`>fwZ~N<4@iPjSvHFi##HD-i>-;%Jf1p+z2$qL_|C2?{gVQIf(?N{c>? zViY~IP`x`yZE zI04u25W9+YRq&vDjFjuBUHFMoAW25+U^P6V#TgF4ae@SOrN`t+V>IJ*^^Y`3mjUCN z4DcJaf#wBzp?a(tj%X&eouBbDvKBw%41juSl1b@1CD)W(lTu((;Hm1Gl50{5ObR?z zUH><^A|D>7co+B;KCwF8)>(poedUVbX z8y3vIb#_iq@`MU+P06XaE2J literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/crystalline_sky/textures/block/weeping_sky.xcf b/src/main/resources/assets/crystalline_sky/textures/block/weeping_sky.xcf new file mode 100644 index 0000000000000000000000000000000000000000..af940b1702920cff6d60febd98d1d4ae19616df2 GIT binary patch literal 2309 zcmds2&rcIU6rQ%r(jWY+=t-NgDuqK!ivc;5l0Y;eF_DNyJTC2anb__&y9<`Y1pfdJ z9*if`lSi)pM|f;ccpwtj?`?NvNh&|C%yGYnUmxOqdR|O(o(k2`)LpHn zxf=OVOXO#HrQK}sJ>7PMWiIDRg<_8DX4R@;O3S&|ub$1^fkCHk$igluJD@yXnL@sfxF@(mgmlPj5a&eVjudQA-iwYlTc7ndD`fMSDamw{B)q`V0plO;wvBV z#Nh+TPufJlVOTcA?}m6X#CeFPLVP5|M?-uZoW_%F7=*^A_dg0a40}l2LxX(~;_}CV z&U>gS?NCS7PVYrizVxmClri!jO8-1N!8mj$Flds+02MsurPyx|0dT3%8Pq+-=!UwN zWRc#VBi}@iB5?U#7 z%?s7Y>S!lb&9<%gRN_tAcd8}S)K;h?s}J^F{WKs3m-=1$57-apbz`2_O|sK2%m|Bg zr`h%0L;gpDY;T(0Ehj?T5O?0~7h0x4e)<=qc9S+l*3_?z#i?f5