From 88e5c383376c99de5e62c81d8f4031238e994095 Mon Sep 17 00:00:00 2001 From: Motschen Date: Sun, 30 May 2021 13:22:52 +0200 Subject: [PATCH] Revert "VisualOverhaul 3.1.0 - 1.17 and small Refactor" This reverts commit 98dee343e13b58102e8f478704d0962c2964b25c. --- .gitignore | 0 LICENSE | 0 README.md | 0 build.gradle | 62 ++++---- gradle.properties | 14 +- gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 55616 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 35 +++-- gradlew.bat | 25 ++- settings.gradle | 0 .../visualoverhaul/VisualOverhaul.java | 0 .../visualoverhaul/VisualOverhaulClient.java | 45 +++--- .../visualoverhaul/block/JukeboxTop.java | 0 .../block/model/FurnaceWoodenPlanksModel.java | 39 ----- .../BrewingStandBlockEntityRenderer.java | 54 +++---- .../renderer/FurnaceBlockEntityRenderer.java | 83 ++++++---- .../renderer/JukeboxBlockEntityRenderer.java | 39 +++-- .../compat/phonos/block/RadioJukeboxTop.java | 28 ++-- .../RadioJukeboxBlockEntityRenderer.java | 147 +++++++++--------- .../compat/phonos/init/PhonosCompatInit.java | 40 ++--- .../config/ModMenuIntegration.java | 7 +- .../visualoverhaul/config/VOConfig.java | 17 +- .../MixinAbstractFurnaceBlockEntity.java | 34 ++-- .../mixin/MixinBrewingStandBlockEntity.java | 35 +++-- .../mixin/MixinJukeboxBlock.java | 56 ------- .../mixin/MixinJukeboxBlockEntity.java | 32 ++-- .../mixin/MixinSoundSystem.java | 78 +++++----- .../util/JukeboxPacketUpdate.java | 6 - .../visualoverhaul/util/SoundTest.java | 23 --- .../item/button_mushrooms_music_disk.json | 0 .../button_mushrooms_music_disk_round.json | 0 .../models/item/ghost_town_music_disk.json | 0 .../item/ghost_town_music_disk_round.json | 0 .../models/item/swamp_jives_music_disk.json | 0 .../item/swamp_jives_music_disk_round.json | 0 .../models/item/music_disc_ashes.json | 0 .../models/item/music_disc_ashes_round.json | 0 .../models/item/dynamic_disc.json | 0 .../models/item/music_disc_0x10c.json | 0 .../models/item/music_disc_0x10c_round.json | 0 .../item/music_disc_cliffside_hinson.json | 0 .../music_disc_cliffside_hinson_round.json | 0 .../models/item/music_disc_i_jate_my_hob.json | 0 .../item/music_disc_i_jate_my_hob_round.json | 0 .../models/item/music_disc_peanuts.json | 0 .../models/item/music_disc_peanuts_round.json | 0 .../models/item/music_disc_repetition.json | 0 .../item/music_disc_repetition_round.json | 0 ...isc_sometimes_i_make_video_game_music.json | 0 ...metimes_i_make_video_game_music_round.json | 0 .../minecraft/models/item/music_disc_11.json | 0 .../models/item/music_disc_11_round.json | 0 .../minecraft/models/item/music_disc_13.json | 0 .../models/item/music_disc_13_round.json | 0 .../models/item/music_disc_blocks.json | 0 .../models/item/music_disc_blocks_round.json | 0 .../minecraft/models/item/music_disc_cat.json | 0 .../models/item/music_disc_cat_round.json | 0 .../models/item/music_disc_chirp.json | 0 .../models/item/music_disc_chirp_round.json | 0 .../minecraft/models/item/music_disc_far.json | 0 .../models/item/music_disc_far_round.json | 0 .../models/item/music_disc_mall.json | 0 .../models/item/music_disc_mall_round.json | 0 .../models/item/music_disc_mellohi.json | 0 .../models/item/music_disc_mellohi_round.json | 0 .../models/item/music_disc_pigstep.json | 0 .../models/item/music_disc_pigstep_round.json | 0 .../models/item/music_disc_stal.json | 0 .../models/item/music_disc_stal_round.json | 0 .../models/item/music_disc_strad.json | 0 .../models/item/music_disc_strad_round.json | 0 .../models/item/music_disc_wait.json | 0 .../models/item/music_disc_wait_round.json | 0 .../models/item/music_disc_ward.json | 0 .../models/item/music_disc_ward_round.json | 0 .../phonos/models/item/custom_music_disc.json | 0 .../models/item/custom_music_disc_round.json | 0 .../blockstates/jukebox_top.json | 0 .../blockstates/radio_jukebox_top.json | 0 .../resources/assets/visualoverhaul/icon.png | Bin .../assets/visualoverhaul/lang/en_us.json | 16 +- .../models/block/jukebox_top_playing.json | 0 .../models/block/jukebox_top_stopped.json | 0 .../block/phonos/jukebox_top_playing_0.json | 0 .../block/phonos/jukebox_top_playing_1.json | 10 +- .../block/phonos/jukebox_top_playing_10.json | 10 +- .../block/phonos/jukebox_top_playing_11.json | 10 +- .../block/phonos/jukebox_top_playing_12.json | 10 +- .../block/phonos/jukebox_top_playing_13.json | 10 +- .../block/phonos/jukebox_top_playing_14.json | 10 +- .../block/phonos/jukebox_top_playing_15.json | 10 +- .../block/phonos/jukebox_top_playing_16.json | 10 +- .../block/phonos/jukebox_top_playing_17.json | 10 +- .../block/phonos/jukebox_top_playing_18.json | 10 +- .../block/phonos/jukebox_top_playing_19.json | 10 +- .../block/phonos/jukebox_top_playing_2.json | 10 +- .../block/phonos/jukebox_top_playing_3.json | 10 +- .../block/phonos/jukebox_top_playing_4.json | 10 +- .../block/phonos/jukebox_top_playing_5.json | 10 +- .../block/phonos/jukebox_top_playing_6.json | 10 +- .../block/phonos/jukebox_top_playing_7.json | 10 +- .../block/phonos/jukebox_top_playing_8.json | 10 +- .../block/phonos/jukebox_top_playing_9.json | 10 +- .../block/phonos/jukebox_top_stopped_0.json | 0 .../block/phonos/jukebox_top_stopped_1.json | 10 +- .../block/phonos/jukebox_top_stopped_10.json | 10 +- .../block/phonos/jukebox_top_stopped_11.json | 10 +- .../block/phonos/jukebox_top_stopped_12.json | 10 +- .../block/phonos/jukebox_top_stopped_13.json | 10 +- .../block/phonos/jukebox_top_stopped_14.json | 10 +- .../block/phonos/jukebox_top_stopped_15.json | 10 +- .../block/phonos/jukebox_top_stopped_16.json | 10 +- .../block/phonos/jukebox_top_stopped_17.json | 10 +- .../block/phonos/jukebox_top_stopped_18.json | 10 +- .../block/phonos/jukebox_top_stopped_19.json | 10 +- .../block/phonos/jukebox_top_stopped_2.json | 10 +- .../block/phonos/jukebox_top_stopped_3.json | 10 +- .../block/phonos/jukebox_top_stopped_4.json | 10 +- .../block/phonos/jukebox_top_stopped_5.json | 10 +- .../block/phonos/jukebox_top_stopped_6.json | 10 +- .../block/phonos/jukebox_top_stopped_7.json | 10 +- .../block/phonos/jukebox_top_stopped_8.json | 10 +- .../block/phonos/jukebox_top_stopped_9.json | 10 +- .../models/item/round_disc.json | 0 .../item/round_disc_colored_layers.json | 0 .../textures/block/vo_jukebox_top.png | Bin src/main/resources/fabric.mod.json | 2 +- .../minecraft/models/item/water_bucket.json | 0 .../textures/item/water_bucket_overlay.png | Bin .../coloredwaterbucket/pack.mcmeta | 12 +- .../resourcepacks/coloredwaterbucket/pack.png | Bin .../assets/minecraft/blockstates/furnace.json | 0 .../minecraft/materialmaps/block/furnace.json | 0 .../minecraft/models/block/furnace.json | 0 .../minecraft/models/block/furnace_on.json | 0 .../resourcepacks/fancyfurnace/pack.mcmeta | 2 +- .../resourcepacks/fancyfurnace/pack.png | Bin .../textures/block/brewing_stand.png | Bin .../nobrewingbottles/pack.mcmeta | 2 +- .../resourcepacks/nobrewingbottles/pack.png | Bin .../resources/visualoverhaul.accesswidener | 0 src/main/resources/visualoverhaul.mixins.json | 5 +- 143 files changed, 613 insertions(+), 707 deletions(-) mode change 100755 => 100644 .gitignore mode change 100755 => 100644 LICENSE mode change 100755 => 100644 README.md mode change 100755 => 100644 build.gradle mode change 100755 => 100644 gradle.properties mode change 100755 => 100644 gradle/wrapper/gradle-wrapper.jar mode change 100755 => 100644 gradle/wrapper/gradle-wrapper.properties mode change 100755 => 100644 gradlew mode change 100755 => 100644 gradlew.bat mode change 100755 => 100644 settings.gradle mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaul.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/block/JukeboxTop.java delete mode 100755 src/main/java/eu/midnightdust/visualoverhaul/block/model/FurnaceWoodenPlanksModel.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/block/renderer/BrewingStandBlockEntityRenderer.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/block/renderer/JukeboxBlockEntityRenderer.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/RadioJukeboxTop.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/renderer/RadioJukeboxBlockEntityRenderer.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/init/PhonosCompatInit.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/config/ModMenuIntegration.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/config/VOConfig.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinAbstractFurnaceBlockEntity.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinBrewingStandBlockEntity.java delete mode 100755 src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlock.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlockEntity.java mode change 100755 => 100644 src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinSoundSystem.java delete mode 100755 src/main/java/eu/midnightdust/visualoverhaul/util/JukeboxPacketUpdate.java delete mode 100755 src/main/java/eu/midnightdust/visualoverhaul/util/SoundTest.java mode change 100755 => 100644 src/main/resources/assets/biomemakeover/models/item/button_mushrooms_music_disk.json mode change 100755 => 100644 src/main/resources/assets/biomemakeover/models/item/button_mushrooms_music_disk_round.json mode change 100755 => 100644 src/main/resources/assets/biomemakeover/models/item/ghost_town_music_disk.json mode change 100755 => 100644 src/main/resources/assets/biomemakeover/models/item/ghost_town_music_disk_round.json mode change 100755 => 100644 src/main/resources/assets/biomemakeover/models/item/swamp_jives_music_disk.json mode change 100755 => 100644 src/main/resources/assets/biomemakeover/models/item/swamp_jives_music_disk_round.json mode change 100755 => 100644 src/main/resources/assets/desolation/models/item/music_disc_ashes.json mode change 100755 => 100644 src/main/resources/assets/desolation/models/item/music_disc_ashes_round.json mode change 100755 => 100644 src/main/resources/assets/dynamic-discs/models/item/dynamic_disc.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_0x10c.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_0x10c_round.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_cliffside_hinson.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_cliffside_hinson_round.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_i_jate_my_hob.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_i_jate_my_hob_round.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_peanuts.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_peanuts_round.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_repetition.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_repetition_round.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_sometimes_i_make_video_game_music.json mode change 100755 => 100644 src/main/resources/assets/extra_discs/models/item/music_disc_sometimes_i_make_video_game_music_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_11.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_11_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_13.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_13_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_blocks.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_blocks_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_cat.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_cat_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_chirp.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_chirp_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_far.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_far_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_mall.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_mall_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_mellohi.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_mellohi_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_pigstep.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_pigstep_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_stal.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_stal_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_strad.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_strad_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_wait.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_wait_round.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_ward.json mode change 100755 => 100644 src/main/resources/assets/minecraft/models/item/music_disc_ward_round.json mode change 100755 => 100644 src/main/resources/assets/phonos/models/item/custom_music_disc.json mode change 100755 => 100644 src/main/resources/assets/phonos/models/item/custom_music_disc_round.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/blockstates/jukebox_top.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/blockstates/radio_jukebox_top.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/icon.png mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/lang/en_us.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/jukebox_top_playing.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/jukebox_top_stopped.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_0.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_1.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_10.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_11.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_12.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_13.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_14.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_15.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_16.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_17.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_18.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_19.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_2.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_3.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_4.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_5.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_6.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_7.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_8.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_9.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_0.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_1.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_10.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_11.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_12.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_13.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_14.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_15.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_16.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_17.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_18.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_19.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_2.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_3.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_4.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_5.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_6.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_7.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_8.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_9.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/item/round_disc.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/models/item/round_disc_colored_layers.json mode change 100755 => 100644 src/main/resources/assets/visualoverhaul/textures/block/vo_jukebox_top.png mode change 100755 => 100644 src/main/resources/fabric.mod.json mode change 100755 => 100644 src/main/resources/resourcepacks/coloredwaterbucket/assets/minecraft/models/item/water_bucket.json mode change 100755 => 100644 src/main/resources/resourcepacks/coloredwaterbucket/assets/minecraft/textures/item/water_bucket_overlay.png mode change 100755 => 100644 src/main/resources/resourcepacks/coloredwaterbucket/pack.mcmeta mode change 100755 => 100644 src/main/resources/resourcepacks/coloredwaterbucket/pack.png mode change 100755 => 100644 src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/blockstates/furnace.json mode change 100755 => 100644 src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/materialmaps/block/furnace.json mode change 100755 => 100644 src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/models/block/furnace.json mode change 100755 => 100644 src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/models/block/furnace_on.json mode change 100755 => 100644 src/main/resources/resourcepacks/fancyfurnace/pack.mcmeta mode change 100755 => 100644 src/main/resources/resourcepacks/fancyfurnace/pack.png mode change 100755 => 100644 src/main/resources/resourcepacks/nobrewingbottles/assets/minecraft/textures/block/brewing_stand.png mode change 100755 => 100644 src/main/resources/resourcepacks/nobrewingbottles/pack.mcmeta mode change 100755 => 100644 src/main/resources/resourcepacks/nobrewingbottles/pack.png delete mode 100755 src/main/resources/visualoverhaul.accesswidener mode change 100755 => 100644 src/main/resources/visualoverhaul.mixins.json diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/build.gradle b/build.gradle old mode 100755 new mode 100644 index 9f7d12c..d20344a --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,10 @@ plugins { - id 'fabric-loom' version '0.8-SNAPSHOT' + id 'fabric-loom' version '0.5-SNAPSHOT' id 'maven-publish' } -sourceCompatibility = JavaVersion.VERSION_16 -targetCompatibility = JavaVersion.VERSION_16 +sourceCompatibility = JavaVersion.VERSION_1_8 +targetCompatibility = JavaVersion.VERSION_1_8 archivesBaseName = project.archives_base_name version = project.mod_version @@ -14,7 +14,6 @@ minecraft { } repositories { - maven { url "https://maven.terraformersmc.com/releases" } maven { url "https://jitpack.io" } } @@ -22,16 +21,13 @@ dependencies { //to change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + modCompile "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - compileOnly "io.github.FoundationGames:Phonos:0.1.1-1.17" + modImplementation "io.github.FoundationGames:Phonos:0.1.1-beta" - modImplementation "com.github.TeamMidnightDust:MidnightLib:${midnightlib_version}" - include "com.github.TeamMidnightDust:MidnightLib:${midnightlib_version}" - - modImplementation ("com.terraformersmc:modmenu:${project.mod_menu_version}") { + modImplementation ("io.github.prospector:modmenu:${project.mod_menu_version}") { exclude group: "net.fabricmc.fabric-api" } } @@ -39,33 +35,33 @@ dependencies { processResources { inputs.property "version", project.version - filesMatching("fabric.mod.json") { + from(sourceSets.main.resources.srcDirs) { + include "fabric.mod.json" expand "version": project.version } -} -tasks.withType(JavaCompile).configureEach { - // ensure that the encoding is set to UTF-8, no matter what the system default is - // this fixes some edge cases with special characters not displaying correctly - // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html - // If Javadoc is generated, this must be specified in that task too. - it.options.encoding = "UTF-8" + from(sourceSets.main.resources.srcDirs) { + exclude "fabric.mod.json" + } +} - // Minecraft 1.17 (21w19a) upwards uses Java 16. - it.options.release = 16 +// ensure that the encoding is set to UTF-8, no matter what the system default is +// this fixes some edge cases with special characters not displaying correctly +// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html +tasks.withType(JavaCompile) { + options.encoding = "UTF-8" } -java { - // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task - // if it is present. - // If you remove this line, sources will not be generated. - withSourcesJar() +// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task +// if it is present. +// If you remove this task, sources will not be generated. +task sourcesJar(type: Jar, dependsOn: classes) { + classifier = "sources" + from sourceSets.main.allSource } jar { - from("LICENSE") { - rename { "${it}_${project.archivesBaseName}"} - } + from "LICENSE" } // configure the maven publication @@ -82,11 +78,9 @@ publishing { } } - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + // select the repositories you want to publish to repositories { - // Add repositories to publish to here. - // Notice: This block does NOT have the same function as the block in the top level. - // The repositories here will be used for publishing your artifact, not for - // retrieving dependencies. + // uncomment to publish to the local maven + // mavenLocal() } } diff --git a/gradle.properties b/gradle.properties old mode 100755 new mode 100644 index fda099a..600169b --- a/gradle.properties +++ b/gradle.properties @@ -3,17 +3,17 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/use - minecraft_version=1.17-pre1 - yarn_mappings=1.17-pre1+build.9 - loader_version=0.11.3 + minecraft_version=1.16.5 + yarn_mappings=1.16.5+build.3 + loader_version=0.11.1 # Mod Properties - mod_version = 3.3.0 + mod_version = 3.2.0 maven_group = eu.midnightdust archives_base_name = visualoverhaul # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api - fabric_version=0.34.8+1.17 - mod_menu_version = 2.0.0-beta.5 - midnightlib_version=v0.2.2 + fabric_version=0.29.4+1.16 + + mod_menu_version = 1.14.6+build.31 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar old mode 100755 new mode 100644 index e708b1c023ec8b20f512888fe07c5bd3ff77bb8f..5c2d1cf016b3885f6930543d57b744ea8c220a1a GIT binary patch delta 19998 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 delta 23334 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 WDWbsF$p{Gi@ZUasP|4|kdH)CXgbPdn diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties old mode 100755 new mode 100644 index e5338d3..4b7e1f3 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew old mode 100755 new mode 100644 index 4f906e0..8e25e6c --- a/gradlew +++ b/gradlew @@ -82,7 +82,6 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -126,11 +125,10 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -156,19 +154,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=`expr $i + 1` + i=$((i+1)) done case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -177,9 +175,14 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=`save "$@"` +APP_ARGS=$(save "$@") # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat old mode 100755 new mode 100644 index 107acd3..9618d8d --- a/gradlew.bat +++ b/gradlew.bat @@ -29,9 +29,6 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @@ -40,7 +37,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if "%ERRORLEVEL%" == "0" goto init echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +51,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto execute +if exist "%JAVA_EXE%" goto init echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,14 +61,28 @@ echo location of your Java installation. goto fail +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% :end @rem End local scope for the variables with windows NT shell diff --git a/settings.gradle b/settings.gradle old mode 100755 new mode 100644 diff --git a/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaul.java b/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaul.java old mode 100755 new mode 100644 diff --git a/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java b/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java old mode 100755 new mode 100644 index 797ed50..459b696 --- a/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/VisualOverhaulClient.java @@ -1,20 +1,19 @@ package eu.midnightdust.visualoverhaul; import eu.midnightdust.visualoverhaul.block.JukeboxTop; -import eu.midnightdust.visualoverhaul.block.model.FurnaceWoodenPlanksModel; import eu.midnightdust.visualoverhaul.block.renderer.BrewingStandBlockEntityRenderer; import eu.midnightdust.visualoverhaul.block.renderer.FurnaceBlockEntityRenderer; import eu.midnightdust.visualoverhaul.block.renderer.JukeboxBlockEntityRenderer; +import eu.midnightdust.visualoverhaul.compat.phonos.block.renderer.RadioJukeboxBlockEntityRenderer; +import eu.midnightdust.visualoverhaul.compat.phonos.init.PhonosCompatInit; import eu.midnightdust.visualoverhaul.config.VOConfig; +import io.github.foundationgames.phonos.block.PhonosBlocks; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityModelLayerRegistry; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; -import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry; import net.fabricmc.fabric.api.resource.ResourceManagerHelper; -import net.fabricmc.fabric.api.resource.ResourcePackActivationType; import net.fabricmc.fabric.impl.blockrenderlayer.BlockRenderLayerMapImpl; import net.fabricmc.fabric.impl.networking.ClientSidePacketRegistryImpl; import net.fabricmc.loader.api.FabricLoader; @@ -26,8 +25,7 @@ import net.minecraft.block.entity.JukeboxBlockEntity; import net.minecraft.client.MinecraftClient; import net.minecraft.client.color.world.BiomeColors; -import net.minecraft.client.render.*; -import net.minecraft.item.Item; +import net.minecraft.client.render.RenderLayer; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.item.MusicDiscItem; @@ -37,15 +35,16 @@ import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BuiltinBiomes; +import net.minecraft.world.level.ColorResolver; import static eu.midnightdust.visualoverhaul.VisualOverhaul.*; -@SuppressWarnings("UnstableApiUsage") +@SuppressWarnings("deprecation") public class VisualOverhaulClient implements ClientModInitializer { public static Block JukeBoxTop = new JukeboxTop(); - public static Item RoundDiscDummy = new Item(new FabricItemSettings()); private final MinecraftClient client = MinecraftClient.getInstance(); @Override @@ -54,8 +53,6 @@ public void onInitializeClient() { // Block only registered on client, because it's just used for the renderer // Registry.register(Registry.BLOCK, new Identifier("visualoverhaul","jukebox_top"), JukeBoxTop); - Registry.register(Registry.ITEM, new Identifier("visualoverhaul","round_disc"), RoundDiscDummy); - EntityModelLayerRegistry.registerModelLayer(FurnaceWoodenPlanksModel.WOODEN_PLANKS_MODEL_LAYER, FurnaceWoodenPlanksModel::getTexturedModelData); BlockRenderLayerMapImpl.INSTANCE.putBlock(Blocks.JUKEBOX, RenderLayer.getCutout()); @@ -66,15 +63,15 @@ public void onInitializeClient() { BlockEntityRendererRegistry.INSTANCE.register(BlockEntityType.JUKEBOX, JukeboxBlockEntityRenderer::new); BlockEntityRendererRegistry.INSTANCE.register(BlockEntityType.FURNACE, FurnaceBlockEntityRenderer::new); -// // Phonos Compat // -// if (FabricLoader.getInstance().isModLoaded("phonos")) { -// PhonosCompatInit.init(); -// BlockEntityRendererRegistry.INSTANCE.register(PhonosBlocks.RADIO_JUKEBOX_ENTITY, RadioJukeboxBlockEntityRenderer::new); -// } + // Phonos Compat // + if (FabricLoader.getInstance().isModLoaded("phonos")) { + PhonosCompatInit.init(); + BlockEntityRendererRegistry.INSTANCE.register(PhonosBlocks.RADIO_JUKEBOX_ENTITY, RadioJukeboxBlockEntityRenderer::new); + } Registry.ITEM.forEach((item) -> { if(item instanceof MusicDiscItem || item.getName().getString().toLowerCase().contains("music_disc") || item.getName().getString().toLowerCase().contains("dynamic_disc")) { - FabricModelPredicateProviderRegistry.register(item, new Identifier("round"), (stack, world, entity, seed) -> stack.getCount() == 2 ? 1.0F : 0.0F); + FabricModelPredicateProviderRegistry.register(item, new Identifier("round"), (stack, world, entity) -> stack.getCount() == 2 ? 1.0F : 0.0F); } }); @@ -86,7 +83,8 @@ public void onInitializeClient() { inv.set(i, attachedData.readItemStack()); } packetContext.getTaskQueue().execute(() -> { - if (client.world != null && client.world.getBlockEntity(pos) != null && client.world.getBlockEntity(pos) instanceof BrewingStandBlockEntity blockEntity) { + if (client.world != null && client.world.getBlockEntity(pos) != null && client.world.getBlockEntity(pos) instanceof BrewingStandBlockEntity) { + BrewingStandBlockEntity blockEntity = (BrewingStandBlockEntity) client.world.getBlockEntity(pos); blockEntity.setStack(0, inv.get(0)); blockEntity.setStack(1, inv.get(1)); blockEntity.setStack(2, inv.get(2)); @@ -100,7 +98,8 @@ public void onInitializeClient() { BlockPos pos = attachedData.readBlockPos(); ItemStack record = attachedData.readItemStack(); packetContext.getTaskQueue().execute(() -> { - if (client.world != null && client.world.getBlockEntity(pos) != null && client.world.getBlockEntity(pos) instanceof JukeboxBlockEntity blockEntity) { + if (client.world != null && client.world.getBlockEntity(pos) != null && client.world.getBlockEntity(pos) instanceof JukeboxBlockEntity) { + JukeboxBlockEntity blockEntity = (JukeboxBlockEntity) client.world.getBlockEntity(pos); blockEntity.setRecord(record); } }); @@ -113,7 +112,8 @@ public void onInitializeClient() { inv.set(i, attachedData.readItemStack()); } packetContext.getTaskQueue().execute(() -> { - if (client.world != null && client.world.getBlockEntity(pos) != null && client.world.getBlockEntity(pos) instanceof FurnaceBlockEntity blockEntity) { + if (client.world != null && client.world.getBlockEntity(pos) != null && client.world.getBlockEntity(pos) instanceof FurnaceBlockEntity) { + FurnaceBlockEntity blockEntity = (FurnaceBlockEntity) client.world.getBlockEntity(pos); blockEntity.setStack(0, inv.get(0)); blockEntity.setStack(1, inv.get(1)); blockEntity.setStack(2, inv.get(2)); @@ -123,9 +123,9 @@ public void onInitializeClient() { // Register builtin resourcepacks FabricLoader.getInstance().getModContainer("visualoverhaul").ifPresent(modContainer -> { - ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("visualoverhaul","nobrewingbottles"), modContainer, ResourcePackActivationType.DEFAULT_ENABLED); - ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("visualoverhaul","fancyfurnace"), modContainer, ResourcePackActivationType.DEFAULT_ENABLED); - ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("visualoverhaul","coloredwaterbucket"), modContainer, ResourcePackActivationType.DEFAULT_ENABLED); + ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("visualoverhaul:nobottles"), "resourcepacks/nobrewingbottles", modContainer, true); + ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("visualoverhaul:fancyfurnace"), "resourcepacks/fancyfurnace", modContainer, true); + ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("visualoverhaul:coloredwaterbucket"), "resourcepacks/coloredwaterbucket", modContainer, true); }); // Biome-colored Items @@ -135,7 +135,6 @@ public void onInitializeClient() { int foliageColor; int grassColor; if (client.world != null) { - assert client.player != null; waterColor = client.world.getColor(client.player.getBlockPos(), BiomeColors.WATER_COLOR); foliageColor = client.world.getColor(client.player.getBlockPos(), BiomeColors.FOLIAGE_COLOR); grassColor = client.world.getColor(client.player.getBlockPos(), BiomeColors.GRASS_COLOR); diff --git a/src/main/java/eu/midnightdust/visualoverhaul/block/JukeboxTop.java b/src/main/java/eu/midnightdust/visualoverhaul/block/JukeboxTop.java old mode 100755 new mode 100644 diff --git a/src/main/java/eu/midnightdust/visualoverhaul/block/model/FurnaceWoodenPlanksModel.java b/src/main/java/eu/midnightdust/visualoverhaul/block/model/FurnaceWoodenPlanksModel.java deleted file mode 100755 index 4115f6a..0000000 --- a/src/main/java/eu/midnightdust/visualoverhaul/block/model/FurnaceWoodenPlanksModel.java +++ /dev/null @@ -1,39 +0,0 @@ -package eu.midnightdust.visualoverhaul.block.model; - -import net.minecraft.client.model.*; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.client.render.VertexConsumer; -import net.minecraft.client.render.entity.model.EntityModelLayer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.util.Identifier; - -public class FurnaceWoodenPlanksModel extends Model { - private static ModelPart bb_main; - public static final EntityModelLayer WOODEN_PLANKS_MODEL_LAYER = new EntityModelLayer(new Identifier("visualoverhaul", "wooden_planks"), "main"); - - public FurnaceWoodenPlanksModel(ModelPart root) { - super(RenderLayer::getEntitySolid); - bb_main = root; - bb_main.setPivot(0.0F, 24.0F, 0.0F); - } - public ModelPart getPart() { - return bb_main; - } - - public static TexturedModelData getTexturedModelData() { - return TexturedModelData.of(getModelData(), 16, 16); - } - - public static ModelData getModelData(){ - ModelData modelData = new ModelData(); - ModelPartData modelPartData = modelData.getRoot(); - modelPartData.addChild("cube_r1", ModelPartBuilder.create().uv(0, 0).cuboid(-10.0F, -3.0F, 0.0F, 10.0F, 1.0F, 1.0F), ModelTransform.of(6.0F, 1.0F, -2.0F,0.0F, -0.5672F, 0.0F)); - modelPartData.addChild("cube_r2", ModelPartBuilder.create().uv(0, 0).cuboid(-10.0F, -2.5F, 0.0F, 10.0F, 2.0F, 2.0F), ModelTransform.of(5.0F, 0.0F, -5.0F,0.0F, -0.1309F, 0.0F)); - modelPartData.addChild("cube_r3", ModelPartBuilder.create().uv(0, 0).cuboid(-10.0F, -2.0F, 0.0F, 10.0F, 2.0F, 2.0F), ModelTransform.of(5.0F, -1.0F, -7.0F,0.0F, 0.2618F, 0.0F)); - return modelData; - } - - public void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha) { - bb_main.render(matrices, vertices, light, overlay, red, green, blue, alpha); - } -} diff --git a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/BrewingStandBlockEntityRenderer.java b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/BrewingStandBlockEntityRenderer.java old mode 100755 new mode 100644 index d4a99b6..4b03b40 --- a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/BrewingStandBlockEntityRenderer.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/BrewingStandBlockEntityRenderer.java @@ -9,18 +9,16 @@ import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; import net.minecraft.item.ItemStack; -import net.minecraft.util.math.Vec3f; - -import java.util.Objects; @Environment(EnvType.CLIENT) -public class BrewingStandBlockEntityRenderer implements BlockEntityRenderer { +public class BrewingStandBlockEntityRenderer extends BlockEntityRenderer { - public BrewingStandBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { + public BrewingStandBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) { + super(blockEntityRenderDispatcher); } @@ -28,41 +26,35 @@ public BrewingStandBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { public void render(BrewingStandBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { if (VOConfig.brewingstand) { - int lightAtBlock = WorldRenderer.getLightmapCoordinates(Objects.requireNonNull(blockEntity.getWorld()), blockEntity.getPos()); + int lightAtBlock = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos()); ItemStack item1 = blockEntity.getStack(0); ItemStack item2 = blockEntity.getStack(1); ItemStack item3 = blockEntity.getStack(2); - if (!item1.isEmpty()) { - matrices.push(); + matrices.push(); - matrices.translate(0.86f, 0.23f, 0.5f); - matrices.scale(1.15f, 1.15f, 1.15f); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180)); - MinecraftClient.getInstance().getItemRenderer().renderItem(item1, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers, 0); + matrices.translate(0.86f, 0.23f, 0.5f); + matrices.scale(1.15f, 1.15f, 1.15f); + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(180)); + MinecraftClient.getInstance().getItemRenderer().renderItem(item1, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers); - matrices.pop(); - } - if (!item2.isEmpty()) { - matrices.push(); + matrices.pop(); + matrices.push(); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(315)); - matrices.translate(0.32f, 0.23f, 0f); - matrices.scale(1.15f, 1.15f, 1.15f); - MinecraftClient.getInstance().getItemRenderer().renderItem(item2, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers, 0); + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(315)); + matrices.translate(0.32f, 0.23f, 0f); + matrices.scale(1.15f, 1.15f, 1.15f); + MinecraftClient.getInstance().getItemRenderer().renderItem(item2, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers); - matrices.pop(); - } - if (!item3.isEmpty()) { - matrices.push(); + matrices.pop(); + matrices.push(); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(45)); - matrices.translate(-0.39f, 0.23f, 0.705f); - matrices.scale(1.15f, 1.15f, 1.15f); - MinecraftClient.getInstance().getItemRenderer().renderItem(item3, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers, 0); + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(45)); + matrices.translate(-0.39f, 0.23f, 0.705f); + matrices.scale(1.15f, 1.15f, 1.15f); + MinecraftClient.getInstance().getItemRenderer().renderItem(item3, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers); - matrices.pop(); - } + matrices.pop(); } } } \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java old mode 100755 new mode 100644 index 3128ba0..355d6df --- a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/FurnaceBlockEntityRenderer.java @@ -1,71 +1,98 @@ package eu.midnightdust.visualoverhaul.block.renderer; -import eu.midnightdust.visualoverhaul.block.model.FurnaceWoodenPlanksModel; import eu.midnightdust.visualoverhaul.config.VOConfig; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.*; import net.minecraft.block.entity.FurnaceBlockEntity; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.model.ModelPart; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.texture.Sprite; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; import net.minecraft.item.ItemStack; import net.minecraft.tag.ItemTags; import net.minecraft.util.Identifier; -import net.minecraft.util.math.Vec3f; - -import java.util.Objects; @Environment(EnvType.CLIENT) -public class FurnaceBlockEntityRenderer implements BlockEntityRenderer { - private final FurnaceWoodenPlanksModel planks; +public class FurnaceBlockEntityRenderer extends BlockEntityRenderer { + private static final ModelPart bb_main; + private static final ModelPart cube_r1; + private static final ModelPart cube_r2; + private static final ModelPart cube_r3; + + static { + bb_main = new ModelPart(16, 16, 0, 0); + bb_main.setPivot(0.0F, 24.0F, 0.0F); + + cube_r1 = new ModelPart(16, 16, 0, 0); + cube_r1.setPivot(6.0F, 1.0F, -2.0F); + bb_main.addChild(cube_r1); + setRotationAngle(cube_r1, 0.0F, -0.5672F, 0.0F); + cube_r1.setTextureOffset(0, 0).addCuboid(-10.0F, -3.0F, 0.0F, 10.0F, 1.0F, 1.0F, 0.0F, false); + + cube_r2 = new ModelPart(16, 16, 0, 0); + cube_r2.setPivot(5.0F, 0.0F, -5.0F); + bb_main.addChild(cube_r2); + setRotationAngle(cube_r2, 0.0F, -0.1309F, 0.0F); + cube_r2.setTextureOffset(0, 0).addCuboid(-10.0F, -2.5F, 0.0F, 10.0F, 2.0F, 2.0F, 0.0F, false); + + cube_r3 = new ModelPart(16, 16, 0, 0); + cube_r3.setPivot(5.0F, -1.0F, -7.0F); + bb_main.addChild(cube_r3); + setRotationAngle(cube_r3, 0.0F, 0.2618F, 0.0F); + cube_r3.setTextureOffset(0, 0).addCuboid(-10.0F, -2.0F, 0.0F, 10.0F, 2.0F, 2.0F, 0.0F, false); + } + public static void setRotationAngle(ModelPart bone, float x, float y, float z) { + bone.pitch = x; + bone.yaw = y; + bone.roll = z; + } - public FurnaceBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { - this.planks = new FurnaceWoodenPlanksModel(ctx.getLayerModelPart(FurnaceWoodenPlanksModel.WOODEN_PLANKS_MODEL_LAYER)); + public FurnaceBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) { + super(blockEntityRenderDispatcher); } @Override public void render(FurnaceBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { - if (VOConfig.furnace && blockEntity.getCachedState().getBlock().getDefaultState().isOf(Blocks.FURNACE)) { + if (VOConfig.furnace && blockEntity.getCachedState().getBlock().is(Blocks.FURNACE)) { BlockState blockState = blockEntity.getCachedState(); - int lightAtBlock = WorldRenderer.getLightmapCoordinates(Objects.requireNonNull(blockEntity.getWorld()), blockEntity.getPos().offset(blockState.get(AbstractFurnaceBlock.FACING))); + int lightAtBlock = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos().offset(blockState.get(AbstractFurnaceBlock.FACING))); ItemStack item1 = blockEntity.getStack(0); ItemStack item2 = blockEntity.getStack(1); float angle = (blockState.get(AbstractFurnaceBlock.FACING)).asRotation(); - if(!item1.isEmpty()) { - matrices.push(); + matrices.push(); - matrices.translate(0.5f, 0.58f, 0.5f); - matrices.scale(1f, 1f, 1f); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(angle * 3 + 180)); - matrices.translate(0.0f, 0.0f, -0.4f); - matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(90)); - MinecraftClient.getInstance().getItemRenderer().renderItem(item1, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers, 0); + matrices.translate(0.5f, 0.58f, 0.5f); + matrices.scale(1f, 1f, 1f); + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(angle * 3 + 180)); + matrices.translate(0.0f, 0.0f, -0.4f); + matrices.multiply(Vector3f.POSITIVE_X.getDegreesQuaternion(90)); + MinecraftClient.getInstance().getItemRenderer().renderItem(item1, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers); - matrices.pop(); - } - if (!item2.isEmpty() && !ItemTags.LOGS_THAT_BURN.contains(item2.getItem()) && !ItemTags.PLANKS.contains(item2.getItem())) { + matrices.pop(); + if (!item2.getItem().isIn(ItemTags.LOGS_THAT_BURN) && !item2.getItem().isIn(ItemTags.PLANKS)) { matrices.push(); matrices.translate(0.5f, 0.08f, 0.5f); matrices.scale(1f, 1f, 1f); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(angle * 3 + 180)); + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(angle * 3 + 180)); matrices.translate(0.0f, 0.0f, -0.4f); - matrices.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(90)); - MinecraftClient.getInstance().getItemRenderer().renderItem(item2, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers,0); + matrices.multiply(Vector3f.POSITIVE_X.getDegreesQuaternion(90)); + MinecraftClient.getInstance().getItemRenderer().renderItem(item2, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers); matrices.pop(); } - else if (!item2.isEmpty()) { + if (item2.getItem().isIn(ItemTags.LOGS_THAT_BURN) || item2.getItem().isIn(ItemTags.PLANKS)) { matrices.push(); BlockState state = Block.getBlockFromItem(item2.getItem()).getDefaultState(); Sprite texture = MinecraftClient.getInstance().getBlockRenderManager().getModel(state).getSprite(); @@ -75,8 +102,8 @@ else if (!item2.isEmpty()) { matrices.scale(1f, 1f, 1f); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(angle * 3 + 180)); - planks.getPart().render(matrices, vertexConsumer, lightAtBlock, overlay); + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(angle * 3 + 180)); + bb_main.render(matrices, vertexConsumer, lightAtBlock, overlay); matrices.pop(); } } diff --git a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/JukeboxBlockEntityRenderer.java b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/JukeboxBlockEntityRenderer.java old mode 100755 new mode 100644 index 2805ca4..1b9b84e --- a/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/JukeboxBlockEntityRenderer.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/block/renderer/JukeboxBlockEntityRenderer.java @@ -2,42 +2,41 @@ import eu.midnightdust.visualoverhaul.VisualOverhaulClient; import eu.midnightdust.visualoverhaul.config.VOConfig; -import eu.midnightdust.visualoverhaul.util.SoundTest; +import eu.midnightdust.visualoverhaul.util.sound.SoundTest; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.block.SideShapeType; +import net.minecraft.block.Blocks; import net.minecraft.block.entity.JukeboxBlockEntity; import net.minecraft.client.MinecraftClient; import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; import net.minecraft.client.render.block.entity.BlockEntityRenderer; -import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; import net.minecraft.client.render.model.json.ModelTransformation; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; import net.minecraft.item.ItemStack; import net.minecraft.state.property.Properties; import net.minecraft.util.Identifier; -import net.minecraft.util.Util; -import net.minecraft.util.math.Direction; -import net.minecraft.util.math.Vec3f; import net.minecraft.util.registry.Registry; import org.apache.logging.log4j.LogManager; -import java.util.*; +import java.util.Random; @Environment(EnvType.CLIENT) -public class JukeboxBlockEntityRenderer implements BlockEntityRenderer { +public class JukeboxBlockEntityRenderer extends BlockEntityRenderer { private ItemStack record; private Identifier discItem; - public JukeboxBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { + public JukeboxBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) { + super(blockEntityRenderDispatcher); } @Override public void render(JukeboxBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { if (VOConfig.jukebox) { - int lightAbove = WorldRenderer.getLightmapCoordinates(Objects.requireNonNull(blockEntity.getWorld()), blockEntity.getPos().up()); + int lightAbove = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos().up()); // Tries to get the disc using the serverside method if (blockEntity.getRecord() != ItemStack.EMPTY) { @@ -65,18 +64,18 @@ record = ItemStack.EMPTY; record = ItemStack.EMPTY; } - if (!record.isEmpty()) { - record.setCount(2); - matrices.push(); - matrices.translate(0.5f, 1.03f, 0.5f); - matrices.scale(0.75f, 0.75f, 0.75f); - matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(Util.getMeasuringTimeMs() / 9.0f)); - MinecraftClient.getInstance().getItemRenderer().renderItem(record, ModelTransformation.Mode.GROUND, lightAbove, overlay, matrices, vertexConsumers, 0); + record.setCount(2); - matrices.pop(); - } - if (VOConfig.jukebox_fake_block && !blockEntity.getWorld().getBlockState(blockEntity.getPos().up()).isSideSolid(blockEntity.getWorld(),blockEntity.getPos().up(), Direction.DOWN, SideShapeType.FULL)) { + matrices.push(); + + matrices.translate(0.5f, 1.03f, 0.5f); + matrices.scale(0.75f, 0.75f, 0.75f); + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion((blockEntity.getWorld().getTime() + tickDelta) * 4)); + MinecraftClient.getInstance().getItemRenderer().renderItem(record, ModelTransformation.Mode.GROUND, lightAbove, overlay, matrices, vertexConsumers); + + matrices.pop(); + if (VOConfig.jukebox_fake_block && blockEntity.getWorld().getBlockState(blockEntity.getPos().up()).getBlock() == Blocks.AIR) { matrices.push(); matrices.translate(0f, 1f, 0f); if (record == ItemStack.EMPTY) { diff --git a/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/RadioJukeboxTop.java b/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/RadioJukeboxTop.java old mode 100755 new mode 100644 index 758a965..95ecc72 --- a/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/RadioJukeboxTop.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/RadioJukeboxTop.java @@ -9,17 +9,17 @@ import net.minecraft.state.property.BooleanProperty; import net.minecraft.state.property.IntProperty; -//public class RadioJukeboxTop extends Block { -// public static final BooleanProperty PLAYING = RadioJukeboxBlock.PLAYING; -// public static final IntProperty CHANNEL = RadioJukeboxBlock.CHANNEL; -// -// public RadioJukeboxTop() { -// super(FabricBlockSettings.copy(PhonosBlocks.RADIO_JUKEBOX)); -// this.setDefaultState(this.stateManager.getDefaultState()); -// } -// -// @Override -// protected void appendProperties(StateManager.Builder builder) { -// builder.add(PLAYING, CHANNEL); -// } -//} +public class RadioJukeboxTop extends Block { + public static final BooleanProperty PLAYING = RadioJukeboxBlock.PLAYING; + public static final IntProperty CHANNEL = RadioJukeboxBlock.CHANNEL; + + public RadioJukeboxTop() { + super(FabricBlockSettings.copy(PhonosBlocks.RADIO_JUKEBOX)); + this.setDefaultState(this.stateManager.getDefaultState()); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(PLAYING, CHANNEL); + } +} diff --git a/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/renderer/RadioJukeboxBlockEntityRenderer.java b/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/renderer/RadioJukeboxBlockEntityRenderer.java old mode 100755 new mode 100644 index eefec02..abdc516 --- a/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/renderer/RadioJukeboxBlockEntityRenderer.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/block/renderer/RadioJukeboxBlockEntityRenderer.java @@ -1,74 +1,75 @@ package eu.midnightdust.visualoverhaul.compat.phonos.block.renderer; -// -//import eu.midnightdust.visualoverhaul.compat.phonos.block.RadioJukeboxTop; -//import eu.midnightdust.visualoverhaul.compat.phonos.init.PhonosCompatInit; -//import eu.midnightdust.visualoverhaul.config.VOConfig; -//import io.github.foundationgames.phonos.block.RadioJukeboxBlock; -//import io.github.foundationgames.phonos.block.entity.RadioJukeboxBlockEntity; -//import net.fabricmc.api.EnvType; -//import net.fabricmc.api.Environment; -//import net.minecraft.block.BlockState; -//import net.minecraft.block.Blocks; -//import net.minecraft.client.MinecraftClient; -//import net.minecraft.client.render.RenderLayer; -//import net.minecraft.client.render.VertexConsumerProvider; -//import net.minecraft.client.render.WorldRenderer; -//import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; -//import net.minecraft.client.render.block.entity.BlockEntityRenderer; -//import net.minecraft.client.render.model.json.ModelTransformation; -//import net.minecraft.client.util.math.MatrixStack; -//import net.minecraft.item.ItemStack; -// -//import java.util.Random; -// -//@Environment(EnvType.CLIENT) -//public class RadioJukeboxBlockEntityRenderer implements BlockEntityRenderer { -// private ItemStack record; -// private float rotation = 0; -// private BlockState blockState; -// -// public RadioJukeboxBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) { -// super(); -// } -// -// @Override -// public void render(RadioJukeboxBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { -// if (VOConfig.jukebox) { -// int lightAbove = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos().up()); -// -// // Tries to get the disc using the serverside method -// if (blockEntity.getStack(blockEntity.getPlayingSong()) != ItemStack.EMPTY) { -// record = blockEntity.getStack(blockEntity.getPlayingSong()).copy(); -// record.setCount(2); -// } -// // If the sound is stopped or no sound is playing, the stack is set to an empty stack // -// else { -// record = ItemStack.EMPTY; -// } -// -// matrices.push(); -// -// matrices.translate(0.5f, 1.03f, 0.5f); -// matrices.scale(0.75f, 0.75f, 0.75f); -// -// if (blockEntity.isPlaying()) { -// rotation = (blockEntity.getWorld().getTime() + tickDelta) * 4; -// } -// matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(rotation)); -// MinecraftClient.getInstance().getItemRenderer().renderItem(record, ModelTransformation.Mode.GROUND, lightAbove, overlay, matrices, vertexConsumers); -// -// matrices.pop(); -// if (VOConfig.jukebox_fake_block && blockEntity.getWorld().getBlockState(blockEntity.getPos().up()).getBlock() == Blocks.AIR) { -// blockState = blockEntity.getWorld().getBlockState(blockEntity.getPos()); -// matrices.push(); -// matrices.translate(0f, 1f, 0f); -// if (record == ItemStack.EMPTY) { -// MinecraftClient.getInstance().getBlockRenderManager().renderBlock(PhonosCompatInit.RadioJukeboxTop.getDefaultState().with(RadioJukeboxTop.PLAYING, false).with(RadioJukeboxTop.CHANNEL, blockState.get(RadioJukeboxBlock.CHANNEL)), blockEntity.getPos().up(), blockEntity.getWorld(), matrices, vertexConsumers.getBuffer(RenderLayer.getCutout()), false, new Random()); -// } else { -// MinecraftClient.getInstance().getBlockRenderManager().renderBlock(PhonosCompatInit.RadioJukeboxTop.getDefaultState().with(RadioJukeboxTop.PLAYING, true).with(RadioJukeboxTop.CHANNEL, blockState.get(RadioJukeboxBlock.CHANNEL)), blockEntity.getPos().up(), blockEntity.getWorld(), matrices, vertexConsumers.getBuffer(RenderLayer.getCutout()), false, new Random()); -// } -// matrices.pop(); -// } -// } -// } -//} \ No newline at end of file + +import eu.midnightdust.visualoverhaul.compat.phonos.block.RadioJukeboxTop; +import eu.midnightdust.visualoverhaul.compat.phonos.init.PhonosCompatInit; +import eu.midnightdust.visualoverhaul.config.VOConfig; +import io.github.foundationgames.phonos.block.RadioJukeboxBlock; +import io.github.foundationgames.phonos.block.entity.RadioJukeboxBlockEntity; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.WorldRenderer; +import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher; +import net.minecraft.client.render.block.entity.BlockEntityRenderer; +import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.client.util.math.Vector3f; +import net.minecraft.item.ItemStack; + +import java.util.Random; + +@Environment(EnvType.CLIENT) +public class RadioJukeboxBlockEntityRenderer extends BlockEntityRenderer { + private ItemStack record; + private float rotation = 0; + private BlockState blockState; + + public RadioJukeboxBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) { + super(blockEntityRenderDispatcher); + } + + @Override + public void render(RadioJukeboxBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) { + if (VOConfig.jukebox) { + int lightAbove = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos().up()); + + // Tries to get the disc using the serverside method + if (blockEntity.getStack(blockEntity.getPlayingSong()) != ItemStack.EMPTY) { + record = blockEntity.getStack(blockEntity.getPlayingSong()).copy(); + record.setCount(2); + } + // If the sound is stopped or no sound is playing, the stack is set to an empty stack // + else { + record = ItemStack.EMPTY; + } + + matrices.push(); + + matrices.translate(0.5f, 1.03f, 0.5f); + matrices.scale(0.75f, 0.75f, 0.75f); + + if (blockEntity.isPlaying()) { + rotation = (blockEntity.getWorld().getTime() + tickDelta) * 4; + } + matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(rotation)); + MinecraftClient.getInstance().getItemRenderer().renderItem(record, ModelTransformation.Mode.GROUND, lightAbove, overlay, matrices, vertexConsumers); + + matrices.pop(); + if (VOConfig.jukebox_fake_block && blockEntity.getWorld().getBlockState(blockEntity.getPos().up()).getBlock() == Blocks.AIR) { + blockState = blockEntity.getWorld().getBlockState(blockEntity.getPos()); + matrices.push(); + matrices.translate(0f, 1f, 0f); + if (record == ItemStack.EMPTY) { + MinecraftClient.getInstance().getBlockRenderManager().renderBlock(PhonosCompatInit.RadioJukeboxTop.getDefaultState().with(RadioJukeboxTop.PLAYING, false).with(RadioJukeboxTop.CHANNEL, blockState.get(RadioJukeboxBlock.CHANNEL)), blockEntity.getPos().up(), blockEntity.getWorld(), matrices, vertexConsumers.getBuffer(RenderLayer.getCutout()), false, new Random()); + } else { + MinecraftClient.getInstance().getBlockRenderManager().renderBlock(PhonosCompatInit.RadioJukeboxTop.getDefaultState().with(RadioJukeboxTop.PLAYING, true).with(RadioJukeboxTop.CHANNEL, blockState.get(RadioJukeboxBlock.CHANNEL)), blockEntity.getPos().up(), blockEntity.getWorld(), matrices, vertexConsumers.getBuffer(RenderLayer.getCutout()), false, new Random()); + } + matrices.pop(); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/init/PhonosCompatInit.java b/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/init/PhonosCompatInit.java old mode 100755 new mode 100644 index 78d32a7..5f41f20 --- a/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/init/PhonosCompatInit.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/compat/phonos/init/PhonosCompatInit.java @@ -1,20 +1,20 @@ -package eu.midnightdust.visualoverhaul.compat.phonos.init; - -//import eu.midnightdust.visualoverhaul.compat.phonos.block.RadioJukeboxTop; -import io.github.foundationgames.phonos.block.PhonosBlocks; -import net.fabricmc.fabric.impl.blockrenderlayer.BlockRenderLayerMapImpl; -import net.minecraft.block.Block; -import net.minecraft.client.render.RenderLayer; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; - -public class PhonosCompatInit { - //public static Block RadioJukeboxTop = new RadioJukeboxTop(); - - public static void init() { - //Registry.register(Registry.BLOCK, new Identifier("visualoverhaul","radio_jukebox_top"), RadioJukeboxTop); - - //BlockRenderLayerMapImpl.INSTANCE.putBlock(PhonosBlocks.RADIO_JUKEBOX, RenderLayer.getCutout()); - //BlockRenderLayerMapImpl.INSTANCE.putBlock(RadioJukeboxTop, RenderLayer.getCutout()); - } -} +package eu.midnightdust.visualoverhaul.compat.phonos.init; + +import eu.midnightdust.visualoverhaul.compat.phonos.block.RadioJukeboxTop; +import io.github.foundationgames.phonos.block.PhonosBlocks; +import net.fabricmc.fabric.impl.blockrenderlayer.BlockRenderLayerMapImpl; +import net.minecraft.block.Block; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; + +public class PhonosCompatInit { + public static Block RadioJukeboxTop = new RadioJukeboxTop(); + + public static void init() { + Registry.register(Registry.BLOCK, new Identifier("visualoverhaul","radio_jukebox_top"), RadioJukeboxTop); + + BlockRenderLayerMapImpl.INSTANCE.putBlock(PhonosBlocks.RADIO_JUKEBOX, RenderLayer.getCutout()); + BlockRenderLayerMapImpl.INSTANCE.putBlock(RadioJukeboxTop, RenderLayer.getCutout()); + } +} diff --git a/src/main/java/eu/midnightdust/visualoverhaul/config/ModMenuIntegration.java b/src/main/java/eu/midnightdust/visualoverhaul/config/ModMenuIntegration.java old mode 100755 new mode 100644 index fe721ee..2f88b11 --- a/src/main/java/eu/midnightdust/visualoverhaul/config/ModMenuIntegration.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/config/ModMenuIntegration.java @@ -1,8 +1,7 @@ package eu.midnightdust.visualoverhaul.config; -import com.terraformersmc.modmenu.api.ConfigScreenFactory; -import com.terraformersmc.modmenu.api.ModMenuApi; -import eu.midnightdust.lib.config.MidnightConfig; +import io.github.prospector.modmenu.api.ConfigScreenFactory; +import io.github.prospector.modmenu.api.ModMenuApi; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -11,6 +10,6 @@ public class ModMenuIntegration implements ModMenuApi { @Override public ConfigScreenFactory getModConfigScreenFactory() { - return parent -> MidnightConfig.getScreen(parent,"visualoverhaul"); + return parent -> new VOConfig().getScreen(parent); } } \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/visualoverhaul/config/VOConfig.java b/src/main/java/eu/midnightdust/visualoverhaul/config/VOConfig.java old mode 100755 new mode 100644 index ee8fb75..c532cea --- a/src/main/java/eu/midnightdust/visualoverhaul/config/VOConfig.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/config/VOConfig.java @@ -1,11 +1,14 @@ package eu.midnightdust.visualoverhaul.config; -import eu.midnightdust.lib.config.MidnightConfig; - public class VOConfig extends MidnightConfig { - @Entry public static boolean brewingstand = true; - @Entry public static boolean jukebox = true; - @Entry public static boolean jukebox_fake_block = true; - @Entry public static boolean furnace = true; - @Entry public static boolean coloredItems = true; + @Entry + public static boolean brewingstand = true; + @Entry + public static boolean jukebox = true; + @Entry + public static boolean jukebox_fake_block = true; + @Entry + public static boolean furnace = true; + @Entry + public static boolean coloredItems = true; } diff --git a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinAbstractFurnaceBlockEntity.java b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinAbstractFurnaceBlockEntity.java old mode 100755 new mode 100644 index 24ec047..92a9f1c --- a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinAbstractFurnaceBlockEntity.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinAbstractFurnaceBlockEntity.java @@ -4,15 +4,14 @@ import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.server.PlayerStream; import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl; -import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.block.entity.*; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.util.collection.DefaultedList; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -23,25 +22,26 @@ @Mixin(AbstractFurnaceBlockEntity.class) public abstract class MixinAbstractFurnaceBlockEntity extends LockableContainerBlockEntity { - private static boolean invUpdate = true; - private static int playerUpdate = -1; + @Shadow protected DefaultedList inventory; + Boolean invUpdate = true; + int playerUpdate = -1; - - protected MixinAbstractFurnaceBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { - super(blockEntityType, blockPos, blockState); + private MixinAbstractFurnaceBlockEntity(BlockEntityType blockEntityType) { + super(blockEntityType); } @Inject(at = @At("TAIL"), method = "tick") - private static void tick(World world, BlockPos pos, BlockState state, AbstractFurnaceBlockEntity blockEntity, CallbackInfo ci) { - if (world.getBlockState(pos).getBlock().equals(Blocks.FURNACE)) { - if (!world.isClient && (invUpdate || world.getPlayers().size() == playerUpdate)) { - Stream watchingPlayers = PlayerStream.watching(world, pos); + public void tick(CallbackInfo ci) { + if (this.world.getBlockState(this.pos).getBlock().is(Blocks.FURNACE)) { + if (!this.world.isClient && (invUpdate || world.getPlayers().size() == playerUpdate)) { + Stream watchingPlayers = PlayerStream.watching(world, getPos()); PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer()); passedData.writeBlockPos(pos); - passedData.writeItemStack(blockEntity.getStack(0)); - passedData.writeItemStack(blockEntity.getStack(1)); - passedData.writeItemStack(blockEntity.getStack(2)); + passedData.writeItemStack(inventory.get(0)); + passedData.writeItemStack(inventory.get(1)); + passedData.writeItemStack(inventory.get(2)); + passedData.writeString(String.valueOf(inventory)); watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_FURNACE_ITEMS, passedData)); invUpdate = false; } @@ -50,7 +50,7 @@ private static void tick(World world, BlockPos pos, BlockState state, AbstractFu } @Inject(at = @At("RETURN"), method = "getStack", cancellable = true) - public void getStack(int slot, CallbackInfoReturnable cir) { - invUpdate = true; + public void getStack(int slot, CallbackInfoReturnable cir) { + this.invUpdate = true; } } diff --git a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinBrewingStandBlockEntity.java b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinBrewingStandBlockEntity.java old mode 100755 new mode 100644 index 2b071b2..37ba938 --- a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinBrewingStandBlockEntity.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinBrewingStandBlockEntity.java @@ -4,16 +4,15 @@ import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.server.PlayerStream; import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl; -import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.block.entity.BrewingStandBlockEntity; import net.minecraft.block.entity.LockableContainerBlockEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.util.collection.DefaultedList; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -24,25 +23,27 @@ @Mixin(BrewingStandBlockEntity.class) public abstract class MixinBrewingStandBlockEntity extends LockableContainerBlockEntity { - private static boolean invUpdate = true; - private static int playerUpdate = -1; + @Shadow private DefaultedList inventory; + Boolean invUpdate = true; + int playerUpdate = -1; - protected MixinBrewingStandBlockEntity(BlockEntityType blockEntityType, BlockPos blockPos, BlockState blockState) { - super(blockEntityType, blockPos, blockState); + private MixinBrewingStandBlockEntity(BlockEntityType blockEntityType) { + super(blockEntityType); } @Inject(at = @At("TAIL"), method = "tick") - private static void tick(World world, BlockPos pos, BlockState state, BrewingStandBlockEntity blockEntity, CallbackInfo ci) { - if (!world.isClient && (invUpdate || world.getPlayers().size() == playerUpdate)) { - Stream watchingPlayers = PlayerStream.watching(world, pos); + public void tick(CallbackInfo ci) { + if (!this.world.isClient && (invUpdate || world.getPlayers().size() == playerUpdate)) { + Stream watchingPlayers = PlayerStream.watching(world, getPos()); PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer()); passedData.writeBlockPos(pos); - passedData.writeItemStack(blockEntity.getStack(0)); - passedData.writeItemStack(blockEntity.getStack(1)); - passedData.writeItemStack(blockEntity.getStack(2)); - passedData.writeItemStack(blockEntity.getStack(3)); - passedData.writeItemStack(blockEntity.getStack(4)); + passedData.writeItemStack(inventory.get(0)); + passedData.writeItemStack(inventory.get(1)); + passedData.writeItemStack(inventory.get(2)); + passedData.writeItemStack(inventory.get(3)); + passedData.writeItemStack(inventory.get(4)); + passedData.writeString(String.valueOf(inventory)); watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_POTION_BOTTLES, passedData)); invUpdate = false; } @@ -50,7 +51,7 @@ private static void tick(World world, BlockPos pos, BlockState state, BrewingSta } @Inject(at = @At("RETURN"), method = "getStack", cancellable = true) - public void getStack(int slot, CallbackInfoReturnable cir) { - invUpdate = true; + public void getStack(int slot, CallbackInfoReturnable cir) { + this.invUpdate = true; } } diff --git a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlock.java b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlock.java deleted file mode 100755 index f57d6f7..0000000 --- a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlock.java +++ /dev/null @@ -1,56 +0,0 @@ -package eu.midnightdust.visualoverhaul.mixin; - -import eu.midnightdust.visualoverhaul.VisualOverhaul; -import eu.midnightdust.visualoverhaul.util.JukeboxPacketUpdate; -import io.netty.buffer.Unpooled; -import net.fabricmc.fabric.api.networking.v1.PlayerLookup; -import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl; -import net.minecraft.block.BlockRenderType; -import net.minecraft.block.BlockState; -import net.minecraft.block.BlockWithEntity; -import net.minecraft.block.JukeboxBlock; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityTicker; -import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.block.entity.JukeboxBlockEntity; -import net.minecraft.network.PacketByteBuf; -import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Unique; - -import java.util.stream.Stream; - -@Mixin(JukeboxBlock.class) -public abstract class MixinJukeboxBlock extends BlockWithEntity { - - protected MixinJukeboxBlock(Settings settings) { - super(settings); - } - - @Override - public BlockRenderType getRenderType(BlockState state) { - return BlockRenderType.MODEL; - } - - @Nullable - public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type) { - return world.isClient() ? null : checkType(type, BlockEntityType.JUKEBOX, MixinJukeboxBlock::tick); - } - @Unique - private static void tick(World world, BlockPos pos, BlockState state, JukeboxBlockEntity blockEntity) { - if (!world.isClient && (JukeboxPacketUpdate.invUpdate || world.getPlayers().size() == JukeboxPacketUpdate.playerUpdate)) { - Stream watchingPlayers = PlayerLookup.tracking(blockEntity).stream(); - PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer()); - passedData.writeBlockPos(pos); - passedData.writeItemStack(blockEntity.getRecord()); - - watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_RECORD, passedData)); - JukeboxPacketUpdate.invUpdate = false; - } - JukeboxPacketUpdate.playerUpdate = world.getPlayers().size(); - } -} - diff --git a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlockEntity.java b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlockEntity.java old mode 100755 new mode 100644 index 956f1e8..122bee3 --- a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlockEntity.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinJukeboxBlockEntity.java @@ -1,18 +1,16 @@ package eu.midnightdust.visualoverhaul.mixin; import eu.midnightdust.visualoverhaul.VisualOverhaul; -import eu.midnightdust.visualoverhaul.util.JukeboxPacketUpdate; import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.server.PlayerStream; import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl; -import net.minecraft.block.BlockState; import net.minecraft.block.entity.*; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketByteBuf; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.util.Tickable; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -21,28 +19,32 @@ import java.util.stream.Stream; @Mixin(JukeboxBlockEntity.class) -public abstract class MixinJukeboxBlockEntity extends BlockEntity { +public abstract class MixinJukeboxBlockEntity extends BlockEntity implements Tickable { - public MixinJukeboxBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); + @Shadow private ItemStack record; + Boolean invUpdate = true; + int playerUpdate = -1; + + private MixinJukeboxBlockEntity(BlockEntityType blockEntityType) { + super(blockEntityType); } @Unique - private static void tick(World world, BlockPos pos, BlockState state, JukeboxBlockEntity blockEntity) { - if (!world.isClient && (JukeboxPacketUpdate.invUpdate || world.getPlayers().size() == JukeboxPacketUpdate.playerUpdate)) { - Stream watchingPlayers = PlayerStream.watching(world, pos); + public void tick() { + if (!this.world.isClient && (invUpdate || world.getPlayers().size() == playerUpdate)) { + Stream watchingPlayers = PlayerStream.watching(world, getPos()); PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer()); passedData.writeBlockPos(pos); - passedData.writeItemStack(blockEntity.getRecord()); + passedData.writeItemStack(record); watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_RECORD, passedData)); - JukeboxPacketUpdate.invUpdate = false; + invUpdate = false; } - JukeboxPacketUpdate.playerUpdate = world.getPlayers().size(); + playerUpdate = world.getPlayers().size(); } @Inject(at = @At("RETURN"), method = "getRecord", cancellable = true) - public void getRecord(CallbackInfoReturnable cir) { - JukeboxPacketUpdate.invUpdate = true; + public void getRecord(CallbackInfoReturnable cir) { + this.invUpdate = true; } } diff --git a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinSoundSystem.java b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinSoundSystem.java old mode 100755 new mode 100644 index d5cfb3a..a58d070 --- a/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinSoundSystem.java +++ b/src/main/java/eu/midnightdust/visualoverhaul/mixin/MixinSoundSystem.java @@ -1,40 +1,40 @@ -package eu.midnightdust.visualoverhaul.mixin; - -import eu.midnightdust.visualoverhaul.util.SoundTest; -import net.minecraft.client.sound.SoundInstance; -import net.minecraft.client.sound.SoundSystem; -import net.minecraft.sound.SoundCategory; -import net.minecraft.util.math.BlockPos; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(SoundSystem.class) -public abstract class MixinSoundSystem { - - @Shadow private boolean started; - - private BlockPos jukeboxPos; - - @Inject(at = @At("TAIL"),method = "play(Lnet/minecraft/client/sound/SoundInstance;)V") - public void vo$onPlayRecordSound(SoundInstance soundInstance, CallbackInfo ci) { - if (soundInstance.getCategory().equals(SoundCategory.RECORDS) && this.started) { - jukeboxPos = new BlockPos(soundInstance.getX(),soundInstance.getY(),soundInstance.getZ()); - SoundTest.soundPos.put(jukeboxPos, soundInstance.getId()); - } - } - - @Inject(at = @At("HEAD"),method = "stop(Lnet/minecraft/client/sound/SoundInstance;)V") - public void vo$onStopRecordSound(SoundInstance soundInstance, CallbackInfo ci) { - if (soundInstance != null) { - if (soundInstance.getCategory().equals(SoundCategory.RECORDS)) { - jukeboxPos = new BlockPos(soundInstance.getX(), soundInstance.getY(), soundInstance.getZ()); - if (SoundTest.soundPos.containsKey(jukeboxPos)) { - SoundTest.soundPos.remove(jukeboxPos, soundInstance.getId()); - } - } - } - } +package eu.midnightdust.visualoverhaul.mixin; + +import eu.midnightdust.visualoverhaul.util.sound.SoundTest; +import net.minecraft.client.sound.SoundInstance; +import net.minecraft.client.sound.SoundSystem; +import net.minecraft.sound.SoundCategory; +import net.minecraft.util.math.BlockPos; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(SoundSystem.class) +public abstract class MixinSoundSystem { + + @Shadow private boolean started; + + private BlockPos jukeboxPos; + + @Inject(at = @At("TAIL"),method = "play(Lnet/minecraft/client/sound/SoundInstance;)V") + public void onPlayRecordSound(SoundInstance soundInstance, CallbackInfo ci) { + if (soundInstance.getCategory().equals(SoundCategory.RECORDS) && this.started) { + jukeboxPos = new BlockPos(soundInstance.getX(),soundInstance.getY(),soundInstance.getZ()); + SoundTest.soundPos.put(jukeboxPos, soundInstance.getId()); + } + } + + @Inject(at = @At("HEAD"),method = "stop(Lnet/minecraft/client/sound/SoundInstance;)V") + public void onStopRecordSound(SoundInstance soundInstance, CallbackInfo ci) { + if (soundInstance != null) { + if (soundInstance.getCategory().equals(SoundCategory.RECORDS)) { + jukeboxPos = new BlockPos(soundInstance.getX(), soundInstance.getY(), soundInstance.getZ()); + if (SoundTest.soundPos.containsKey(jukeboxPos)) { + SoundTest.soundPos.remove(jukeboxPos, soundInstance.getId()); + } + } + } + } } \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/visualoverhaul/util/JukeboxPacketUpdate.java b/src/main/java/eu/midnightdust/visualoverhaul/util/JukeboxPacketUpdate.java deleted file mode 100755 index 1059775..0000000 --- a/src/main/java/eu/midnightdust/visualoverhaul/util/JukeboxPacketUpdate.java +++ /dev/null @@ -1,6 +0,0 @@ -package eu.midnightdust.visualoverhaul.util; - -public class JukeboxPacketUpdate { - public static boolean invUpdate = true; - public static int playerUpdate = -1; -} diff --git a/src/main/java/eu/midnightdust/visualoverhaul/util/SoundTest.java b/src/main/java/eu/midnightdust/visualoverhaul/util/SoundTest.java deleted file mode 100755 index 0af8b78..0000000 --- a/src/main/java/eu/midnightdust/visualoverhaul/util/SoundTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package eu.midnightdust.visualoverhaul.util; - -import com.google.common.collect.Maps; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.BlockPos; - -import java.util.Map; - -public class SoundTest { - - public static Map soundPos = Maps.newHashMap(); - - /** - * Returns the Sound provided in MixinSoundSystem - * {@link eu.midnightdust.visualoverhaul.mixin.MixinSoundSystem} - */ - public static Identifier getSound(BlockPos pos) { - if (soundPos.containsKey(pos)) { - return soundPos.get(pos); - } - return null; - } -} diff --git a/src/main/resources/assets/biomemakeover/models/item/button_mushrooms_music_disk.json b/src/main/resources/assets/biomemakeover/models/item/button_mushrooms_music_disk.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/biomemakeover/models/item/button_mushrooms_music_disk_round.json b/src/main/resources/assets/biomemakeover/models/item/button_mushrooms_music_disk_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/biomemakeover/models/item/ghost_town_music_disk.json b/src/main/resources/assets/biomemakeover/models/item/ghost_town_music_disk.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/biomemakeover/models/item/ghost_town_music_disk_round.json b/src/main/resources/assets/biomemakeover/models/item/ghost_town_music_disk_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/biomemakeover/models/item/swamp_jives_music_disk.json b/src/main/resources/assets/biomemakeover/models/item/swamp_jives_music_disk.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/biomemakeover/models/item/swamp_jives_music_disk_round.json b/src/main/resources/assets/biomemakeover/models/item/swamp_jives_music_disk_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/desolation/models/item/music_disc_ashes.json b/src/main/resources/assets/desolation/models/item/music_disc_ashes.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/desolation/models/item/music_disc_ashes_round.json b/src/main/resources/assets/desolation/models/item/music_disc_ashes_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/dynamic-discs/models/item/dynamic_disc.json b/src/main/resources/assets/dynamic-discs/models/item/dynamic_disc.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_0x10c.json b/src/main/resources/assets/extra_discs/models/item/music_disc_0x10c.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_0x10c_round.json b/src/main/resources/assets/extra_discs/models/item/music_disc_0x10c_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_cliffside_hinson.json b/src/main/resources/assets/extra_discs/models/item/music_disc_cliffside_hinson.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_cliffside_hinson_round.json b/src/main/resources/assets/extra_discs/models/item/music_disc_cliffside_hinson_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_i_jate_my_hob.json b/src/main/resources/assets/extra_discs/models/item/music_disc_i_jate_my_hob.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_i_jate_my_hob_round.json b/src/main/resources/assets/extra_discs/models/item/music_disc_i_jate_my_hob_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_peanuts.json b/src/main/resources/assets/extra_discs/models/item/music_disc_peanuts.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_peanuts_round.json b/src/main/resources/assets/extra_discs/models/item/music_disc_peanuts_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_repetition.json b/src/main/resources/assets/extra_discs/models/item/music_disc_repetition.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_repetition_round.json b/src/main/resources/assets/extra_discs/models/item/music_disc_repetition_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_sometimes_i_make_video_game_music.json b/src/main/resources/assets/extra_discs/models/item/music_disc_sometimes_i_make_video_game_music.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/extra_discs/models/item/music_disc_sometimes_i_make_video_game_music_round.json b/src/main/resources/assets/extra_discs/models/item/music_disc_sometimes_i_make_video_game_music_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_11.json b/src/main/resources/assets/minecraft/models/item/music_disc_11.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_11_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_11_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_13.json b/src/main/resources/assets/minecraft/models/item/music_disc_13.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_13_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_13_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_blocks.json b/src/main/resources/assets/minecraft/models/item/music_disc_blocks.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_blocks_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_blocks_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_cat.json b/src/main/resources/assets/minecraft/models/item/music_disc_cat.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_cat_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_cat_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_chirp.json b/src/main/resources/assets/minecraft/models/item/music_disc_chirp.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_chirp_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_chirp_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_far.json b/src/main/resources/assets/minecraft/models/item/music_disc_far.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_far_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_far_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_mall.json b/src/main/resources/assets/minecraft/models/item/music_disc_mall.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_mall_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_mall_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_mellohi.json b/src/main/resources/assets/minecraft/models/item/music_disc_mellohi.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_mellohi_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_mellohi_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_pigstep.json b/src/main/resources/assets/minecraft/models/item/music_disc_pigstep.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_pigstep_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_pigstep_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_stal.json b/src/main/resources/assets/minecraft/models/item/music_disc_stal.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_stal_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_stal_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_strad.json b/src/main/resources/assets/minecraft/models/item/music_disc_strad.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_strad_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_strad_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_wait.json b/src/main/resources/assets/minecraft/models/item/music_disc_wait.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_wait_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_wait_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_ward.json b/src/main/resources/assets/minecraft/models/item/music_disc_ward.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/minecraft/models/item/music_disc_ward_round.json b/src/main/resources/assets/minecraft/models/item/music_disc_ward_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/phonos/models/item/custom_music_disc.json b/src/main/resources/assets/phonos/models/item/custom_music_disc.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/phonos/models/item/custom_music_disc_round.json b/src/main/resources/assets/phonos/models/item/custom_music_disc_round.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/blockstates/jukebox_top.json b/src/main/resources/assets/visualoverhaul/blockstates/jukebox_top.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/blockstates/radio_jukebox_top.json b/src/main/resources/assets/visualoverhaul/blockstates/radio_jukebox_top.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/icon.png b/src/main/resources/assets/visualoverhaul/icon.png old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/lang/en_us.json b/src/main/resources/assets/visualoverhaul/lang/en_us.json old mode 100755 new mode 100644 index f762978..71bf2e3 --- a/src/main/resources/assets/visualoverhaul/lang/en_us.json +++ b/src/main/resources/assets/visualoverhaul/lang/en_us.json @@ -1,9 +1,9 @@ -{ - "visualoverhaul.midnightconfig.title":"Visual Overhaul Config", - "visualoverhaul.midnightconfig.brewingstand":"Enable Brewing Stand Enhancements", - "visualoverhaul.midnightconfig.jukebox":"Enable Jukebox Enhancements", - "visualoverhaul.midnightconfig.jukebox_fake_block":"Enable fake block on jukebox top", - "visualoverhaul.midnightconfig.furnace":"Enable Furnace Enhancements", - "visualoverhaul.midnightconfig.coloredItems":"Enable biome-based item colors", - "visualoverhaul.midnightconfig.coloredItems.tooltip":"Needs restart!" +{ + "visualoverhaul.midnightconfig.title":"Visual Overhaul Config", + "visualoverhaul.midnightconfig.brewingstand":"Enable Brewing Stand Enhancements", + "visualoverhaul.midnightconfig.jukebox":"Enable Jukebox Enhancements", + "visualoverhaul.midnightconfig.jukebox_fake_block":"Enable fake block on jukebox top", + "visualoverhaul.midnightconfig.furnace":"Enable Furnace Enhancements", + "visualoverhaul.midnightconfig.coloredItems":"Enable biome-based item colors", + "visualoverhaul.midnightconfig.coloredItems.tooltip":"Needs restart!" } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/jukebox_top_playing.json b/src/main/resources/assets/visualoverhaul/models/block/jukebox_top_playing.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/models/block/jukebox_top_stopped.json b/src/main/resources/assets/visualoverhaul/models/block/jukebox_top_stopped.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_0.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_0.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_1.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_1.json old mode 100755 new mode 100644 index 642136a..2f10cf0 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_1.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_1.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_1" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_1" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_10.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_10.json old mode 100755 new mode 100644 index 3b6d179..4a0a271 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_10.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_10.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_10" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_10" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_11.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_11.json old mode 100755 new mode 100644 index a713f45..1d3b402 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_11.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_11.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_11" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_11" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_12.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_12.json old mode 100755 new mode 100644 index b9f42a8..cf8abbe --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_12.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_12.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_12" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_12" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_13.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_13.json old mode 100755 new mode 100644 index 8ce6300..ee85815 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_13.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_13.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_13" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_13" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_14.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_14.json old mode 100755 new mode 100644 index 9f576df..a3ec693 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_14.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_14.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_14" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_14" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_15.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_15.json old mode 100755 new mode 100644 index 5ca7542..0f1374b --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_15.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_15.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_15" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_15" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_16.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_16.json old mode 100755 new mode 100644 index 11f2ce5..923bfd6 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_16.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_16.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_16" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_16" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_17.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_17.json old mode 100755 new mode 100644 index e7c38b3..7180109 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_17.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_17.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_17" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_17" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_18.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_18.json old mode 100755 new mode 100644 index 74db454..9269032 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_18.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_18.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_18" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_18" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_19.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_19.json old mode 100755 new mode 100644 index f3daff5..540a2a1 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_19.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_19.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_19" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_19" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_2.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_2.json old mode 100755 new mode 100644 index a80d91d..fd2fb06 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_2.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_2.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_2" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_2" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_3.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_3.json old mode 100755 new mode 100644 index 5626140..4801b94 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_3.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_3.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_3" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_3" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_4.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_4.json old mode 100755 new mode 100644 index d54f7c9..a80e12c --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_4.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_4.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_4" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_4" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_5.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_5.json old mode 100755 new mode 100644 index 54e1214..3d0af1f --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_5.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_5.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_5" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_5" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_6.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_6.json old mode 100755 new mode 100644 index 9095594..53a010d --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_6.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_6.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_6" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_6" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_7.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_7.json old mode 100755 new mode 100644 index c06722e..54a76de --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_7.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_7.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_7" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_7" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_8.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_8.json old mode 100755 new mode 100644 index 4d258f8..281b7a5 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_8.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_8.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_8" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_8" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_9.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_9.json old mode 100755 new mode 100644 index df21f46..47b18b3 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_9.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_playing_9.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", - "textures": { - "4": "phonos:block/speaker_top_9" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_playing_0", + "textures": { + "4": "phonos:block/speaker_top_9" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_0.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_0.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_1.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_1.json old mode 100755 new mode 100644 index acef431..08de94b --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_1.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_1.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_1" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_1" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_10.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_10.json old mode 100755 new mode 100644 index 2401077..17df0b6 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_10.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_10.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_10" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_10" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_11.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_11.json old mode 100755 new mode 100644 index 63ddf37..096b218 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_11.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_11.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_11" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_11" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_12.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_12.json old mode 100755 new mode 100644 index 703e95e..bbe398b --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_12.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_12.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_12" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_12" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_13.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_13.json old mode 100755 new mode 100644 index 32afec1..16e3e42 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_13.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_13.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_13" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_13" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_14.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_14.json old mode 100755 new mode 100644 index 84812ce..3460b33 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_14.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_14.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_14" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_14" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_15.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_15.json old mode 100755 new mode 100644 index 4a724ab..8295d37 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_15.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_15.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_15" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_15" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_16.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_16.json old mode 100755 new mode 100644 index 9f637c5..39be751 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_16.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_16.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_16" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_16" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_17.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_17.json old mode 100755 new mode 100644 index 2492ceb..a275888 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_17.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_17.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_17" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_17" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_18.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_18.json old mode 100755 new mode 100644 index 2c7d7a0..5238087 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_18.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_18.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_18" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_18" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_19.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_19.json old mode 100755 new mode 100644 index 4a3ea2c..021752f --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_19.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_19.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_19" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_19" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_2.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_2.json old mode 100755 new mode 100644 index 7a82e27..135e4a6 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_2.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_2.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_2" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_2" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_3.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_3.json old mode 100755 new mode 100644 index 1dd25f8..22388ad --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_3.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_3.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_3" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_3" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_4.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_4.json old mode 100755 new mode 100644 index 17d1ed4..0ed117e --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_4.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_4.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_4" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_4" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_5.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_5.json old mode 100755 new mode 100644 index dfc7414..0c9900a --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_5.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_5.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_5" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_5" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_6.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_6.json old mode 100755 new mode 100644 index 8c1a75c..77b013c --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_6.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_6.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_6" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_6" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_7.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_7.json old mode 100755 new mode 100644 index 6171d13..8c6410d --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_7.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_7.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_7" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_7" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_8.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_8.json old mode 100755 new mode 100644 index c137ebd..4027c71 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_8.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_8.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_8" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_8" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_9.json b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_9.json old mode 100755 new mode 100644 index 10086ea..dc3ea27 --- a/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_9.json +++ b/src/main/resources/assets/visualoverhaul/models/block/phonos/jukebox_top_stopped_9.json @@ -1,6 +1,6 @@ -{ - "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", - "textures": { - "4": "phonos:block/speaker_top_9" - } +{ + "parent": "visualoverhaul:block/phonos/jukebox_top_stopped_0", + "textures": { + "4": "phonos:block/speaker_top_9" + } } \ No newline at end of file diff --git a/src/main/resources/assets/visualoverhaul/models/item/round_disc.json b/src/main/resources/assets/visualoverhaul/models/item/round_disc.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/models/item/round_disc_colored_layers.json b/src/main/resources/assets/visualoverhaul/models/item/round_disc_colored_layers.json old mode 100755 new mode 100644 diff --git a/src/main/resources/assets/visualoverhaul/textures/block/vo_jukebox_top.png b/src/main/resources/assets/visualoverhaul/textures/block/vo_jukebox_top.png old mode 100755 new mode 100644 diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json old mode 100755 new mode 100644 index e8d9655..0c5420f --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -34,6 +34,6 @@ "depends": { "fabric": ">=0.28.4", - "minecraft": "1.17.x" + "minecraft": "1.16.x" } } diff --git a/src/main/resources/resourcepacks/coloredwaterbucket/assets/minecraft/models/item/water_bucket.json b/src/main/resources/resourcepacks/coloredwaterbucket/assets/minecraft/models/item/water_bucket.json old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/coloredwaterbucket/assets/minecraft/textures/item/water_bucket_overlay.png b/src/main/resources/resourcepacks/coloredwaterbucket/assets/minecraft/textures/item/water_bucket_overlay.png old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/coloredwaterbucket/pack.mcmeta b/src/main/resources/resourcepacks/coloredwaterbucket/pack.mcmeta old mode 100755 new mode 100644 index 14d4004..9a5d970 --- a/src/main/resources/resourcepacks/coloredwaterbucket/pack.mcmeta +++ b/src/main/resources/resourcepacks/coloredwaterbucket/pack.mcmeta @@ -1,6 +1,6 @@ -{ - "pack": { - "pack_format": 7, - "description": "Makes the water bucket also change it's color based on biome color" - } -} +{ + "pack": { + "pack_format": 6, + "description": "Makes the water bucket also change it's color based on biome color" + } +} diff --git a/src/main/resources/resourcepacks/coloredwaterbucket/pack.png b/src/main/resources/resourcepacks/coloredwaterbucket/pack.png old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/blockstates/furnace.json b/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/blockstates/furnace.json old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/materialmaps/block/furnace.json b/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/materialmaps/block/furnace.json old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/models/block/furnace.json b/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/models/block/furnace.json old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/models/block/furnace_on.json b/src/main/resources/resourcepacks/fancyfurnace/assets/minecraft/models/block/furnace_on.json old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/fancyfurnace/pack.mcmeta b/src/main/resources/resourcepacks/fancyfurnace/pack.mcmeta old mode 100755 new mode 100644 index c1f6feb..eb59a5e --- a/src/main/resources/resourcepacks/fancyfurnace/pack.mcmeta +++ b/src/main/resources/resourcepacks/fancyfurnace/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { - "pack_format": 7, + "pack_format": 6, "description": "§2Changes the model of the furnace to be 3D" } } diff --git a/src/main/resources/resourcepacks/fancyfurnace/pack.png b/src/main/resources/resourcepacks/fancyfurnace/pack.png old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/nobrewingbottles/assets/minecraft/textures/block/brewing_stand.png b/src/main/resources/resourcepacks/nobrewingbottles/assets/minecraft/textures/block/brewing_stand.png old mode 100755 new mode 100644 diff --git a/src/main/resources/resourcepacks/nobrewingbottles/pack.mcmeta b/src/main/resources/resourcepacks/nobrewingbottles/pack.mcmeta old mode 100755 new mode 100644 index 2cd31dc..dc97b8d --- a/src/main/resources/resourcepacks/nobrewingbottles/pack.mcmeta +++ b/src/main/resources/resourcepacks/nobrewingbottles/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { - "pack_format": 7, + "pack_format": 6, "description": "§2Removes the bottles from the brewing stand texture" } } diff --git a/src/main/resources/resourcepacks/nobrewingbottles/pack.png b/src/main/resources/resourcepacks/nobrewingbottles/pack.png old mode 100755 new mode 100644 diff --git a/src/main/resources/visualoverhaul.accesswidener b/src/main/resources/visualoverhaul.accesswidener deleted file mode 100755 index e69de29..0000000 diff --git a/src/main/resources/visualoverhaul.mixins.json b/src/main/resources/visualoverhaul.mixins.json old mode 100755 new mode 100644 index bd97d96..dd0bc65 --- a/src/main/resources/visualoverhaul.mixins.json +++ b/src/main/resources/visualoverhaul.mixins.json @@ -3,10 +3,9 @@ "package": "eu.midnightdust.visualoverhaul.mixin", "compatibilityLevel": "JAVA_8", "mixins": [ - "MixinAbstractFurnaceBlockEntity", "MixinBrewingStandBlockEntity", - "MixinJukeboxBlock", - "MixinJukeboxBlockEntity" + "MixinJukeboxBlockEntity", + "MixinAbstractFurnaceBlockEntity" ], "client": [ "MixinSoundSystem"