From e13125c714080f5e49db4f07d28202bdff1ebdd3 Mon Sep 17 00:00:00 2001 From: AViewFromTheTop <87103914+AViewFromTheTop@users.noreply.github.com> Date: Sun, 9 Feb 2025 04:36:43 -0500 Subject: [PATCH] add mesoglea particles by vox --- .../wilderwild/block/MesogleaBlock.java | 49 +++++- .../wilderwild/client/WWParticleEngine.java | 103 ++++++++++++ .../wilderwild/entity/Jellyfish.java | 22 --- .../client/mesoglea/LevelRendererMixin.java | 55 +++++++ ...pendedParticleUnderwaterProviderMixin.java | 43 +++++ .../particle/FloatingSculkBubbleParticle.java | 13 +- .../MesogleaBubbleColumnUpParticle.java | 138 ++++++++++++++++ .../particle/MesogleaBubbleParticle.java | 133 ++++++++++++++++ .../particle/MesogleaBubblePopParticle.java | 55 +++++++ .../particle/MesogleaCurrentDownParticle.java | 148 ++++++++++++++++++ .../wilderwild/registry/WWBlocks.java | 45 +++++- .../wilderwild/registry/WWParticleTypes.java | 35 +++++ .../particles/blue_mesoglea_bubble.json | 5 + .../blue_mesoglea_bubble_column_up.json | 5 + .../particles/blue_mesoglea_bubble_pop.json | 9 ++ .../particles/blue_mesoglea_current_down.json | 5 + .../particles/blue_mesoglea_splash.json | 8 + ...lue_pearlescent_falling_mesoglea_drip.json | 2 +- ...lue_pearlescent_hanging_mesoglea_drip.json | 6 +- ...lue_pearlescent_landing_mesoglea_drip.json | 2 +- .../blue_pearlescent_mesoglea_bubble.json | 5 + ...pearlescent_mesoglea_bubble_column_up.json | 5 + .../blue_pearlescent_mesoglea_bubble_pop.json | 9 ++ ...lue_pearlescent_mesoglea_current_down.json | 5 + .../blue_pearlescent_mesoglea_splash.json | 8 + .../particles/lime_mesoglea_bubble.json | 5 + .../lime_mesoglea_bubble_column_up.json | 5 + .../particles/lime_mesoglea_bubble_pop.json | 9 ++ .../particles/lime_mesoglea_current_down.json | 5 + .../particles/lime_mesoglea_splash.json | 8 + .../particles/pink_mesoglea_bubble.json | 5 + .../pink_mesoglea_bubble_column_up.json | 5 + .../particles/pink_mesoglea_bubble_pop.json | 9 ++ .../particles/pink_mesoglea_current_down.json | 5 + .../particles/pink_mesoglea_splash.json | 8 + ...ple_pearlescent_falling_mesoglea_drip.json | 2 +- ...ple_pearlescent_hanging_mesoglea_drip.json | 6 +- ...ple_pearlescent_landing_mesoglea_drip.json | 2 +- .../purple_pearlescent_mesoglea_bubble.json | 5 + ...pearlescent_mesoglea_bubble_column_up.json | 5 + ...urple_pearlescent_mesoglea_bubble_pop.json | 9 ++ ...ple_pearlescent_mesoglea_current_down.json | 5 + .../purple_pearlescent_mesoglea_splash.json | 8 + .../particles/red_mesoglea_bubble.json | 5 + .../red_mesoglea_bubble_column_up.json | 5 + .../particles/red_mesoglea_bubble_pop.json | 9 ++ .../particles/red_mesoglea_current_down.json | 5 + .../particles/red_mesoglea_splash.json | 8 + .../particles/yellow_mesoglea_bubble.json | 5 + .../yellow_mesoglea_bubble_column_up.json | 5 + .../particles/yellow_mesoglea_bubble_pop.json | 9 ++ .../yellow_mesoglea_current_down.json | 5 + .../particles/yellow_mesoglea_splash.json | 8 + .../particle/blue_mesoglea_bubble.png | Bin 0 -> 126 bytes .../particle/blue_mesoglea_bubble_pop_0.png | Bin 0 -> 119 bytes .../particle/blue_mesoglea_bubble_pop_1.png | Bin 0 -> 122 bytes .../particle/blue_mesoglea_bubble_pop_2.png | Bin 0 -> 115 bytes .../particle/blue_mesoglea_bubble_pop_3.png | Bin 0 -> 99 bytes .../particle/blue_mesoglea_bubble_pop_4.png | Bin 0 -> 99 bytes .../particle/blue_mesoglea_splash_0.png | Bin 0 -> 101 bytes .../particle/blue_mesoglea_splash_1.png | Bin 0 -> 96 bytes .../particle/blue_mesoglea_splash_2.png | Bin 0 -> 91 bytes .../particle/blue_mesoglea_splash_3.png | Bin 0 -> 96 bytes .../blue_pearlescent_mesoglea_bubble.png | Bin 0 -> 126 bytes ...blue_pearlescent_mesoglea_bubble_pop_0.png | Bin 0 -> 120 bytes ...blue_pearlescent_mesoglea_bubble_pop_1.png | Bin 0 -> 122 bytes ...blue_pearlescent_mesoglea_bubble_pop_2.png | Bin 0 -> 115 bytes ...blue_pearlescent_mesoglea_bubble_pop_3.png | Bin 0 -> 99 bytes ...blue_pearlescent_mesoglea_bubble_pop_4.png | Bin 0 -> 99 bytes ...lue_pearlescent_mesoglea_drip_falling.png} | Bin ...e_pearlescent_mesoglea_drip_hanging_1.png} | Bin ...e_pearlescent_mesoglea_drip_hanging_2.png} | Bin ...e_pearlescent_mesoglea_drip_hanging_3.png} | Bin ...> blue_pearlescent_mesoglea_drip_land.png} | Bin .../blue_pearlescent_mesoglea_splash_0.png | Bin 0 -> 102 bytes .../blue_pearlescent_mesoglea_splash_1.png | Bin 0 -> 97 bytes .../blue_pearlescent_mesoglea_splash_2.png | Bin 0 -> 92 bytes .../blue_pearlescent_mesoglea_splash_3.png | Bin 0 -> 97 bytes .../particle/lime_mesoglea_bubble.png | Bin 0 -> 126 bytes .../particle/lime_mesoglea_bubble_pop_0.png | Bin 0 -> 119 bytes .../particle/lime_mesoglea_bubble_pop_1.png | Bin 0 -> 122 bytes .../particle/lime_mesoglea_bubble_pop_2.png | Bin 0 -> 114 bytes .../particle/lime_mesoglea_bubble_pop_3.png | Bin 0 -> 99 bytes .../particle/lime_mesoglea_bubble_pop_4.png | Bin 0 -> 99 bytes .../particle/lime_mesoglea_splash_0.png | Bin 0 -> 101 bytes .../particle/lime_mesoglea_splash_1.png | Bin 0 -> 96 bytes .../particle/lime_mesoglea_splash_2.png | Bin 0 -> 91 bytes .../particle/lime_mesoglea_splash_3.png | Bin 0 -> 96 bytes .../particle/pink_mesoglea_bubble.png | Bin 0 -> 126 bytes .../particle/pink_mesoglea_bubble_pop_0.png | Bin 0 -> 119 bytes .../particle/pink_mesoglea_bubble_pop_1.png | Bin 0 -> 122 bytes .../particle/pink_mesoglea_bubble_pop_2.png | Bin 0 -> 115 bytes .../particle/pink_mesoglea_bubble_pop_3.png | Bin 0 -> 99 bytes .../particle/pink_mesoglea_bubble_pop_4.png | Bin 0 -> 99 bytes .../particle/pink_mesoglea_splash_0.png | Bin 0 -> 101 bytes .../particle/pink_mesoglea_splash_1.png | Bin 0 -> 96 bytes .../particle/pink_mesoglea_splash_2.png | Bin 0 -> 91 bytes .../particle/pink_mesoglea_splash_3.png | Bin 0 -> 97 bytes .../purple_pearlescent_mesoglea_bubble.png | Bin 0 -> 126 bytes ...rple_pearlescent_mesoglea_bubble_pop_0.png | Bin 0 -> 120 bytes ...rple_pearlescent_mesoglea_bubble_pop_1.png | Bin 0 -> 122 bytes ...rple_pearlescent_mesoglea_bubble_pop_2.png | Bin 0 -> 115 bytes ...rple_pearlescent_mesoglea_bubble_pop_3.png | Bin 0 -> 99 bytes ...rple_pearlescent_mesoglea_bubble_pop_4.png | Bin 0 -> 99 bytes ...ple_pearlescent_mesoglea_drip_falling.png} | Bin ...e_pearlescent_mesoglea_drip_hanging_1.png} | Bin ...e_pearlescent_mesoglea_drip_hanging_2.png} | Bin ...e_pearlescent_mesoglea_drip_hanging_3.png} | Bin ...purple_pearlescent_mesoglea_drip_land.png} | Bin .../purple_pearlescent_mesoglea_splash_0.png | Bin 0 -> 102 bytes .../purple_pearlescent_mesoglea_splash_1.png | Bin 0 -> 97 bytes .../purple_pearlescent_mesoglea_splash_2.png | Bin 0 -> 92 bytes .../purple_pearlescent_mesoglea_splash_3.png | Bin 0 -> 97 bytes .../textures/particle/red_mesoglea_bubble.png | Bin 0 -> 126 bytes .../particle/red_mesoglea_bubble_pop_0.png | Bin 0 -> 118 bytes .../particle/red_mesoglea_bubble_pop_1.png | Bin 0 -> 122 bytes .../particle/red_mesoglea_bubble_pop_2.png | Bin 0 -> 114 bytes .../particle/red_mesoglea_bubble_pop_3.png | Bin 0 -> 99 bytes .../particle/red_mesoglea_bubble_pop_4.png | Bin 0 -> 99 bytes .../particle/red_mesoglea_splash_0.png | Bin 0 -> 100 bytes .../particle/red_mesoglea_splash_1.png | Bin 0 -> 96 bytes .../particle/red_mesoglea_splash_2.png | Bin 0 -> 91 bytes .../particle/red_mesoglea_splash_3.png | Bin 0 -> 95 bytes .../particle/yellow_mesoglea_bubble.png | Bin 0 -> 126 bytes .../particle/yellow_mesoglea_bubble_pop_0.png | Bin 0 -> 117 bytes .../particle/yellow_mesoglea_bubble_pop_1.png | Bin 0 -> 121 bytes .../particle/yellow_mesoglea_bubble_pop_2.png | Bin 0 -> 115 bytes .../particle/yellow_mesoglea_bubble_pop_3.png | Bin 0 -> 99 bytes .../particle/yellow_mesoglea_bubble_pop_4.png | Bin 0 -> 99 bytes .../particle/yellow_mesoglea_splash_0.png | Bin 0 -> 99 bytes .../particle/yellow_mesoglea_splash_1.png | Bin 0 -> 95 bytes .../particle/yellow_mesoglea_splash_2.png | Bin 0 -> 92 bytes .../particle/yellow_mesoglea_splash_3.png | Bin 0 -> 96 bytes src/main/resources/credits.txt | 1 + src/main/resources/wilderwild.accesswidener | 1 + src/main/resources/wilderwild.mixins.json | 2 + 136 files changed, 1045 insertions(+), 42 deletions(-) create mode 100644 src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/LevelRendererMixin.java create mode 100644 src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/SuspendedParticleUnderwaterProviderMixin.java create mode 100644 src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleColumnUpParticle.java create mode 100644 src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleParticle.java create mode 100644 src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubblePopParticle.java create mode 100644 src/main/java/net/frozenblock/wilderwild/particle/MesogleaCurrentDownParticle.java create mode 100644 src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_column_up.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_pop.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_mesoglea_current_down.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_mesoglea_splash.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_column_up.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_pop.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_current_down.json create mode 100644 src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_splash.json create mode 100644 src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble.json create mode 100644 src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_column_up.json create mode 100644 src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_pop.json create mode 100644 src/main/resources/assets/wilderwild/particles/lime_mesoglea_current_down.json create mode 100644 src/main/resources/assets/wilderwild/particles/lime_mesoglea_splash.json create mode 100644 src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble.json create mode 100644 src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_column_up.json create mode 100644 src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_pop.json create mode 100644 src/main/resources/assets/wilderwild/particles/pink_mesoglea_current_down.json create mode 100644 src/main/resources/assets/wilderwild/particles/pink_mesoglea_splash.json create mode 100644 src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble.json create mode 100644 src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_column_up.json create mode 100644 src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_pop.json create mode 100644 src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_current_down.json create mode 100644 src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_splash.json create mode 100644 src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble.json create mode 100644 src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_column_up.json create mode 100644 src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_pop.json create mode 100644 src/main/resources/assets/wilderwild/particles/red_mesoglea_current_down.json create mode 100644 src/main/resources/assets/wilderwild/particles/red_mesoglea_splash.json create mode 100644 src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble.json create mode 100644 src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_column_up.json create mode 100644 src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_pop.json create mode 100644 src/main/resources/assets/wilderwild/particles/yellow_mesoglea_current_down.json create mode 100644 src/main/resources/assets/wilderwild/particles/yellow_mesoglea_splash.json create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_4.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_4.png rename src/main/resources/assets/wilderwild/textures/particle/{mesoglea_drip_falling.png => blue_pearlescent_mesoglea_drip_falling.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{mesoglea_drip_hanging_1.png => blue_pearlescent_mesoglea_drip_hanging_1.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{mesoglea_drip_hanging_2.png => blue_pearlescent_mesoglea_drip_hanging_2.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{mesoglea_drip_hanging_3.png => blue_pearlescent_mesoglea_drip_hanging_3.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{mesoglea_drip_land.png => blue_pearlescent_mesoglea_drip_land.png} (100%) create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_4.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble_pop_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble_pop_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble_pop_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble_pop_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble_pop_4.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_splash_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_splash_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_splash_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_splash_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_4.png rename src/main/resources/assets/wilderwild/textures/particle/{purple_mesoglea_drip_falling.png => purple_pearlescent_mesoglea_drip_falling.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{purple_mesoglea_drip_hanging_1.png => purple_pearlescent_mesoglea_drip_hanging_1.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{purple_mesoglea_drip_hanging_2.png => purple_pearlescent_mesoglea_drip_hanging_2.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{purple_mesoglea_drip_hanging_3.png => purple_pearlescent_mesoglea_drip_hanging_3.png} (100%) rename src/main/resources/assets/wilderwild/textures/particle/{purple_mesoglea_drip_land.png => purple_pearlescent_mesoglea_drip_land.png} (100%) create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_splash_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_splash_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_splash_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_splash_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_4.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_splash_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_splash_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_splash_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_splash_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_3.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_4.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_splash_0.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_splash_1.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_splash_2.png create mode 100644 src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_splash_3.png diff --git a/src/main/java/net/frozenblock/wilderwild/block/MesogleaBlock.java b/src/main/java/net/frozenblock/wilderwild/block/MesogleaBlock.java index 0364aa446a..3f0f0f6885 100644 --- a/src/main/java/net/frozenblock/wilderwild/block/MesogleaBlock.java +++ b/src/main/java/net/frozenblock/wilderwild/block/MesogleaBlock.java @@ -82,18 +82,39 @@ public class MesogleaBlock extends HalfTransparentBlock { Codec.BOOL.fieldOf("pearlescent").forGetter(MesogleaBlock::isPearlescent), Codec.INT.fieldOf("water_fog_color").forGetter(MesogleaBlock::getWaterFogColorOverride), ParticleTypes.CODEC.fieldOf("drip_particle").forGetter(mesogleaBlock -> mesogleaBlock.dripParticle), + ParticleTypes.CODEC.fieldOf("bubble_particle").forGetter(mesogleaBlock -> mesogleaBlock.bubbleParticle), + ParticleTypes.CODEC.fieldOf("bubble_column_up_particle").forGetter(mesogleaBlock -> mesogleaBlock.bubbleColumnUpParticle), + ParticleTypes.CODEC.fieldOf("current_down_particle").forGetter(mesogleaBlock -> mesogleaBlock.currentDownParticle), + ParticleTypes.CODEC.fieldOf("splash_particle").forGetter(mesogleaBlock -> mesogleaBlock.splashParticle), propertiesCodec() ).apply(instance, MesogleaBlock::new)); private final boolean pearlescent; private final int waterFogColor; private final ParticleOptions dripParticle; + private final ParticleOptions bubbleParticle; + private final ParticleOptions bubbleColumnUpParticle; + private final ParticleOptions currentDownParticle; + private final ParticleOptions splashParticle; - public MesogleaBlock(boolean pearlescent, int waterFogColor, ParticleOptions dripParticle, @NotNull Properties properties) { + public MesogleaBlock( + boolean pearlescent, + int waterFogColor, + ParticleOptions dripParticle, + ParticleOptions bubbleParticle, + ParticleOptions bubbleColumnUpParticle, + ParticleOptions currentDownParticle, + ParticleOptions splashParticle, + @NotNull Properties properties + ) { super(properties); this.registerDefaultState(this.stateDefinition.any().setValue(BUBBLE_DIRECTION, BubbleDirection.NONE)); this.pearlescent = pearlescent; this.waterFogColor = waterFogColor; this.dripParticle = dripParticle; + this.bubbleParticle = bubbleParticle; + this.bubbleColumnUpParticle = bubbleColumnUpParticle; + this.currentDownParticle = currentDownParticle; + this.splashParticle = splashParticle; } public static boolean isMesoglea(@NotNull BlockState blockState) { @@ -180,6 +201,22 @@ public int getWaterFogColorOverride() { return this.waterFogColor; } + public ParticleOptions getBubbleParticle() { + return this.bubbleParticle; + } + + public ParticleOptions getBubbleColumnUpParticle() { + return this.bubbleColumnUpParticle; + } + + public ParticleOptions getSplashParticle() { + return this.splashParticle; + } + + public ParticleOptions getCurrentDownParticle() { + return this.currentDownParticle; + } + @Override public void entityInside(@NotNull BlockState state, @NotNull Level level, @NotNull BlockPos pos, @NotNull Entity entity) { Optional dragDirection = getDragDirection(state); @@ -207,7 +244,7 @@ public void entityInside(@NotNull BlockState state, @NotNull Level level, @NotNu if (level instanceof ServerLevel serverLevel) { for (int i = 0; i < 2; ++i) { serverLevel.sendParticles( - ParticleTypes.SPLASH, + this.getSplashParticle(), pos.getX() + level.random.nextDouble(), pos.getY() + 1D, pos.getZ() + level.random.nextDouble(), @@ -218,7 +255,7 @@ public void entityInside(@NotNull BlockState state, @NotNull Level level, @NotNu 1D ); serverLevel.sendParticles( - ParticleTypes.BUBBLE, + this.getBubbleParticle(), pos.getX() + level.random.nextDouble(), pos.getY() + 1D, pos.getZ() + level.random.nextDouble(), @@ -284,7 +321,7 @@ public void animateTick(@NotNull BlockState blockState, @NotNull Level level, @N Optional dragDirection = getDragDirection(blockState); if (dragDirection.isPresent()) { if (dragDirection.get() == Direction.DOWN) { - level.addAlwaysVisibleParticle(ParticleTypes.CURRENT_DOWN, d + 0.5D, e + 0.8D, f, 0D, 0D, 0D); + level.addAlwaysVisibleParticle(this.getCurrentDownParticle(), d + 0.5D, e + 0.8D, f, 0D, 0D, 0D); if (randomSource.nextInt(AMBIENT_WHIRLPOOL_SOUND_CHANCE) == 0) { level.playLocalSound( d, @@ -299,7 +336,7 @@ public void animateTick(@NotNull BlockState blockState, @NotNull Level level, @N } } else if (dragDirection.get() == Direction.UP) { level.addAlwaysVisibleParticle( - ParticleTypes.BUBBLE_COLUMN_UP, + this.getBubbleColumnUpParticle(), d + 0.5D, e, f + 0.5D, @@ -308,7 +345,7 @@ public void animateTick(@NotNull BlockState blockState, @NotNull Level level, @N 0D ); level.addAlwaysVisibleParticle( - ParticleTypes.BUBBLE_COLUMN_UP, + this.getBubbleColumnUpParticle(), d + randomSource.nextDouble(), e + randomSource.nextDouble(), f + randomSource.nextDouble(), diff --git a/src/main/java/net/frozenblock/wilderwild/client/WWParticleEngine.java b/src/main/java/net/frozenblock/wilderwild/client/WWParticleEngine.java index cf87efb37a..1ca1e860f7 100644 --- a/src/main/java/net/frozenblock/wilderwild/client/WWParticleEngine.java +++ b/src/main/java/net/frozenblock/wilderwild/client/WWParticleEngine.java @@ -26,6 +26,10 @@ import net.frozenblock.wilderwild.particle.FloatingSculkBubbleParticle; import net.frozenblock.wilderwild.particle.LeafClusterSeedParticle; import net.frozenblock.wilderwild.particle.LeafParticle; +import net.frozenblock.wilderwild.particle.MesogleaBubbleColumnUpParticle; +import net.frozenblock.wilderwild.particle.MesogleaBubbleParticle; +import net.frozenblock.wilderwild.particle.MesogleaBubblePopParticle; +import net.frozenblock.wilderwild.particle.MesogleaCurrentDownParticle; import net.frozenblock.wilderwild.particle.MesogleaDripParticle; import net.frozenblock.wilderwild.particle.PollenParticle; import net.frozenblock.wilderwild.particle.SeedParticle; @@ -34,6 +38,7 @@ import net.frozenblock.wilderwild.particle.WindParticle; import net.frozenblock.wilderwild.particle.factory.WilderParticleFactories; import net.frozenblock.wilderwild.registry.WWParticleTypes; +import net.minecraft.client.particle.SplashParticle; @Environment(EnvType.CLIENT) public final class WWParticleEngine { @@ -72,23 +77,121 @@ public static void init() { particleRegistry.register(WWParticleTypes.BLUE_PEARLESCENT_HANGING_MESOGLEA, MesogleaDripParticle.BPMesogleaHangProvider::new); particleRegistry.register(WWParticleTypes.BLUE_PEARLESCENT_FALLING_MESOGLEA, MesogleaDripParticle.BPMesogleaFallProvider::new); particleRegistry.register(WWParticleTypes.BLUE_PEARLESCENT_LANDING_MESOGLEA, MesogleaDripParticle.BPMesogleaLandProvider::new); + particleRegistry.register( + WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE, + (spriteProvider) -> new MesogleaBubbleParticle.BubbleFactory(spriteProvider, WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE_COLUMN_UP, + (spriteProvider) -> new MesogleaBubbleColumnUpParticle.BubbleFactory(spriteProvider, WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_CURRENT_DOWN, + (spriteProvider) -> new MesogleaCurrentDownParticle.BubbleFactory(spriteProvider, WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register(WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE_POP, MesogleaBubblePopParticle.BubbleFactory::new); + particleRegistry.register(WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_SPLASH, SplashParticle.Provider::new); particleRegistry.register(WWParticleTypes.PURPLE_PEARLESCENT_HANGING_MESOGLEA, MesogleaDripParticle.PPMesogleaHangProvider::new); particleRegistry.register(WWParticleTypes.PURPLE_PEARLESCENT_FALLING_MESOGLEA, MesogleaDripParticle.PPMesogleaFallProvider::new); particleRegistry.register(WWParticleTypes.PURPLE_PEARLESCENT_LANDING_MESOGLEA, MesogleaDripParticle.PPMesogleaLandProvider::new); + particleRegistry.register( + WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE, + (spriteProvider) -> new MesogleaBubbleParticle.BubbleFactory(spriteProvider, WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_COLUMN_UP, + (spriteProvider) -> new MesogleaBubbleColumnUpParticle.BubbleFactory(spriteProvider, WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_CURRENT_DOWN, + (spriteProvider) -> new MesogleaCurrentDownParticle.BubbleFactory(spriteProvider, WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register(WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_POP, MesogleaBubblePopParticle.BubbleFactory::new); + particleRegistry.register(WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_SPLASH, SplashParticle.Provider::new); particleRegistry.register(WWParticleTypes.BLUE_HANGING_MESOGLEA, MesogleaDripParticle.BMesogleaHangProvider::new); particleRegistry.register(WWParticleTypes.BLUE_FALLING_MESOGLEA, MesogleaDripParticle.BMesogleaFallProvider::new); particleRegistry.register(WWParticleTypes.BLUE_LANDING_MESOGLEA, MesogleaDripParticle.BMesogleaLandProvider::new); + particleRegistry.register( + WWParticleTypes.BLUE_MESOGLEA_BUBBLE, + (spriteProvider) -> new MesogleaBubbleParticle.BubbleFactory(spriteProvider, WWParticleTypes.BLUE_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.BLUE_MESOGLEA_BUBBLE_COLUMN_UP, + (spriteProvider) -> new MesogleaBubbleColumnUpParticle.BubbleFactory(spriteProvider, WWParticleTypes.BLUE_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.BLUE_MESOGLEA_CURRENT_DOWN, + (spriteProvider) -> new MesogleaCurrentDownParticle.BubbleFactory(spriteProvider, WWParticleTypes.BLUE_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register(WWParticleTypes.BLUE_MESOGLEA_BUBBLE_POP, MesogleaBubblePopParticle.BubbleFactory::new); + particleRegistry.register(WWParticleTypes.BLUE_MESOGLEA_SPLASH, SplashParticle.Provider::new); particleRegistry.register(WWParticleTypes.YELLOW_HANGING_MESOGLEA, MesogleaDripParticle.YMesogleaHangProvider::new); particleRegistry.register(WWParticleTypes.YELLOW_FALLING_MESOGLEA, MesogleaDripParticle.YMesogleaFallProvider::new); particleRegistry.register(WWParticleTypes.YELLOW_LANDING_MESOGLEA, MesogleaDripParticle.YMesogleaLandProvider::new); + particleRegistry.register( + WWParticleTypes.YELLOW_MESOGLEA_BUBBLE, + (spriteProvider) -> new MesogleaBubbleParticle.BubbleFactory(spriteProvider, WWParticleTypes.YELLOW_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.YELLOW_MESOGLEA_BUBBLE_COLUMN_UP, + (spriteProvider) -> new MesogleaBubbleColumnUpParticle.BubbleFactory(spriteProvider, WWParticleTypes.YELLOW_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.YELLOW_MESOGLEA_CURRENT_DOWN, + (spriteProvider) -> new MesogleaCurrentDownParticle.BubbleFactory(spriteProvider, WWParticleTypes.YELLOW_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register(WWParticleTypes.YELLOW_MESOGLEA_BUBBLE_POP, MesogleaBubblePopParticle.BubbleFactory::new); + particleRegistry.register(WWParticleTypes.YELLOW_MESOGLEA_SPLASH, SplashParticle.Provider::new); particleRegistry.register(WWParticleTypes.LIME_HANGING_MESOGLEA, MesogleaDripParticle.LMesogleaHangProvider::new); particleRegistry.register(WWParticleTypes.LIME_FALLING_MESOGLEA, MesogleaDripParticle.LMesogleaFallProvider::new); particleRegistry.register(WWParticleTypes.LIME_LANDING_MESOGLEA, MesogleaDripParticle.LMesogleaLandProvider::new); + particleRegistry.register( + WWParticleTypes.LIME_MESOGLEA_BUBBLE, + (spriteProvider) -> new MesogleaBubbleParticle.BubbleFactory(spriteProvider, WWParticleTypes.LIME_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.LIME_MESOGLEA_BUBBLE_COLUMN_UP, + (spriteProvider) -> new MesogleaBubbleColumnUpParticle.BubbleFactory(spriteProvider, WWParticleTypes.LIME_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.LIME_MESOGLEA_CURRENT_DOWN, + (spriteProvider) -> new MesogleaCurrentDownParticle.BubbleFactory(spriteProvider, WWParticleTypes.LIME_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register(WWParticleTypes.LIME_MESOGLEA_BUBBLE_POP, MesogleaBubblePopParticle.BubbleFactory::new); + particleRegistry.register(WWParticleTypes.LIME_MESOGLEA_SPLASH, SplashParticle.Provider::new); particleRegistry.register(WWParticleTypes.PINK_HANGING_MESOGLEA, MesogleaDripParticle.PMesogleaHangProvider::new); particleRegistry.register(WWParticleTypes.PINK_FALLING_MESOGLEA, MesogleaDripParticle.PMesogleaFallProvider::new); particleRegistry.register(WWParticleTypes.PINK_LANDING_MESOGLEA, MesogleaDripParticle.PMesogleaLandProvider::new); + particleRegistry.register( + WWParticleTypes.PINK_MESOGLEA_BUBBLE, + (spriteProvider) -> new MesogleaBubbleParticle.BubbleFactory(spriteProvider, WWParticleTypes.PINK_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.PINK_MESOGLEA_BUBBLE_COLUMN_UP, + (spriteProvider) -> new MesogleaBubbleColumnUpParticle.BubbleFactory(spriteProvider, WWParticleTypes.PINK_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.PINK_MESOGLEA_CURRENT_DOWN, + (spriteProvider) -> new MesogleaCurrentDownParticle.BubbleFactory(spriteProvider, WWParticleTypes.PINK_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register(WWParticleTypes.PINK_MESOGLEA_BUBBLE_POP, MesogleaBubblePopParticle.BubbleFactory::new); + particleRegistry.register(WWParticleTypes.PINK_MESOGLEA_SPLASH, SplashParticle.Provider::new); particleRegistry.register(WWParticleTypes.RED_HANGING_MESOGLEA, MesogleaDripParticle.RMesogleaHangProvider::new); particleRegistry.register(WWParticleTypes.RED_FALLING_MESOGLEA, MesogleaDripParticle.RMesogleaFallProvider::new); particleRegistry.register(WWParticleTypes.RED_LANDING_MESOGLEA, MesogleaDripParticle.RMesogleaLandProvider::new); + particleRegistry.register( + WWParticleTypes.RED_MESOGLEA_BUBBLE, + (spriteProvider) -> new MesogleaBubbleParticle.BubbleFactory(spriteProvider, WWParticleTypes.RED_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.RED_MESOGLEA_BUBBLE_COLUMN_UP, + (spriteProvider) -> new MesogleaBubbleColumnUpParticle.BubbleFactory(spriteProvider, WWParticleTypes.RED_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register( + WWParticleTypes.RED_MESOGLEA_CURRENT_DOWN, + (spriteProvider) -> new MesogleaCurrentDownParticle.BubbleFactory(spriteProvider, WWParticleTypes.RED_MESOGLEA_BUBBLE_POP) + ); + particleRegistry.register(WWParticleTypes.RED_MESOGLEA_BUBBLE_POP, MesogleaBubblePopParticle.BubbleFactory::new); + particleRegistry.register(WWParticleTypes.RED_MESOGLEA_SPLASH, SplashParticle.Provider::new); } } diff --git a/src/main/java/net/frozenblock/wilderwild/entity/Jellyfish.java b/src/main/java/net/frozenblock/wilderwild/entity/Jellyfish.java index ae607f92e8..1171566c33 100644 --- a/src/main/java/net/frozenblock/wilderwild/entity/Jellyfish.java +++ b/src/main/java/net/frozenblock/wilderwild/entity/Jellyfish.java @@ -110,7 +110,6 @@ public class Jellyfish extends NoFlopAbstractFish { public static final float STING_PITCH_BABY = 1.2F; public static final int SPAWN_CHANCE = 110; public static final int SPAWN_HEIGHT_NORMAL_SEA_OFFSET = 13; - public static final float BUBBLE_SPAWN_CHANCE = 0.2F; public static final double HIDABLE_PLAYER_DISTANCE = 24D; public static final int HIDABLE_TICKS_SINCE_SPAWN = 150; public static final int HIDING_CHANCE = 25; @@ -265,14 +264,6 @@ protected SoundEvent getSwimSound() { return WWSounds.ENTITY_JELLYFISH_SWIM; } - @Override - protected void playSwimSound(float volume) { - super.playSwimSound(volume); - if (this.random.nextFloat() < BUBBLE_SPAWN_CHANCE) { - this.spawnBubbles(); - } - } - @Override protected SoundEvent getHurtSound(@NotNull DamageSource damageSource) { return this.isInWaterOrBubble() ? WWSounds.ENTITY_JELLYFISH_HURT_WATER : WWSounds.ENTITY_JELLYFISH_HURT; @@ -610,19 +601,6 @@ private Vec3 rotateVector(@NotNull Vec3 vector) { return vec3; } - private void spawnBubbles() { - if (this.level() instanceof ServerLevel serverLevel && !this.isBaby()) { - double deltaLength = this.getDeltaMovement().length(); - float bbHeight = this.getBbHeight(); - Vec3 vec3 = this.rotateVector(new Vec3(0D, -bbHeight, 0D)).add(this.getX(), this.getY(), this.getZ()); - for (int i = 0; i < this.random.nextInt(0, (int) (2D + (deltaLength * 25D))); ++i) { - Vec3 vec32 = this.rotateVector(new Vec3(this.random.nextDouble() * 0.6D - 0.3D, -1D, this.random.nextDouble() * 0.6D - 0.3D)); - Vec3 vec33 = vec32.scale(0.3D + (this.random.nextFloat() * 2D)); - serverLevel.sendParticles(ParticleTypes.BUBBLE, vec3.x, vec3.y + (bbHeight * 0.5D), vec3.z, 0, vec33.x, vec33.y, vec33.z, (deltaLength * 2D) + 0.1D); - } - } - } - @Override public boolean hurt(@NotNull DamageSource source, float amount) { if (super.hurt(source, amount)) { diff --git a/src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/LevelRendererMixin.java b/src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/LevelRendererMixin.java new file mode 100644 index 0000000000..99ef3ea6f4 --- /dev/null +++ b/src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/LevelRendererMixin.java @@ -0,0 +1,55 @@ +package net.frozenblock.wilderwild.mixin.client.mesoglea; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.frozenblock.wilderwild.block.MesogleaBlock; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.Particle; +import net.minecraft.client.particle.ParticleEngine; +import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@Environment(EnvType.CLIENT) +@Mixin(LevelRenderer.class) +public class LevelRendererMixin { + + @Shadow + private @Nullable ClientLevel level; + + @WrapOperation( + method = "addParticleInternal(Lnet/minecraft/core/particles/ParticleOptions;ZZDDDDDD)Lnet/minecraft/client/particle/Particle;", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/particle/ParticleEngine;createParticle(Lnet/minecraft/core/particles/ParticleOptions;DDDDDD)Lnet/minecraft/client/particle/Particle;" + ) + ) + private Particle wilderWild$replaceWithMesogleaParticles( + ParticleEngine instance, ParticleOptions particleOptions, double d, double e, double f, double g, double h, double i, Operation original + ) { + if (this.level != null) { + if (particleOptions.equals(ParticleTypes.BUBBLE)) { + BlockState state = this.level.getBlockState(BlockPos.containing(d, e, f)); + if (state.getBlock() instanceof MesogleaBlock mesogleaBlock) { + particleOptions = mesogleaBlock.getBubbleParticle(); + } + } else if (particleOptions.equals(ParticleTypes.SPLASH)) { + BlockState state = this.level.getBlockState(BlockPos.containing(d, e, f)); + if (state.getBlock() instanceof MesogleaBlock mesogleaBlock) { + particleOptions = mesogleaBlock.getSplashParticle(); + } + } + } + + return original.call(instance, particleOptions, d, e, f, g, h, i); + } + +} diff --git a/src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/SuspendedParticleUnderwaterProviderMixin.java b/src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/SuspendedParticleUnderwaterProviderMixin.java new file mode 100644 index 0000000000..42a0405f7b --- /dev/null +++ b/src/main/java/net/frozenblock/wilderwild/mixin/client/mesoglea/SuspendedParticleUnderwaterProviderMixin.java @@ -0,0 +1,43 @@ +package net.frozenblock.wilderwild.mixin.client.mesoglea; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.frozenblock.wilderwild.block.MesogleaBlock; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.SuspendedParticle; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.util.FastColor; +import net.minecraft.world.level.block.state.BlockState; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Environment(EnvType.CLIENT) +@Mixin(SuspendedParticle.UnderwaterProvider.class) +public class SuspendedParticleUnderwaterProviderMixin { + + @WrapOperation( + method = "createParticle(Lnet/minecraft/core/particles/SimpleParticleType;Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)Lnet/minecraft/client/particle/Particle;", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/particle/SuspendedParticle;setColor(FFF)V" + ) + ) + public void wilderWild$changeColorToMesoglea( + SuspendedParticle instance, float r, float g, float b, Operation original, + SimpleParticleType simpleParticleType, ClientLevel clientLevel, double x, double y, double z + ) { + BlockState state = clientLevel.getBlockState(BlockPos.containing(x, y, z)); + if (state.getBlock() instanceof MesogleaBlock mesogleaBlock) { + int mesogleaColor = mesogleaBlock.getWaterFogColorOverride(); + r = FastColor.ARGB32.red(mesogleaColor) / 255F; + g = FastColor.ARGB32.green(mesogleaColor) / 255F; + b = FastColor.ARGB32.blue(mesogleaColor) / 255F; + } + + original.call(instance, r, g, b); + } + +} diff --git a/src/main/java/net/frozenblock/wilderwild/particle/FloatingSculkBubbleParticle.java b/src/main/java/net/frozenblock/wilderwild/particle/FloatingSculkBubbleParticle.java index 20c3274707..786c8dd19c 100644 --- a/src/main/java/net/frozenblock/wilderwild/particle/FloatingSculkBubbleParticle.java +++ b/src/main/java/net/frozenblock/wilderwild/particle/FloatingSculkBubbleParticle.java @@ -46,7 +46,16 @@ public class FloatingSculkBubbleParticle extends RisingParticle { private float currentInflation = 0F; private float targetInflation = 2F; - protected FloatingSculkBubbleParticle(@NotNull ClientLevel clientLevel, double x, double y, double z, double size, int maxAge, @NotNull Vec3 velocity, @NotNull SpriteSet spriteProvider) { + protected FloatingSculkBubbleParticle( + @NotNull ClientLevel clientLevel, + double x, + double y, + double z, + double size, + int maxAge, + @NotNull Vec3 velocity, + @NotNull SpriteSet spriteProvider + ) { super(clientLevel, x, y, z, 0D, 0D, 0D); this.spriteProvider = spriteProvider; this.setSpriteFromAge(spriteProvider); @@ -161,7 +170,7 @@ public void tick() { } if (this.age == this.stayInflatedTime + 1) { - level.playSound(Minecraft.getInstance().player, this.x, this.y, this.z, this.sound, SoundSource.NEUTRAL, 0.4F, level.random.nextFloat() * 0.2F + 0.8F); + this.level.playSound(Minecraft.getInstance().player, this.x, this.y, this.z, this.sound, SoundSource.NEUTRAL, 0.4F, level.random.nextFloat() * 0.2F + 0.8F); this.setParticleSpeed(0D, 0D, 0D); } this.setSpriteFromAge(this.spriteProvider); diff --git a/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleColumnUpParticle.java b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleColumnUpParticle.java new file mode 100644 index 0000000000..bcfca23cf2 --- /dev/null +++ b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleColumnUpParticle.java @@ -0,0 +1,138 @@ +/* + * Copyright 2023-2025 FrozenBlock + * This file is part of Wilder Wild. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, see . + */ + +package net.frozenblock.wilderwild.particle; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.frozenblock.lib.wind.client.impl.ClientWindManager; +import net.frozenblock.wilderwild.config.WWAmbienceAndMiscConfig; +import net.frozenblock.wilderwild.registry.WWSounds; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.Particle; +import net.minecraft.client.particle.ParticleProvider; +import net.minecraft.client.particle.ParticleRenderType; +import net.minecraft.client.particle.RisingParticle; +import net.minecraft.client.particle.SpriteSet; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.tags.FluidTags; +import net.minecraft.world.phys.Vec3; +import org.jetbrains.annotations.NotNull; + +@Environment(EnvType.CLIENT) +public class MesogleaBubbleColumnUpParticle extends RisingParticle { + private final SoundEvent sound; + private final ParticleOptions popParticle; + + protected MesogleaBubbleColumnUpParticle( + @NotNull ClientLevel clientLevel, + double x, + double y, + double z, + double xd, + double yd, + double zd, + ParticleOptions popParticle + ) { + super(clientLevel, x, y, z, xd, yd, zd); + this.popParticle = popParticle; + this.sound = WWSounds.PARTICLE_FLOATING_SCULK_BUBBLE_BIG_POP; + } + + @Override + public int getLightColor(float tint) { + return 240; + } + + @Override + @NotNull + public ParticleRenderType getRenderType() { + return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT; + } + + @Override + public void tick() { + super.tick(); + Vec3 wind = ClientWindManager.getWindMovement(this.level, new Vec3(this.x, this.y, this.z), 1.5D, 7D, 5D) + .scale(WWAmbienceAndMiscConfig.getParticleWindIntensity()); + this.xd += wind.x * 0.001D; + this.yd += wind.y * 0.00005D; + this.zd += wind.z * 0.001D; + + if (!this.level.getFluidState(BlockPos.containing(this.x, this.y, this.z)).is(FluidTags.WATER)) { + this.age += 1; + } + } + + @Override + public void remove() { + this.level.playSound( + Minecraft.getInstance().player, + this.x, + this.y, + this.z, + this.sound, + SoundSource.NEUTRAL, + 0.025F, + this.random.nextFloat() * 0.2F + 0.8F + ); + this.level.addParticle( + this.popParticle, + this.x, + this.y, + this.z, + this.xd, + this.yd, + this.zd + ); + super.remove(); + } + + @Environment(EnvType.CLIENT) + public static class BubbleFactory implements ParticleProvider { + private final SpriteSet spriteProvider; + private final ParticleOptions popParticle; + + public BubbleFactory(SpriteSet spriteProvider, ParticleOptions popParticle) { + this.spriteProvider = spriteProvider; + this.popParticle = popParticle; + } + + @Override + public Particle createParticle( + @NotNull SimpleParticleType simpleParticleType, + @NotNull ClientLevel clientLevel, + double x, + double y, + double z, + double xd, + double yd, + double zd + ) { + MesogleaBubbleColumnUpParticle bubble = new MesogleaBubbleColumnUpParticle(clientLevel, x, y, z, xd, yd, zd, this.popParticle); + bubble.pickSprite(this.spriteProvider); + return bubble; + } + } + +} diff --git a/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleParticle.java b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleParticle.java new file mode 100644 index 0000000000..12daaac61a --- /dev/null +++ b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubbleParticle.java @@ -0,0 +1,133 @@ +/* + * Copyright 2023-2025 FrozenBlock + * This file is part of Wilder Wild. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, see . + */ + +package net.frozenblock.wilderwild.particle; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.frozenblock.wilderwild.registry.WWSounds; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.*; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.tags.FluidTags; +import org.jetbrains.annotations.NotNull; + +@Environment(EnvType.CLIENT) +public class MesogleaBubbleParticle extends TextureSheetParticle { + private final SoundEvent sound; + private final ParticleOptions popParticle; + + protected MesogleaBubbleParticle( + @NotNull ClientLevel clientLevel, + double x, + double y, + double z, + double xd, + double yd, + double zd, + ParticleOptions popParticle + ) { + super(clientLevel, x, y, z, xd, yd, zd); + this.popParticle = popParticle; + this.sound = WWSounds.PARTICLE_FLOATING_SCULK_BUBBLE_BIG_POP; + this.gravity = -0.125F; + this.friction = 0.85F; + this.setSize(0.02F, 0.02F); + this.quadSize = this.quadSize * (this.random.nextFloat() * 0.6F + 0.2F); + this.xd = xd * 0.2F + (Math.random() * 2.0 - 1.0) * 0.02F; + this.yd = yd * 0.2F + (Math.random() * 2.0 - 1.0) * 0.02F; + this.zd = zd * 0.2F + (Math.random() * 2.0 - 1.0) * 0.02F; + this.lifetime = (int)(40D / (Math.random() * 0.8 + 0.2)) * 2; + } + + @Override + public int getLightColor(float tint) { + return 240; + } + + @Override + @NotNull + public ParticleRenderType getRenderType() { + return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT; + } + + @Override + public void tick() { + super.tick(); + if (!this.removed && !this.level.getFluidState(BlockPos.containing(this.x, this.y, this.z)).is(FluidTags.WATER)) { + this.age ++; + } + } + + @Override + public void remove() { + this.level.playSound( + Minecraft.getInstance().player, + this.x, + this.y, + this.z, + this.sound, + SoundSource.NEUTRAL, + 0.1F, + this.random.nextFloat() * 0.2F + 0.8F + ); + this.level.addParticle( + this.popParticle, + this.x, + this.y, + this.z, + this.xd, + this.yd, + this.zd + ); + super.remove(); + } + + @Environment(EnvType.CLIENT) + public static class BubbleFactory implements ParticleProvider { + private final SpriteSet spriteProvider; + private final ParticleOptions popParticle; + + public BubbleFactory(SpriteSet spriteProvider, ParticleOptions popParticle) { + this.spriteProvider = spriteProvider; + this.popParticle = popParticle; + } + + @Override + public Particle createParticle( + @NotNull SimpleParticleType simpleParticleType, + @NotNull ClientLevel clientLevel, + double x, + double y, + double z, + double xd, + double yd, + double zd + ) { + MesogleaBubbleParticle bubble = new MesogleaBubbleParticle(clientLevel, x, y, z, xd, yd, zd, this.popParticle); + bubble.pickSprite(this.spriteProvider); + return bubble; + } + } + +} diff --git a/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubblePopParticle.java b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubblePopParticle.java new file mode 100644 index 0000000000..35105bc303 --- /dev/null +++ b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaBubblePopParticle.java @@ -0,0 +1,55 @@ +/* + * Copyright 2023-2025 FrozenBlock + * This file is part of Wilder Wild. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, see . + */ + +package net.frozenblock.wilderwild.particle; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.BubblePopParticle; +import net.minecraft.client.particle.Particle; +import net.minecraft.client.particle.ParticleProvider; +import net.minecraft.client.particle.SpriteSet; +import net.minecraft.core.particles.SimpleParticleType; + +@Environment(EnvType.CLIENT) +public class MesogleaBubblePopParticle extends BubblePopParticle { + + protected MesogleaBubblePopParticle(ClientLevel clientLevel, double d, double e, double f, double g, double h, double i, SpriteSet spriteSet) { + super(clientLevel, d, e, f, g, h, i, spriteSet); + } + + @Override + public int getLightColor(float tint) { + return 240; + } + + @Environment(EnvType.CLIENT) + public static class BubbleFactory implements ParticleProvider { + private final SpriteSet sprites; + + public BubbleFactory(SpriteSet spriteSet) { + this.sprites = spriteSet; + } + + public Particle createParticle(SimpleParticleType simpleParticleType, ClientLevel clientLevel, double d, double e, double f, double g, double h, double i) { + return new MesogleaBubblePopParticle(clientLevel, d, e, f, g, h, i, this.sprites); + } + } + +} diff --git a/src/main/java/net/frozenblock/wilderwild/particle/MesogleaCurrentDownParticle.java b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaCurrentDownParticle.java new file mode 100644 index 0000000000..d3787f47b8 --- /dev/null +++ b/src/main/java/net/frozenblock/wilderwild/particle/MesogleaCurrentDownParticle.java @@ -0,0 +1,148 @@ +/* + * Copyright 2023-2025 FrozenBlock + * This file is part of Wilder Wild. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, see . + */ + +package net.frozenblock.wilderwild.particle; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.frozenblock.wilderwild.registry.WWSounds; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.particle.*; +import net.minecraft.core.BlockPos; +import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.particles.SimpleParticleType; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundSource; +import net.minecraft.tags.FluidTags; +import net.minecraft.util.Mth; +import org.jetbrains.annotations.NotNull; + +@Environment(EnvType.CLIENT) +public class MesogleaCurrentDownParticle extends TextureSheetParticle { + private final SoundEvent sound; + private final ParticleOptions popParticle; + private float angle; + + protected MesogleaCurrentDownParticle( + @NotNull ClientLevel clientLevel, + double x, + double y, + double z, + double xd, + double yd, + double zd, + ParticleOptions popParticle + ) { + super(clientLevel, x, y, z, xd, yd, zd); + this.popParticle = popParticle; + this.sound = WWSounds.PARTICLE_FLOATING_SCULK_BUBBLE_BIG_POP; + this.lifetime = (int)(Math.random() * 60.0) + 30; + this.hasPhysics = false; + this.xd = 0.0; + this.yd = -0.05; + this.zd = 0.0; + this.setSize(0.02F, 0.02F); + this.quadSize = this.quadSize * (this.random.nextFloat() * 0.6F + 0.2F); + this.gravity = 0.002F; + } + + @Override + public int getLightColor(float tint) { + return 240; + } + + @Override + @NotNull + public ParticleRenderType getRenderType() { + return ParticleRenderType.PARTICLE_SHEET_TRANSLUCENT; + } + + @Override + public void tick() { + this.xo = this.x; + this.yo = this.y; + this.zo = this.z; + if (this.age++ >= this.lifetime) { + this.remove(); + } else { + this.xd = this.xd + (0.6D * Mth.cos(this.angle)); + this.zd = this.zd + (0.6D * Mth.sin(this.angle)); + this.xd *= 0.07; + this.zd *= 0.07; + this.move(this.xd, this.yd, this.zd); + if (!this.level.getFluidState(BlockPos.containing(this.x, this.y, this.z)).is(FluidTags.WATER) || this.onGround) { + this.age += 1; + } + + this.angle += 0.08F; + } + } + + @Override + public void remove() { + this.level.playSound( + Minecraft.getInstance().player, + this.x, + this.y, + this.z, + this.sound, + SoundSource.NEUTRAL, + 0.025F, + this.random.nextFloat() * 0.2F + 0.8F + ); + this.level.addParticle( + this.popParticle, + this.x, + this.y, + this.z, + this.xd, + this.yd, + this.zd + ); + super.remove(); + } + + @Environment(EnvType.CLIENT) + public static class BubbleFactory implements ParticleProvider { + private final SpriteSet spriteProvider; + private final ParticleOptions popParticle; + + public BubbleFactory(SpriteSet spriteProvider, ParticleOptions popParticle) { + this.spriteProvider = spriteProvider; + this.popParticle = popParticle; + } + + @Override + public Particle createParticle( + @NotNull SimpleParticleType simpleParticleType, + @NotNull ClientLevel clientLevel, + double x, + double y, + double z, + double xd, + double yd, + double zd + ) { + MesogleaCurrentDownParticle bubble = new MesogleaCurrentDownParticle(clientLevel, x, y, z, xd, yd, zd, this.popParticle); + bubble.pickSprite(this.spriteProvider); + return bubble; + } + } + +} diff --git a/src/main/java/net/frozenblock/wilderwild/registry/WWBlocks.java b/src/main/java/net/frozenblock/wilderwild/registry/WWBlocks.java index bb4170428c..6db6d31a8d 100644 --- a/src/main/java/net/frozenblock/wilderwild/registry/WWBlocks.java +++ b/src/main/java/net/frozenblock/wilderwild/registry/WWBlocks.java @@ -342,42 +342,70 @@ public final class WWBlocks { public static final MesogleaBlock BLUE_PEARLESCENT_MESOGLEA = mesoglea( MapColor.QUARTZ, WWParticleTypes.BLUE_PEARLESCENT_HANGING_MESOGLEA, + WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE, + WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_BUBBLE_COLUMN_UP, + WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_CURRENT_DOWN, + WWParticleTypes.BLUE_PEARLESCENT_MESOGLEA_SPLASH, true, Integer.parseInt("B9DAED", 16) ); public static final MesogleaBlock PURPLE_PEARLESCENT_MESOGLEA = mesoglea( MapColor.COLOR_PURPLE, WWParticleTypes.PURPLE_PEARLESCENT_HANGING_MESOGLEA, + WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE, + WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_COLUMN_UP, + WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_CURRENT_DOWN, + WWParticleTypes.PURPLE_PEARLESCENT_MESOGLEA_SPLASH, true, Integer.parseInt("C6B2F4", 16) ); public static final MesogleaBlock YELLOW_MESOGLEA = mesoglea( MapColor.COLOR_YELLOW, WWParticleTypes.YELLOW_HANGING_MESOGLEA, + WWParticleTypes.YELLOW_MESOGLEA_BUBBLE, + WWParticleTypes.YELLOW_MESOGLEA_BUBBLE_COLUMN_UP, + WWParticleTypes.YELLOW_MESOGLEA_CURRENT_DOWN, + WWParticleTypes.YELLOW_MESOGLEA_SPLASH, false, Integer.parseInt("FFCA51", 16) ); public static final MesogleaBlock BLUE_MESOGLEA = mesoglea( MapColor.COLOR_LIGHT_BLUE, WWParticleTypes.BLUE_HANGING_MESOGLEA, + WWParticleTypes.BLUE_MESOGLEA_BUBBLE, + WWParticleTypes.BLUE_MESOGLEA_BUBBLE_COLUMN_UP, + WWParticleTypes.BLUE_MESOGLEA_CURRENT_DOWN, + WWParticleTypes.BLUE_MESOGLEA_SPLASH, false, Integer.parseInt("50A4FF", 16) ); public static final MesogleaBlock LIME_MESOGLEA = mesoglea( MapColor.COLOR_LIGHT_GREEN, WWParticleTypes.LIME_HANGING_MESOGLEA, + WWParticleTypes.LIME_MESOGLEA_BUBBLE, + WWParticleTypes.LIME_MESOGLEA_BUBBLE_COLUMN_UP, + WWParticleTypes.LIME_MESOGLEA_CURRENT_DOWN, + WWParticleTypes.LIME_MESOGLEA_SPLASH, false, Integer.parseInt("0CCD40", 16) ); public static final MesogleaBlock RED_MESOGLEA = mesoglea( MapColor.COLOR_RED, WWParticleTypes.RED_HANGING_MESOGLEA, + WWParticleTypes.RED_MESOGLEA_BUBBLE, + WWParticleTypes.RED_MESOGLEA_BUBBLE_COLUMN_UP, + WWParticleTypes.RED_MESOGLEA_CURRENT_DOWN, + WWParticleTypes.RED_MESOGLEA_SPLASH, false, Integer.parseInt("FF3B3C", 16) ); public static final MesogleaBlock PINK_MESOGLEA = mesoglea( MapColor.COLOR_PINK, WWParticleTypes.PINK_HANGING_MESOGLEA, + WWParticleTypes.PINK_MESOGLEA_BUBBLE, + WWParticleTypes.PINK_MESOGLEA_BUBBLE_COLUMN_UP, + WWParticleTypes.PINK_MESOGLEA_CURRENT_DOWN, + WWParticleTypes.PINK_MESOGLEA_SPLASH, false, Integer.parseInt("DF71DC", 16) ); @@ -1700,11 +1728,24 @@ public static LeafLitterBlock leafLitter( } @NotNull - public static MesogleaBlock mesoglea(@NotNull MapColor mapColor, @NotNull ParticleOptions particleOptions, boolean pearlescent, int waterFogColor) { + public static MesogleaBlock mesoglea( + @NotNull MapColor mapColor, + @NotNull ParticleOptions dripParticle, + @NotNull ParticleOptions bubbleParticle, + @NotNull ParticleOptions bubbleColumnUpParticle, + @NotNull ParticleOptions currentDownParticle, + @NotNull ParticleOptions splashParticle, + boolean pearlescent, + int waterFogColor + ) { MesogleaBlock mesogleaBlock = new MesogleaBlock( pearlescent, waterFogColor, - particleOptions, + dripParticle, + bubbleParticle, + bubbleColumnUpParticle, + currentDownParticle, + splashParticle, BlockBehaviour.Properties.of() .mapColor(mapColor) .noOcclusion() diff --git a/src/main/java/net/frozenblock/wilderwild/registry/WWParticleTypes.java b/src/main/java/net/frozenblock/wilderwild/registry/WWParticleTypes.java index 6aae9a4dc1..1d29ab1235 100644 --- a/src/main/java/net/frozenblock/wilderwild/registry/WWParticleTypes.java +++ b/src/main/java/net/frozenblock/wilderwild/registry/WWParticleTypes.java @@ -61,24 +61,59 @@ public final class WWParticleTypes { public static final SimpleParticleType BLUE_PEARLESCENT_HANGING_MESOGLEA = register("blue_pearlescent_hanging_mesoglea_drip"); public static final SimpleParticleType BLUE_PEARLESCENT_FALLING_MESOGLEA = register("blue_pearlescent_falling_mesoglea_drip"); public static final SimpleParticleType BLUE_PEARLESCENT_LANDING_MESOGLEA = register("blue_pearlescent_landing_mesoglea_drip"); + public static final SimpleParticleType BLUE_PEARLESCENT_MESOGLEA_BUBBLE = register("blue_pearlescent_mesoglea_bubble"); + public static final SimpleParticleType BLUE_PEARLESCENT_MESOGLEA_BUBBLE_COLUMN_UP = register("blue_pearlescent_mesoglea_bubble_column_up"); + public static final SimpleParticleType BLUE_PEARLESCENT_MESOGLEA_CURRENT_DOWN = register("blue_pearlescent_mesoglea_current_down"); + public static final SimpleParticleType BLUE_PEARLESCENT_MESOGLEA_BUBBLE_POP = register("blue_pearlescent_mesoglea_bubble_pop"); + public static final SimpleParticleType BLUE_PEARLESCENT_MESOGLEA_SPLASH = register("blue_pearlescent_mesoglea_splash"); public static final SimpleParticleType PURPLE_PEARLESCENT_HANGING_MESOGLEA = register("purple_pearlescent_hanging_mesoglea_drip"); public static final SimpleParticleType PURPLE_PEARLESCENT_FALLING_MESOGLEA = register("purple_pearlescent_falling_mesoglea_drip"); public static final SimpleParticleType PURPLE_PEARLESCENT_LANDING_MESOGLEA = register("purple_pearlescent_landing_mesoglea_drip"); + public static final SimpleParticleType PURPLE_PEARLESCENT_MESOGLEA_BUBBLE = register("purple_pearlescent_mesoglea_bubble"); + public static final SimpleParticleType PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_COLUMN_UP = register("purple_pearlescent_mesoglea_bubble_column_up"); + public static final SimpleParticleType PURPLE_PEARLESCENT_MESOGLEA_CURRENT_DOWN = register("purple_pearlescent_mesoglea_current_down"); + public static final SimpleParticleType PURPLE_PEARLESCENT_MESOGLEA_BUBBLE_POP = register("purple_pearlescent_mesoglea_bubble_pop"); + public static final SimpleParticleType PURPLE_PEARLESCENT_MESOGLEA_SPLASH = register("purple_pearlescent_mesoglea_splash"); public static final SimpleParticleType PINK_HANGING_MESOGLEA = register("pink_hanging_mesoglea_drip"); public static final SimpleParticleType PINK_FALLING_MESOGLEA = register("pink_falling_mesoglea_drip"); public static final SimpleParticleType PINK_LANDING_MESOGLEA = register("pink_landing_mesoglea_drip"); + public static final SimpleParticleType PINK_MESOGLEA_BUBBLE = register("pink_mesoglea_bubble"); + public static final SimpleParticleType PINK_MESOGLEA_BUBBLE_COLUMN_UP = register("pink_mesoglea_bubble_column_up"); + public static final SimpleParticleType PINK_MESOGLEA_CURRENT_DOWN = register("pink_mesoglea_current_down"); + public static final SimpleParticleType PINK_MESOGLEA_BUBBLE_POP = register("pink_mesoglea_bubble_pop"); + public static final SimpleParticleType PINK_MESOGLEA_SPLASH = register("pink_mesoglea_splash"); public static final SimpleParticleType RED_HANGING_MESOGLEA = register("red_hanging_mesoglea_drip"); public static final SimpleParticleType RED_FALLING_MESOGLEA = register("red_falling_mesoglea_drip"); public static final SimpleParticleType RED_LANDING_MESOGLEA = register("red_landing_mesoglea_drip"); + public static final SimpleParticleType RED_MESOGLEA_BUBBLE = register("red_mesoglea_bubble"); + public static final SimpleParticleType RED_MESOGLEA_BUBBLE_COLUMN_UP = register("red_mesoglea_bubble_column_up"); + public static final SimpleParticleType RED_MESOGLEA_CURRENT_DOWN = register("red_mesoglea_current_down"); + public static final SimpleParticleType RED_MESOGLEA_BUBBLE_POP = register("red_mesoglea_bubble_pop"); + public static final SimpleParticleType RED_MESOGLEA_SPLASH = register("red_mesoglea_splash"); public static final SimpleParticleType YELLOW_HANGING_MESOGLEA = register("yellow_hanging_mesoglea_drip"); public static final SimpleParticleType YELLOW_FALLING_MESOGLEA = register("yellow_falling_mesoglea_drip"); public static final SimpleParticleType YELLOW_LANDING_MESOGLEA = register("yellow_landing_mesoglea_drip"); + public static final SimpleParticleType YELLOW_MESOGLEA_BUBBLE = register("yellow_mesoglea_bubble"); + public static final SimpleParticleType YELLOW_MESOGLEA_BUBBLE_COLUMN_UP = register("yellow_mesoglea_bubble_column_up"); + public static final SimpleParticleType YELLOW_MESOGLEA_CURRENT_DOWN = register("yellow_mesoglea_current_down"); + public static final SimpleParticleType YELLOW_MESOGLEA_BUBBLE_POP = register("yellow_mesoglea_bubble_pop"); + public static final SimpleParticleType YELLOW_MESOGLEA_SPLASH = register("yellow_mesoglea_splash"); public static final SimpleParticleType LIME_HANGING_MESOGLEA = register("lime_hanging_mesoglea_drip"); public static final SimpleParticleType LIME_FALLING_MESOGLEA = register("lime_falling_mesoglea_drip"); public static final SimpleParticleType LIME_LANDING_MESOGLEA = register("lime_landing_mesoglea_drip"); + public static final SimpleParticleType LIME_MESOGLEA_BUBBLE = register("lime_mesoglea_bubble"); + public static final SimpleParticleType LIME_MESOGLEA_BUBBLE_COLUMN_UP = register("lime_mesoglea_bubble_column_up"); + public static final SimpleParticleType LIME_MESOGLEA_CURRENT_DOWN = register("lime_mesoglea_current_down"); + public static final SimpleParticleType LIME_MESOGLEA_BUBBLE_POP = register("lime_mesoglea_bubble_pop"); + public static final SimpleParticleType LIME_MESOGLEA_SPLASH = register("lime_mesoglea_splash"); public static final SimpleParticleType BLUE_HANGING_MESOGLEA = register("blue_hanging_mesoglea_drip"); public static final SimpleParticleType BLUE_FALLING_MESOGLEA = register("blue_falling_mesoglea_drip"); public static final SimpleParticleType BLUE_LANDING_MESOGLEA = register("blue_landing_mesoglea_drip"); + public static final SimpleParticleType BLUE_MESOGLEA_BUBBLE = register("blue_mesoglea_bubble"); + public static final SimpleParticleType BLUE_MESOGLEA_BUBBLE_COLUMN_UP = register("blue_mesoglea_bubble_column_up"); + public static final SimpleParticleType BLUE_MESOGLEA_CURRENT_DOWN = register("blue_mesoglea_current_down"); + public static final SimpleParticleType BLUE_MESOGLEA_BUBBLE_POP = register("blue_mesoglea_bubble_pop"); + public static final SimpleParticleType BLUE_MESOGLEA_SPLASH = register("blue_mesoglea_splash"); public static final ParticleType OAK_LEAVES = createLeafParticle( WWConstants.id("oak_leaves"), Blocks.OAK_LEAVES, diff --git a/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble.json b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble.json new file mode 100644 index 0000000000..5510b9e6b9 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:blue_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_column_up.json b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_column_up.json new file mode 100644 index 0000000000..5510b9e6b9 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:blue_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_pop.json b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_pop.json new file mode 100644 index 0000000000..2fe8b9cf8f --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "wilderwild:blue_mesoglea_bubble_pop_0", + "wilderwild:blue_mesoglea_bubble_pop_1", + "wilderwild:blue_mesoglea_bubble_pop_2", + "wilderwild:blue_mesoglea_bubble_pop_3", + "wilderwild:blue_mesoglea_bubble_pop_4" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_mesoglea_current_down.json b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_current_down.json new file mode 100644 index 0000000000..5510b9e6b9 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:blue_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_mesoglea_splash.json b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_splash.json new file mode 100644 index 0000000000..1f9e9a9874 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_mesoglea_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "wilderwild:blue_mesoglea_splash_0", + "wilderwild:blue_mesoglea_splash_1", + "wilderwild:blue_mesoglea_splash_2", + "wilderwild:blue_mesoglea_splash_3" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_falling_mesoglea_drip.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_falling_mesoglea_drip.json index 61ef51e3dd..05376b1172 100644 --- a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_falling_mesoglea_drip.json +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_falling_mesoglea_drip.json @@ -1,5 +1,5 @@ { "textures": [ - "wilderwild:mesoglea_drip_falling" + "wilderwild:blue_pearlescent_mesoglea_drip_falling" ] } diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_hanging_mesoglea_drip.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_hanging_mesoglea_drip.json index 7b846b0808..0ec5ebbc08 100644 --- a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_hanging_mesoglea_drip.json +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_hanging_mesoglea_drip.json @@ -1,7 +1,7 @@ { "textures": [ - "wilderwild:mesoglea_drip_hanging_1", - "wilderwild:mesoglea_drip_hanging_2", - "wilderwild:mesoglea_drip_hanging_3" + "wilderwild:blue_pearlescent_mesoglea_drip_hanging_1", + "wilderwild:blue_pearlescent_mesoglea_drip_hanging_2", + "wilderwild:blue_pearlescent_mesoglea_drip_hanging_3" ] } diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_landing_mesoglea_drip.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_landing_mesoglea_drip.json index e5c28beaf0..279d1d1680 100644 --- a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_landing_mesoglea_drip.json +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_landing_mesoglea_drip.json @@ -1,5 +1,5 @@ { "textures": [ - "wilderwild:mesoglea_drip_land" + "wilderwild:blue_pearlescent_mesoglea_drip_land" ] } diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble.json new file mode 100644 index 0000000000..4f13ad3b3c --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:blue_pearlescent_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_column_up.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_column_up.json new file mode 100644 index 0000000000..4f13ad3b3c --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:blue_pearlescent_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_pop.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_pop.json new file mode 100644 index 0000000000..a5ec3d03ad --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "wilderwild:blue_pearlescent_mesoglea_bubble_pop_0", + "wilderwild:blue_pearlescent_mesoglea_bubble_pop_1", + "wilderwild:blue_pearlescent_mesoglea_bubble_pop_2", + "wilderwild:blue_pearlescent_mesoglea_bubble_pop_3", + "wilderwild:blue_pearlescent_mesoglea_bubble_pop_4" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_current_down.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_current_down.json new file mode 100644 index 0000000000..4f13ad3b3c --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:blue_pearlescent_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_splash.json b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_splash.json new file mode 100644 index 0000000000..2e671d3a81 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/blue_pearlescent_mesoglea_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "wilderwild:blue_pearlescent_mesoglea_splash_0", + "wilderwild:blue_pearlescent_mesoglea_splash_1", + "wilderwild:blue_pearlescent_mesoglea_splash_2", + "wilderwild:blue_pearlescent_mesoglea_splash_3" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble.json b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble.json new file mode 100644 index 0000000000..30cb719fed --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:lime_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_column_up.json b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_column_up.json new file mode 100644 index 0000000000..30cb719fed --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:lime_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_pop.json b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_pop.json new file mode 100644 index 0000000000..37fffd0779 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "wilderwild:lime_mesoglea_bubble_pop_0", + "wilderwild:lime_mesoglea_bubble_pop_1", + "wilderwild:lime_mesoglea_bubble_pop_2", + "wilderwild:lime_mesoglea_bubble_pop_3", + "wilderwild:lime_mesoglea_bubble_pop_4" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/lime_mesoglea_current_down.json b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_current_down.json new file mode 100644 index 0000000000..30cb719fed --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:lime_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/lime_mesoglea_splash.json b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_splash.json new file mode 100644 index 0000000000..17fe7b34b9 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/lime_mesoglea_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "wilderwild:lime_mesoglea_splash_0", + "wilderwild:lime_mesoglea_splash_1", + "wilderwild:lime_mesoglea_splash_2", + "wilderwild:lime_mesoglea_splash_3" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble.json b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble.json new file mode 100644 index 0000000000..a3a1796002 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:pink_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_column_up.json b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_column_up.json new file mode 100644 index 0000000000..a3a1796002 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:pink_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_pop.json b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_pop.json new file mode 100644 index 0000000000..a6069c9107 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "wilderwild:pink_mesoglea_bubble_pop_0", + "wilderwild:pink_mesoglea_bubble_pop_1", + "wilderwild:pink_mesoglea_bubble_pop_2", + "wilderwild:pink_mesoglea_bubble_pop_3", + "wilderwild:pink_mesoglea_bubble_pop_4" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/pink_mesoglea_current_down.json b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_current_down.json new file mode 100644 index 0000000000..a3a1796002 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:pink_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/pink_mesoglea_splash.json b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_splash.json new file mode 100644 index 0000000000..76198e33c2 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/pink_mesoglea_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "wilderwild:pink_mesoglea_splash_0", + "wilderwild:pink_mesoglea_splash_1", + "wilderwild:pink_mesoglea_splash_2", + "wilderwild:pink_mesoglea_splash_3" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_falling_mesoglea_drip.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_falling_mesoglea_drip.json index e4b379935b..7b403915d6 100644 --- a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_falling_mesoglea_drip.json +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_falling_mesoglea_drip.json @@ -1,5 +1,5 @@ { "textures": [ - "wilderwild:purple_mesoglea_drip_falling" + "wilderwild:purple_pearlescent_mesoglea_drip_falling" ] } diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_hanging_mesoglea_drip.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_hanging_mesoglea_drip.json index 3dde0f4fd8..cd65dcb55e 100644 --- a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_hanging_mesoglea_drip.json +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_hanging_mesoglea_drip.json @@ -1,7 +1,7 @@ { "textures": [ - "wilderwild:purple_mesoglea_drip_hanging_1", - "wilderwild:purple_mesoglea_drip_hanging_2", - "wilderwild:purple_mesoglea_drip_hanging_3" + "wilderwild:purple_pearlescent_mesoglea_drip_hanging_1", + "wilderwild:purple_pearlescent_mesoglea_drip_hanging_2", + "wilderwild:purple_pearlescent_mesoglea_drip_hanging_3" ] } diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_landing_mesoglea_drip.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_landing_mesoglea_drip.json index c405edc804..64502283e2 100644 --- a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_landing_mesoglea_drip.json +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_landing_mesoglea_drip.json @@ -1,5 +1,5 @@ { "textures": [ - "wilderwild:purple_mesoglea_drip_land" + "wilderwild:purple_pearlescent_mesoglea_drip_land" ] } diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble.json new file mode 100644 index 0000000000..2b0c50e35d --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:purple_pearlescent_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_column_up.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_column_up.json new file mode 100644 index 0000000000..2b0c50e35d --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:purple_pearlescent_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_pop.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_pop.json new file mode 100644 index 0000000000..8da2e62cc4 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "wilderwild:purple_pearlescent_mesoglea_bubble_pop_0", + "wilderwild:purple_pearlescent_mesoglea_bubble_pop_1", + "wilderwild:purple_pearlescent_mesoglea_bubble_pop_2", + "wilderwild:purple_pearlescent_mesoglea_bubble_pop_3", + "wilderwild:purple_pearlescent_mesoglea_bubble_pop_4" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_current_down.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_current_down.json new file mode 100644 index 0000000000..2b0c50e35d --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:purple_pearlescent_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_splash.json b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_splash.json new file mode 100644 index 0000000000..de5cd6dc2e --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/purple_pearlescent_mesoglea_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "wilderwild:purple_pearlescent_mesoglea_splash_0", + "wilderwild:purple_pearlescent_mesoglea_splash_1", + "wilderwild:purple_pearlescent_mesoglea_splash_2", + "wilderwild:purple_pearlescent_mesoglea_splash_3" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble.json b/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble.json new file mode 100644 index 0000000000..65ee22e220 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:red_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_column_up.json b/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_column_up.json new file mode 100644 index 0000000000..65ee22e220 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:red_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_pop.json b/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_pop.json new file mode 100644 index 0000000000..dfe5c04726 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/red_mesoglea_bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "wilderwild:red_mesoglea_bubble_pop_0", + "wilderwild:red_mesoglea_bubble_pop_1", + "wilderwild:red_mesoglea_bubble_pop_2", + "wilderwild:red_mesoglea_bubble_pop_3", + "wilderwild:red_mesoglea_bubble_pop_4" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/red_mesoglea_current_down.json b/src/main/resources/assets/wilderwild/particles/red_mesoglea_current_down.json new file mode 100644 index 0000000000..65ee22e220 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/red_mesoglea_current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:red_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/red_mesoglea_splash.json b/src/main/resources/assets/wilderwild/particles/red_mesoglea_splash.json new file mode 100644 index 0000000000..449c66370a --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/red_mesoglea_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "wilderwild:red_mesoglea_splash_0", + "wilderwild:red_mesoglea_splash_1", + "wilderwild:red_mesoglea_splash_2", + "wilderwild:red_mesoglea_splash_3" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble.json b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble.json new file mode 100644 index 0000000000..09de39e9e4 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:yellow_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_column_up.json b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_column_up.json new file mode 100644 index 0000000000..09de39e9e4 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_column_up.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:yellow_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_pop.json b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_pop.json new file mode 100644 index 0000000000..fedc435f86 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_bubble_pop.json @@ -0,0 +1,9 @@ +{ + "textures": [ + "wilderwild:yellow_mesoglea_bubble_pop_0", + "wilderwild:yellow_mesoglea_bubble_pop_1", + "wilderwild:yellow_mesoglea_bubble_pop_2", + "wilderwild:yellow_mesoglea_bubble_pop_3", + "wilderwild:yellow_mesoglea_bubble_pop_4" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_current_down.json b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_current_down.json new file mode 100644 index 0000000000..09de39e9e4 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_current_down.json @@ -0,0 +1,5 @@ +{ + "textures": [ + "wilderwild:yellow_mesoglea_bubble" + ] +} diff --git a/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_splash.json b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_splash.json new file mode 100644 index 0000000000..eb40605cc6 --- /dev/null +++ b/src/main/resources/assets/wilderwild/particles/yellow_mesoglea_splash.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "wilderwild:yellow_mesoglea_splash_0", + "wilderwild:yellow_mesoglea_splash_1", + "wilderwild:yellow_mesoglea_splash_2", + "wilderwild:yellow_mesoglea_splash_3" + ] +} diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..ef143bad96967dda9dc4b300fb33567fd551d80c GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0G(>@ZYr${{xo%e>-p1 zDj=V+B*-tA!Qt7BG$2R8)5S5Qf-yNEAtB{UdO~8NKvtSSQkpZViK$ji?SqiSUUt3gYgTe~DWM4fk7OdR literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_2.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3ee50e3c7576b2c6095e0458dfcc324c6fd83e8f GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X3EFE{-7; zjL8nnjNbp41(_!@teWzVA<_QqmkakNfBAZsp~f;C4=;Oy85}S Ib4q9e0FP!Lm;e9( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_3.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_3.png new file mode 100644 index 0000000000000000000000000000000000000000..cf1765152dc7924cc14fcb7fa71c127e6d26c788 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; qjL8nnjNbo@dHfx2v@e#E|Ej{UYAXBLjiPMnAhn*ZelF{r5}E*YK^5Tu literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_4.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_bubble_pop_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a8bf7b0b0874e9dce0b4fc412075f39d5c3bf5ed GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; rjL8eEIU+vIPZa54gTe~DWM4fv1%Bj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_0.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_0.png new file mode 100644 index 0000000000000000000000000000000000000000..1a5f053edb49138c58bf9ce8d2a91621c9892507 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x2m^7srqa t#$<^z316H4J8XLMz+R__(fglrG2@l_Y@6q4-;D;T_H^}gS?83{1ON@N8ax01 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_1.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e33b26612f59f84e65843fe2cf54068b185c3817 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x3~X7srqa o#$<^z316H4|5$RG?_cv~#-{5m2d>A)Uj`}kboFyt=akR{0H~uGy8r+H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_2.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ddaa755a3d08fe4a96434e97047d0ee68c1a0714 GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x1Dc7srqa i#$<^<3*J1iKh(wGzlF){(cd&hkQz@{KbLh*2~7b1RTX*w literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_3.png b/src/main/resources/assets/wilderwild/textures/particle/blue_mesoglea_splash_3.png new file mode 100644 index 0000000000000000000000000000000000000000..52c626a2efdf07a82c8e03aa33b338e7a5a5e669 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x3~X7srqa n#$<^z316H4-%w?mw!oW#p}U8rZtEakt!I+$okdX2vJs~ksAS+EEDNP_DE#YBe!aoKEfgem# T{GLAMK(!2>u6{1-oD!M<3sNKQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_0.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f35baebd4be8e1a42a5bf29e7a4392c54902c562 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0VR{t+&@+fBFCa|F&2s zUm%~cB*-tA!Qt7BG$2RH)5S5Qf-zZvK|-{FrI>xfg9;{<87v$t*clwBGp^Psm;DP= O#o+1c=d#Wzp$PyQ86e*P literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_1.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e61086095864723b3aa349559ab256ec543fc375 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1XB8*E{-7; zjL8yO4{p8Ici8gzTJ)lj$ARt(>sn+I3tKL0UTF|mzQ5n_s^g-j#0Vw^bP0l+XkK=U*er literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_2.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_bubble_pop_2.png new file mode 100644 index 0000000000000000000000000000000000000000..924cd80e94d51e00729b381231972c10daded7be GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X3EFE{-7; zjL8nn*77E{-7; qjL8nn*77E{-7; rjL8eEZ&be4J**+YE41P``%Gbmk59Q6W$&Jk2dVXR^>bP0l+XkKrVtl- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_falling.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_falling.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_falling.png rename to src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_falling.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_hanging_1.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_hanging_1.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_hanging_1.png rename to src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_hanging_1.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_hanging_2.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_hanging_2.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_hanging_2.png rename to src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_hanging_2.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_hanging_3.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_hanging_3.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_hanging_3.png rename to src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_hanging_3.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_land.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_land.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/mesoglea_drip_land.png rename to src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_drip_land.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_0.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_0.png new file mode 100644 index 0000000000000000000000000000000000000000..821e11666ef923d7cb659b963a2d006ccd80af08 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x4-v7srqa u#$<^z5B~rE@9^o?YyF5PW%sJO&#*EuRdX0?&5bw(Qts*M=d#Wzp$PzBn;XXf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_1.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_1.png new file mode 100644 index 0000000000000000000000000000000000000000..329db163d3c976498430711e50d0bf037491a916 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x2<17srqa p#$<^z5B~rE|6|Gez5kffnHgq(X5HMz<+=@|($m$?Wt~$(69CRt8Q1^- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_2.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_2.png new file mode 100644 index 0000000000000000000000000000000000000000..88acb7e01be002bc3d60640d76db3e1e8e18c2de GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x3aH7srqa j#$<^<4{p8IZxLl=NRngP7POg_5v0h|)z4*}Q$iB}?PC*^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_3.png b/src/main/resources/assets/wilderwild/textures/particle/blue_pearlescent_mesoglea_splash_3.png new file mode 100644 index 0000000000000000000000000000000000000000..372d4bd97cab128ea0c03b2c22b23726a528053d GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x2<17srqa p#$<^z5B~rEe?ztGURAdm6T^yWtaa1#j$Hz&^mO%eS?83{1OU1%8F2sr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..ec46fca99e3ecfdee294d4e009602929241079ab GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0JtV)adf3(>!M#UViV4 z0rDA3g8YIR9G=}s19B8RT^vIy7?Tqc5>mdTCnP2cWTgotr3oaYB|J<__{YE?@PkQ; T-_yq&sFuOg)z4*}Q$iB}VAUbi literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_0.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_0.png new file mode 100644 index 0000000000000000000000000000000000000000..a4492a5300eb792d7894e4556d64455690240c3d GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X4PlE{-7; zjL8bpJxud9^Em{4UMaXyYEoT=V~FrI=0KL~%p1ERY!$AiGzKy-M2GQ-TgTe~DWM4fsbL+7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_1.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_1.png new file mode 100644 index 0000000000000000000000000000000000000000..88f3d0ec023152df31f0b63171e9ffb38d839fa2 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1XB8*E{-7; zjL8yO4xd*F3VfVXs^DcRS1R(#{e+;HyTx25UXH?Fza@fYRkS49R2djFmIy8SIeB#s O$OunYKbLh*2~7a>jvhMz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_2.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_2.png new file mode 100644 index 0000000000000000000000000000000000000000..f95c5ec3528eb936c210970503c4c1b2e4015f81 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1XAjrE{-7; zjL8nnHtDhr9gQ9gp7E{-7; qjL8nnHtDhwZR!ed4hQ!4R|zqw2(YBif828yq}J2b&t;ucLK6UO4i*9c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_4.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_bubble_pop_4.png new file mode 100644 index 0000000000000000000000000000000000000000..596039908f0e84b23579a071aa1bd63e03e68748 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; rjL8eEA6ULVV8G?p%<}4^<1-cp`-d#4*Tu}dKx#c*{an^LB{Ts5u*MgP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_0.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_0.png new file mode 100644 index 0000000000000000000000000000000000000000..98c530742482315aaf09bad289743b205ed61c7b GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x2m^7srqa t#$<^z3NPEmCtRt?YH{s*zJ}RIoT2e0^S}4G)AK;8Jzf1=);T3K0RZuv8Lt2U literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_1.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5b6a7b90adf672d0c1e9edbc16589ed98a2a6329 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x3~X7srqa n#$<^z3NPEm?K00UcPlVs2(D*(`l+gA5lEq@tDnm{r-UW|S2Px| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_2.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_2.png new file mode 100644 index 0000000000000000000000000000000000000000..43afcfc4779c92aebc8e3ac8c17ab4354c3d5f21 GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x1Dc7srqa i#$<^<4xd*FCb}}{?q_sN&c0CtQse3B=d#Wzp$P!i#uLQ= literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_3.png b/src/main/resources/assets/wilderwild/textures/particle/lime_mesoglea_splash_3.png new file mode 100644 index 0000000000000000000000000000000000000000..33d7bcf03a6f5163bb7b0b89c0e7737fe45f7415 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x3~X7srqa n#$<^z3NPEm%Q)w4=F3oGh_Gea7n$~e7o^bB)z4*}Q$iB}GmI3+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble.png b/src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..995ea9863a0f88810cd3fe1a9a2cb18df14c2b51 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0MeM|LMz<@9!7h*)VHv z0g%sF666=m;PC858jz#l>Eakt!I+$okdX2vJs~ksAS+EEDNP_DE#YBe!aoKEfgem# T{GLAMK(!2>u6{1-oD!M7E{-7; rjL8nn-?`r#@c292XkRQR|5b%S{t(B;fD5j_L25l+{an^LB{Ts5lAsqk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble_pop_4.png b/src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_bubble_pop_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6a393969db9117211166fa33516df4921fc890d4 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; rjL8eEcf?n;CyMm2ab9`ce1?-DaTmwN?Ww`XKx#c*{an^LB{Ts5tdkf4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_splash_0.png b/src/main/resources/assets/wilderwild/textures/particle/pink_mesoglea_splash_0.png new file mode 100644 index 0000000000000000000000000000000000000000..052ce61b56df7ee88e87e1ef3452964003cfe1e3 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x2m^7srqa t#$<^z559go@9@d-f3Qx`ckcHJ#fEQda?4Ot6P>FMg{vd$@?2>_=M7@+_F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..291a2c81fbe8bdbf9230b6119dc1a6720307aa31 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0H`+(vScD{~z1*W#_i( z7lC}nk|4ie28U-i(tsQVPZ!6K3dZDwgoKnY=?RI60$FJSNofKJX$cP#6aFzU2>f7@ U;`j712dZW8boFyt=akR{09rC73jhEB literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_0.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_0.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a3d9f3cedb9b7a19cf975562d41bca9fe07206 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9JOMr-u0Zxfg9;{<87v$t*clwBGp^Psm;DP= O#o+1c=d#Wzp$PyPLLlY< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_1.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4b41557a6baf82eb0a0bc980616a701bfba9c620 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1XB8*E{-7; zjL8yO556sxcPPoZEWRk@aiIIcx)zzl!j{XLR~iJC@9#If>bR&WF@lM~Gf^YJX-APA O$OunYKbLh*2~7Z&g(0#4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_2.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5b593744883b62720a7cc13781c52090fe983235 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X3EFE{-7; zjL8nn$IWUPmDrRRLp1*~9;%!5a^ZgUm#?Qj6g%E=#G8|WL1Ct>VE7E{-7; qjL8nn$IWUJCFV73;CHvRd*#Wn?=0uW#{DIFAhn*ZelF{r5}E*za~Br? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_4.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_bubble_pop_4.png new file mode 100644 index 0000000000000000000000000000000000000000..24d14d01f556817f01647c9f5ea88de9cd56cb40 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; rjL8eEEw;VnKCB_ZE41P``%GbmNv)h4<(>V~Kx#c*{an^LB{Ts5fk73} literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_falling.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_falling.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_falling.png rename to src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_falling.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_hanging_1.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_hanging_1.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_hanging_1.png rename to src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_hanging_1.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_hanging_2.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_hanging_2.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_hanging_2.png rename to src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_hanging_2.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_hanging_3.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_hanging_3.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_hanging_3.png rename to src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_hanging_3.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_land.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_land.png similarity index 100% rename from src/main/resources/assets/wilderwild/textures/particle/purple_mesoglea_drip_land.png rename to src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_drip_land.png diff --git a/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_splash_0.png b/src/main/resources/assets/wilderwild/textures/particle/purple_pearlescent_mesoglea_splash_0.png new file mode 100644 index 0000000000000000000000000000000000000000..0be7c2a9c5d4894a74383a46a045120e82479951 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x4-v7srqa u#$<^z5B~rE@9^o{Qu&A{eYwAy&ag84m*(Kt+Q^&mdTCnP2cWTgotr3oaYB|J<__{YE?@PkQ; T-_yq&sFuOg)z4*}Q$iB}cab6u literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_0.png b/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_0.png new file mode 100644 index 0000000000000000000000000000000000000000..424ab5741f4883f57af5931d07e65f8ed92ad35e GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X9|bE{-7; zjL8bpJx%|wnK^ulj}p8nCAO}8h1weSMI7tclSDUGIjlO#w3vY*{ig`)N>zqeAnl&6 KelF{r5}E+a+a8Pn literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_1.png b/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_1.png new file mode 100644 index 0000000000000000000000000000000000000000..807c5cc714a8ba65f9015d817f5a6d28638e1234 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1XB8*E{-7; zjL8yO58|T)1^#Z|rs!oVS1R(#{e+;HyTx25UXH?Fza@fYRkS49R2djVze+LMKMc|V O8R6;b=d#Wzp$P!y=^X(8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_2.png b/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_2.png new file mode 100644 index 0000000000000000000000000000000000000000..eec6d467355eec4d6339586ad51a27653ac0aa78 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1XAjrE{-7; zjL8nn|JUX=bToP}gnHFCY?z-`_2Rwfud37?M-7!e1~D;I1_*XOk+{(e((38z=d#Wz Gp$Pz%=O4KM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_3.png b/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_3.png new file mode 100644 index 0000000000000000000000000000000000000000..b1d8cff83f65ff6382a31a74ace4ca85a484dfe4 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; qjL8nn|JUY9w5cn+IULyEUnRuQqRV>IIG@Q7q}J2b&t;ucLK6Uv>=riw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_4.png b/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_bubble_pop_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ef826b6175a15f6da3d970aea9b4f961d7c58580 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; rjL8eEf8^&LHsEq=W_k6|@fi!l|6Qy%*X>_98>H6L)z4*}Q$iB}(EAy$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_splash_0.png b/src/main/resources/assets/wilderwild/textures/particle/red_mesoglea_splash_0.png new file mode 100644 index 0000000000000000000000000000000000000000..ee36389c9d6c0b5af33d3948ca4121ac2adff69f GIT binary patch literal 100 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x3yP7srqa s#$<^z5B?we>hLK(O3=(QTRKILVdqQMIlXH8Y|R$}LFznR{an^LB{Ts5YBLvV literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble.png b/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble.png new file mode 100644 index 0000000000000000000000000000000000000000..86dc878a74d549768b39934c7180dd7e12f143a4 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^93afZ3?z3ZhDiV^o&cW^S0MfW>7@TZuKYh0m^rN( zB+gh8 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_1.png b/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b8b47f34fe39620c16f55f00fcea61383d3dbc4a GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X6mQE{-7; zjL8yO5B^{FR4CD!pmDY0O5h54MfV7qhb3I53P)bPPxdLDup&WX8UsT+vx;iA=KE%l N37)QgF6*2UngC22AXxwa literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_2.png b/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_2.png new file mode 100644 index 0000000000000000000000000000000000000000..77ce2a9d5af92aaecc299b8739df9e6a4f716616 GIT binary patch literal 115 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X3EFE{-7; zjL8nn|NU8+1eqr?teWzVA<_QqmkakNfBAZFVdQ I&MBb@0H>NE1poj5 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_3.png b/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_bubble_pop_3.png new file mode 100644 index 0000000000000000000000000000000000000000..34e06bd482f8f3ed0b1338262444c6bbb9a5fb11 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|Y$ZW{!9W@a@|Lkr1X2>7E{-7; qjL8nn|NU8wc>Eo1v@e#E|Ej{UwvZz;=N4-fNUf)7E{-7; qjL8eEf7EMDNEGQ|< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_splash_2.png b/src/main/resources/assets/wilderwild/textures/particle/yellow_mesoglea_splash_2.png new file mode 100644 index 0000000000000000000000000000000000000000..eccfdf551fe5b9d82b4caca0cc3bbf752e5784d8 GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1SGw4HSYi^wvr&fU?2?ydCS-*0x3aH7srqa j#$<^<5B^{FY!PK-h&; (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V accessible field net/minecraft/client/particle/CherryParticle rotSpeed F accessible field net/minecraft/client/particle/Particle gravity F +accessible method net/minecraft/client/particle/BubblePopParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDDLnet/minecraft/client/particle/SpriteSet;)V diff --git a/src/main/resources/wilderwild.mixins.json b/src/main/resources/wilderwild.mixins.json index 2f4ff8dcc1..633b16b839 100644 --- a/src/main/resources/wilderwild.mixins.json +++ b/src/main/resources/wilderwild.mixins.json @@ -132,7 +132,9 @@ "client.mesoglea.BubbleColumnAmbientSoundHandlerMixin", "client.mesoglea.EntityRenderDispatcherMixin", "client.mesoglea.FogRendererMixin", + "client.mesoglea.LevelRendererMixin", "client.mesoglea.LiquidBlockRendererMixin", + "client.mesoglea.SuspendedParticleUnderwaterProviderMixin", "client.shrieker.LevelRendererMixin", "client.sodium.BlockRendererMixin", "client.sodium.FluidRendererMixin",