diff --git a/changelog.md b/changelog.md index b54d98517..78cbffa12 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,8 @@ ## WARNING + This is an alpha release. Expect bugs and frequent updates until we reach a stable version. If you're updating from 1.15.5 or below, please back up your world and expect the following breaking changes: + - Sliding doors will break and need to be placed again. - Launch pads will break and need to be placed again. - Cables and fluid pipes will break and need to be placed again. @@ -10,4 +12,6 @@ See https://modrinth.com/mod/ad-astra/version/1.15.7 for the full changelog. ## Changes -- Fixed JEI/REI not showing ingredients in recipes \ No newline at end of file +- Fixed `local_rotation` name in the planet renderer JSON API. +- Fixed acid rain damaging entities even if they're immune. +- Fixed portal sound playing on fabric when changing dimensions in a rocket. \ No newline at end of file diff --git a/common/src/main/generated/resources/.cache/7798cbb5d8b5531980dd295058c4f708ac699d1f b/common/src/main/generated/resources/.cache/7798cbb5d8b5531980dd295058c4f708ac699d1f index 02b6cf566..a921e5b4b 100644 --- a/common/src/main/generated/resources/.cache/7798cbb5d8b5531980dd295058c4f708ac699d1f +++ b/common/src/main/generated/resources/.cache/7798cbb5d8b5531980dd295058c4f708ac699d1f @@ -1,4 +1,4 @@ -// 1.20.1 2024-01-06T17:52:32.399687 Tags for minecraft:fluid mod id ad_astra +// 1.20.1 2024-01-29T21:04:01.350615 Tags for minecraft:fluid mod id ad_astra 177c9e2ff17d4101adeb82bf787abd6ab892330a data/ad_astra/tags/fluids/efficient_fuel.json cf3608bd187922aeb48c566c19e8482b0dca34c7 data/ad_astra/tags/fluids/evaporates_in_space.json cf3608bd187922aeb48c566c19e8482b0dca34c7 data/ad_astra/tags/fluids/freezes_in_space.json diff --git a/common/src/main/generated/resources/.cache/bc28f3de8ab09e3608eaf789667b9a6bd9f6bf29 b/common/src/main/generated/resources/.cache/bc28f3de8ab09e3608eaf789667b9a6bd9f6bf29 index 044a5aa10..af11321e7 100644 --- a/common/src/main/generated/resources/.cache/bc28f3de8ab09e3608eaf789667b9a6bd9f6bf29 +++ b/common/src/main/generated/resources/.cache/bc28f3de8ab09e3608eaf789667b9a6bd9f6bf29 @@ -1,12 +1,12 @@ -// 1.20.1 2024-01-25T00:00:20.057255 Planet Renderers -7d78f2f1b5cf0fae4b528fea389e6579b3194cb7 assets/ad_astra/planet_renderers/earth_orbit.json -a9a5dd44e11f33f02bdc0119e3740999001eb557 assets/ad_astra/planet_renderers/glacio.json -886dc489ce268a05b595e770f1f7fff90a0f3dc6 assets/ad_astra/planet_renderers/glacio_orbit.json -5216ddad81488a01a8a20400c4eab1497bdcd05b assets/ad_astra/planet_renderers/mars.json -e3d54542fbc06654af586571fb6a7fbf5bdfe9af assets/ad_astra/planet_renderers/mars_orbit.json -92094169278bb335da464ea2cb92c790cc76219e assets/ad_astra/planet_renderers/mercury.json -3ad9c4dab8bb89c89de0e84286ee1cc608ed5841 assets/ad_astra/planet_renderers/mercury_orbit.json -3d400191fe0d4c787ce486b42fb27f9bc16b499b assets/ad_astra/planet_renderers/moon.json -dc93a84a968c06af8fb1999b3379c8d05ef6618e assets/ad_astra/planet_renderers/moon_orbit.json -296d528d28cf203e932baf7e4fe91fe0b5c19530 assets/ad_astra/planet_renderers/venus.json -6256eb56aa5ac92fb4b31fdc11899c37fde718c3 assets/ad_astra/planet_renderers/venus_orbit.json +// 1.20.1 2024-01-29T20:51:15.602795 Planet Renderers +02ec227fa7447c0f851f26683a18edb9b9d61ff7 assets/ad_astra/planet_renderers/earth_orbit.json +e9b5760adb66ee4b7ff0a8b58256b86dd8a3d908 assets/ad_astra/planet_renderers/glacio.json +0b2e925d1b185660bdbe54cf2499c249bf48f2cd assets/ad_astra/planet_renderers/glacio_orbit.json +08af3e47313c967fc437c68e7d73ccf3cb696e7e assets/ad_astra/planet_renderers/mars.json +d8908b55aa1b9fa124f69b93d0b2ab0b0367e8d9 assets/ad_astra/planet_renderers/mars_orbit.json +22861d451ae96e8f5a8d374a962ab4ad28788425 assets/ad_astra/planet_renderers/mercury.json +7aa3ee4245ca38c2505f19b242cc268d21d47377 assets/ad_astra/planet_renderers/mercury_orbit.json +0dfd16d284434c26f1ac7bdc06977a9918fcd073 assets/ad_astra/planet_renderers/moon.json +4d68530d43e97e3ea573cca9ab8aad8f72d28688 assets/ad_astra/planet_renderers/moon_orbit.json +5a5faf09e2aeeec03135e70738cbc60034a847f9 assets/ad_astra/planet_renderers/venus.json +c021c5bb2692fe84a7e04f402e65a4b010fa6441 assets/ad_astra/planet_renderers/venus_orbit.json diff --git a/common/src/main/generated/resources/.cache/d42038fe9714d33270a7309ae9641fccc9001edf b/common/src/main/generated/resources/.cache/d42038fe9714d33270a7309ae9641fccc9001edf index d3bd999e0..e86ae0cb4 100644 --- a/common/src/main/generated/resources/.cache/d42038fe9714d33270a7309ae9641fccc9001edf +++ b/common/src/main/generated/resources/.cache/d42038fe9714d33270a7309ae9641fccc9001edf @@ -1,8 +1,7 @@ -// 1.20.1 2023-12-30T20:48:06.728224 Tags for minecraft:entity_type mod id ad_astra -0b80548f23bc5bee90b92328d46ae7e13cb3a2db data/ad_astra/tags/entity_types/acid_rain_immune.json +// 1.20.1 2024-01-29T20:22:50.650155 Tags for minecraft:entity_type mod id ad_astra 8fb6c3dafcd9086f49a8ea003414895786cd6d3d data/ad_astra/tags/entity_types/can_survive_extreme_cold.json 68b0da066fd014874f1d7b886cd84b74d69bf3db data/ad_astra/tags/entity_types/can_survive_extreme_heat.json -90e1ebb1e309d0a7ab9f016d8aa69e08193be82d data/ad_astra/tags/entity_types/can_survive_in_acid_rain.json +ae41cfc4a0317b0993a73cc0d737d15df6521d31 data/ad_astra/tags/entity_types/can_survive_in_acid_rain.json e48333a241d450d15ad28ac650f7cc3c54bcfc95 data/ad_astra/tags/entity_types/can_survive_in_space.json 986ca8aa79b13bb6cb03aced4009597e607d57ac data/ad_astra/tags/entity_types/ignores_air_vortex.json 2ab1ebb47d29a0796a1c73dfb0e5951e9c3b61ed data/ad_astra/tags/entity_types/lives_without_oxygen.json diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/earth_orbit.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/earth_orbit.json index 4295e0f1a..9a617f171 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/earth_orbit.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/earth_orbit.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -52,7 +52,7 @@ 0.0, 30.0 ], - "localRotation": [ + "local_rotation": [ 0.0, -5.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio.json index cb0b393b2..4bef943d7 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 5.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, -5.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio_orbit.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio_orbit.json index fff2a9418..a9c5b1af6 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio_orbit.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/glacio_orbit.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -52,7 +52,7 @@ 0.0, 5.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, -5.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars.json index 797cb0b6a..a4ba41fb1 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 20.0, 180.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -52,7 +52,7 @@ 0.0, 180.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 20.0, 0.0 @@ -70,7 +70,7 @@ 0.0, 160.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 100.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars_orbit.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars_orbit.json index ba61b6103..1c2950334 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars_orbit.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mars_orbit.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury.json index 720fe11cf..5789cd6a8 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 140.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 100.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury_orbit.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury_orbit.json index d484cad48..db9939e3d 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury_orbit.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/mercury_orbit.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon.json index c799c7cad..a9e6812ef 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 30.0 ], - "localRotation": [ + "local_rotation": [ 0.0, -5.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon_orbit.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon_orbit.json index cee888e5c..382d74fb1 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon_orbit.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/moon_orbit.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -52,7 +52,7 @@ 0.0, 30.0 ], - "localRotation": [ + "local_rotation": [ 0.0, -5.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus.json index 4a3d2d754..d1f6f35a6 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 160.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 100.0, 0.0 @@ -52,7 +52,7 @@ 0.0, -10.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 100.0, 0.0 diff --git a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus_orbit.json b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus_orbit.json index 1ed75f51f..d3e4187ae 100644 --- a/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus_orbit.json +++ b/common/src/main/generated/resources/assets/ad_astra/planet_renderers/venus_orbit.json @@ -16,7 +16,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 @@ -34,7 +34,7 @@ 0.0, 0.0 ], - "localRotation": [ + "local_rotation": [ 0.0, 0.0, 0.0 diff --git a/common/src/main/generated/resources/data/ad_astra/tags/entity_types/acid_rain_immune.json b/common/src/main/generated/resources/data/ad_astra/tags/entity_types/acid_rain_immune.json deleted file mode 100644 index 8e1b7f67f..000000000 --- a/common/src/main/generated/resources/data/ad_astra/tags/entity_types/acid_rain_immune.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "values": [ - "ad_astra:tier_1_rocket", - "ad_astra:tier_2_rocket", - "ad_astra:tier_3_rocket", - "ad_astra:tier_4_rocket", - "ad_astra:lander" - ] -} \ No newline at end of file diff --git a/common/src/main/generated/resources/data/ad_astra/tags/entity_types/can_survive_in_acid_rain.json b/common/src/main/generated/resources/data/ad_astra/tags/entity_types/can_survive_in_acid_rain.json index c447d05f2..8d665163f 100644 --- a/common/src/main/generated/resources/data/ad_astra/tags/entity_types/can_survive_in_acid_rain.json +++ b/common/src/main/generated/resources/data/ad_astra/tags/entity_types/can_survive_in_acid_rain.json @@ -1,5 +1,10 @@ { "values": [ - "#ad_astra:can_survive_extreme_heat" + "#ad_astra:can_survive_extreme_heat", + "ad_astra:tier_1_rocket", + "ad_astra:tier_2_rocket", + "ad_astra:tier_3_rocket", + "ad_astra:tier_4_rocket", + "ad_astra:lander" ] } \ No newline at end of file diff --git a/common/src/main/java/earth/terrarium/adastra/AdAstra.java b/common/src/main/java/earth/terrarium/adastra/AdAstra.java index 3ee49e21a..69002c13e 100644 --- a/common/src/main/java/earth/terrarium/adastra/AdAstra.java +++ b/common/src/main/java/earth/terrarium/adastra/AdAstra.java @@ -3,9 +3,9 @@ import com.teamresourceful.resourcefulconfig.common.config.Configurator; import earth.terrarium.adastra.api.systems.GravityApi; import earth.terrarium.adastra.api.systems.OxygenApi; +import earth.terrarium.adastra.api.systems.PlanetData; import earth.terrarium.adastra.api.systems.TemperatureApi; import earth.terrarium.adastra.common.config.AdAstraConfig; -import earth.terrarium.adastra.common.handlers.base.PlanetData; import earth.terrarium.adastra.common.network.NetworkHandler; import earth.terrarium.adastra.common.network.messages.ClientboundSyncLocalPlanetDataPacket; import earth.terrarium.adastra.common.network.messages.ClientboundSyncPlanetsPacket; diff --git a/common/src/main/java/earth/terrarium/adastra/api/events/AdAstraEvents.java b/common/src/main/java/earth/terrarium/adastra/api/events/AdAstraEvents.java index 11f3c668d..afd4aea96 100644 --- a/common/src/main/java/earth/terrarium/adastra/api/events/AdAstraEvents.java +++ b/common/src/main/java/earth/terrarium/adastra/api/events/AdAstraEvents.java @@ -36,7 +36,7 @@ static void register(OxygenTickEvent listener) { * @return false to prevent ticking of oxygen */ @ApiStatus.Internal - static boolean post(ServerLevel level, LivingEntity entity) { + static boolean fire(ServerLevel level, LivingEntity entity) { for (var listener : OXYGEN_TICK_LISTENERS) { if (!listener.tick(level, entity)) { return false; @@ -55,7 +55,7 @@ static void register(EntityOxygenEvent listener) { } @ApiStatus.Internal - static boolean post(Entity entity, boolean hasOxygen) { + static boolean fire(Entity entity, boolean hasOxygen) { for (var listener : ENTITY_OXYGEN_LISTENERS) { boolean newOxygen = listener.hasOxygen(entity, hasOxygen); if (newOxygen != hasOxygen) { @@ -78,7 +78,7 @@ static void register(TemperatureTickEvent listener) { * @return false to prevent ticking of temperature */ @ApiStatus.Internal - static boolean post(ServerLevel level, LivingEntity entity) { + static boolean fire(ServerLevel level, LivingEntity entity) { for (var listener : TEMPERATURE_TICK_LISTENERS) { if (!listener.tick(level, entity)) { return false; @@ -100,7 +100,7 @@ static void register(HotTemperatureTickEvent listener) { * @return false to prevent the entity from burning */ @ApiStatus.Internal - static boolean post(ServerLevel level, LivingEntity entity) { + static boolean fire(ServerLevel level, LivingEntity entity) { for (var listener : HOT_TEMPERATURE_TICK_LISTENERS) { if (!listener.tick(level, entity)) { return false; @@ -121,7 +121,7 @@ static void register(ColdTemperatureTickEvent listener) { * @return false to prevent the entity from freezing */ @ApiStatus.Internal - static boolean post(ServerLevel level, LivingEntity entity) { + static boolean fire(ServerLevel level, LivingEntity entity) { for (var listener : COLD_TEMPERATURE_TICK_LISTENERS) { if (!listener.tick(level, entity)) { return false; @@ -131,26 +131,6 @@ static boolean post(ServerLevel level, LivingEntity entity) { } } - @FunctionalInterface - public interface EntityGravityEvent { - float getGravity(Entity entity, float gravity); - - static void register(EntityGravityEvent listener) { - ENTITY_GRAVITY_LISTENERS.add(listener); - } - - @ApiStatus.Internal - static float post(Entity entity, float gravity) { - for (var listener : ENTITY_GRAVITY_LISTENERS) { - float newGravity = listener.getGravity(entity, gravity); - if (newGravity != gravity) { - return newGravity; - } - } - return gravity; - } - } - @FunctionalInterface public interface GravityTickEvent { boolean tick(Level level, LivingEntity entity, Vec3 travelVector, BlockPos movementAffectingPos); @@ -163,7 +143,7 @@ static void register(GravityTickEvent listener) { * @return false to prevent ticking of gravity */ @ApiStatus.Internal - static boolean post(Level level, LivingEntity entity, Vec3 travelVector, BlockPos movementAffectingPos) { + static boolean fire(Level level, LivingEntity entity, Vec3 travelVector, BlockPos movementAffectingPos) { for (var listener : GRAVITY_TICK_LISTENERS) { if (!listener.tick(level, entity, travelVector, movementAffectingPos)) { return false; @@ -173,6 +153,26 @@ static boolean post(Level level, LivingEntity entity, Vec3 travelVector, BlockPo } } + @FunctionalInterface + public interface EntityGravityEvent { + float getGravity(Entity entity, float gravity); + + static void register(EntityGravityEvent listener) { + ENTITY_GRAVITY_LISTENERS.add(listener); + } + + @ApiStatus.Internal + static float fire(Entity entity, float gravity) { + for (var listener : ENTITY_GRAVITY_LISTENERS) { + float newGravity = listener.getGravity(entity, gravity); + if (newGravity != gravity) { + return newGravity; + } + } + return gravity; + } + } + @FunctionalInterface public interface ZeroGravityTickEvent { boolean tick(Level level, LivingEntity entity, Vec3 travelVector, BlockPos movementAffectingPos); @@ -185,7 +185,7 @@ static void register(ZeroGravityTickEvent listener) { * @return false to prevent ticking of zero gravity */ @ApiStatus.Internal - static boolean post(Level level, LivingEntity entity, Vec3 travelVector, BlockPos movementAffectingPos) { + static boolean fire(Level level, LivingEntity entity, Vec3 travelVector, BlockPos movementAffectingPos) { for (var listener : ZERO_GRAVITY_TICK_LISTENERS) { if (!listener.tick(level, entity, travelVector, movementAffectingPos)) { return false; @@ -207,7 +207,7 @@ static void register(AcidRainTickEvent listener) { * @return false to prevent ticking of acid rain */ @ApiStatus.Internal - static boolean post(ServerLevel level, LivingEntity entity) { + static boolean fire(ServerLevel level, LivingEntity entity) { for (var listener : ACID_RAIN_TICK_LISTENERS) { if (!listener.tick(level, entity)) { return false; @@ -231,7 +231,7 @@ static void register(EnvironmentTickEvent listener) { * @return false to prevent ticking of environment */ @ApiStatus.Internal - static boolean post(ServerLevel level, BlockPos pos, BlockState state, short temperature) { + static boolean fire(ServerLevel level, BlockPos pos, BlockState state, short temperature) { for (var listener : ENVIRONMENT_TICK_LISTENERS) { if (!listener.tick(level, pos, state, temperature)) { return false; diff --git a/common/src/main/java/earth/terrarium/adastra/common/planets/Planet.java b/common/src/main/java/earth/terrarium/adastra/api/planets/Planet.java similarity index 97% rename from common/src/main/java/earth/terrarium/adastra/common/planets/Planet.java rename to common/src/main/java/earth/terrarium/adastra/api/planets/Planet.java index 609a6482e..0d33cb10d 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/planets/Planet.java +++ b/common/src/main/java/earth/terrarium/adastra/api/planets/Planet.java @@ -1,8 +1,9 @@ -package earth.terrarium.adastra.common.planets; +package earth.terrarium.adastra.api.planets; import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.common.planets.AdAstraData; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; diff --git a/common/src/main/java/earth/terrarium/adastra/api/planets/PlanetApi.java b/common/src/main/java/earth/terrarium/adastra/api/planets/PlanetApi.java index b52e5a07b..5029dc690 100644 --- a/common/src/main/java/earth/terrarium/adastra/api/planets/PlanetApi.java +++ b/common/src/main/java/earth/terrarium/adastra/api/planets/PlanetApi.java @@ -1,7 +1,6 @@ package earth.terrarium.adastra.api.planets; import earth.terrarium.adastra.api.ApiHelper; -import earth.terrarium.adastra.common.planets.Planet; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; @@ -14,7 +13,7 @@ public interface PlanetApi { * Gets the planet data for the given level, or null if the level is not a planet. * * @param level The level to get the planet data for. - * @return The planet data for the given level. + * @return The planet data for the given level, or null if the level is not a planet. */ @Nullable Planet getPlanet(Level level); @@ -23,7 +22,7 @@ public interface PlanetApi { * Gets the planet data for the given level, or null if the level is not a planet. * * @param level The level to get the planet data for. - * @return The planet data for the given level. + * @return The planet data for the given level, or null if the level is not a planet. */ @Nullable Planet getPlanet(ResourceKey level); diff --git a/common/src/main/java/earth/terrarium/adastra/common/handlers/base/PlanetData.java b/common/src/main/java/earth/terrarium/adastra/api/systems/PlanetData.java similarity index 94% rename from common/src/main/java/earth/terrarium/adastra/common/handlers/base/PlanetData.java rename to common/src/main/java/earth/terrarium/adastra/api/systems/PlanetData.java index 46dcbc5af..29688d81c 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/handlers/base/PlanetData.java +++ b/common/src/main/java/earth/terrarium/adastra/api/systems/PlanetData.java @@ -1,7 +1,11 @@ -package earth.terrarium.adastra.common.handlers.base; +package earth.terrarium.adastra.api.systems; import java.util.Objects; +/** + * A mutable data class that stores the oxygen, temperature, and gravity of a planet. + * Data is packed into a single integer for efficient storage and transmission. + */ public final class PlanetData { private static final int OXYGEN_BIT_LENGTH = 1; // boolean private static final int TEMPERATURE_BIT_LENGTH = Short.SIZE; // 16-bit signed short diff --git a/common/src/main/java/earth/terrarium/adastra/client/dimension/SkyRenderable.java b/common/src/main/java/earth/terrarium/adastra/client/dimension/SkyRenderable.java index 39943f952..cfa9ef48c 100644 --- a/common/src/main/java/earth/terrarium/adastra/client/dimension/SkyRenderable.java +++ b/common/src/main/java/earth/terrarium/adastra/client/dimension/SkyRenderable.java @@ -20,7 +20,7 @@ public record SkyRenderable( ResourceLocation.CODEC.fieldOf("texture").forGetter(SkyRenderable::texture), Codec.FLOAT.fieldOf("scale").forGetter(SkyRenderable::scale), Vec3.CODEC.fieldOf("global_rotation").forGetter(SkyRenderable::globalRotation), - Vec3.CODEC.fieldOf("localRotation").forGetter(SkyRenderable::localRotation), + Vec3.CODEC.fieldOf("local_rotation").forGetter(SkyRenderable::localRotation), ModUtils.createEnumCodec(MovementType.class).fieldOf("movement_type").forGetter(SkyRenderable::movementType), Codec.BOOL.fieldOf("blend").forGetter(SkyRenderable::blend), Codec.INT.fieldOf("back_light_color").forGetter(SkyRenderable::backLightColor), diff --git a/common/src/main/java/earth/terrarium/adastra/client/renderers/ti69/apps/SensorApp.java b/common/src/main/java/earth/terrarium/adastra/client/renderers/ti69/apps/SensorApp.java index f53ea42df..5853c199a 100644 --- a/common/src/main/java/earth/terrarium/adastra/client/renderers/ti69/apps/SensorApp.java +++ b/common/src/main/java/earth/terrarium/adastra/client/renderers/ti69/apps/SensorApp.java @@ -2,11 +2,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.systems.PlanetData; import earth.terrarium.adastra.client.renderers.ti69.Ti69Renderer; import earth.terrarium.adastra.client.utils.ClientData; import earth.terrarium.adastra.common.constants.ConstantComponents; import earth.terrarium.adastra.common.constants.PlanetConstants; -import earth.terrarium.adastra.common.handlers.base.PlanetData; import net.minecraft.client.gui.Font; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.LightTexture; diff --git a/common/src/main/java/earth/terrarium/adastra/client/screens/PlanetsScreen.java b/common/src/main/java/earth/terrarium/adastra/client/screens/PlanetsScreen.java index 94cb54745..051afe107 100644 --- a/common/src/main/java/earth/terrarium/adastra/client/screens/PlanetsScreen.java +++ b/common/src/main/java/earth/terrarium/adastra/client/screens/PlanetsScreen.java @@ -9,6 +9,7 @@ import com.mojang.math.Axis; import com.teamresourceful.resourcefullib.client.utils.RenderUtils; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.client.components.LabeledImageButton; import earth.terrarium.adastra.client.utils.DimensionRenderingUtils; import earth.terrarium.adastra.common.constants.ConstantComponents; @@ -19,7 +20,6 @@ import earth.terrarium.adastra.common.network.messages.ServerboundLandOnSpaceStationPacket; import earth.terrarium.adastra.common.network.messages.ServerboundLandPacket; import earth.terrarium.adastra.common.planets.AdAstraData; -import earth.terrarium.adastra.common.planets.Planet; import net.minecraft.ChatFormatting; import net.minecraft.Util; import net.minecraft.client.Minecraft; diff --git a/common/src/main/java/earth/terrarium/adastra/client/screens/player/OverlayScreen.java b/common/src/main/java/earth/terrarium/adastra/client/screens/player/OverlayScreen.java index 54baccd37..30e04c724 100644 --- a/common/src/main/java/earth/terrarium/adastra/client/screens/player/OverlayScreen.java +++ b/common/src/main/java/earth/terrarium/adastra/client/screens/player/OverlayScreen.java @@ -3,12 +3,12 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.systems.PlanetData; import earth.terrarium.adastra.client.config.AdAstraConfigClient; import earth.terrarium.adastra.client.utils.ClientData; import earth.terrarium.adastra.common.config.AdAstraConfig; import earth.terrarium.adastra.common.entities.vehicles.Lander; import earth.terrarium.adastra.common.entities.vehicles.Rocket; -import earth.terrarium.adastra.common.handlers.base.PlanetData; import earth.terrarium.adastra.common.items.armor.JetSuitItem; import earth.terrarium.adastra.common.items.armor.SpaceSuitItem; import net.minecraft.client.Minecraft; diff --git a/common/src/main/java/earth/terrarium/adastra/client/utils/ClientData.java b/common/src/main/java/earth/terrarium/adastra/client/utils/ClientData.java index d6c66aa62..1dee8f857 100644 --- a/common/src/main/java/earth/terrarium/adastra/client/utils/ClientData.java +++ b/common/src/main/java/earth/terrarium/adastra/client/utils/ClientData.java @@ -1,6 +1,6 @@ package earth.terrarium.adastra.client.utils; -import earth.terrarium.adastra.common.handlers.base.PlanetData; +import earth.terrarium.adastra.api.systems.PlanetData; import earth.terrarium.adastra.common.registry.ModSoundEvents; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.sounds.SimpleSoundInstance; diff --git a/common/src/main/java/earth/terrarium/adastra/common/handlers/LaunchingDimensionHandler.java b/common/src/main/java/earth/terrarium/adastra/common/handlers/LaunchingDimensionHandler.java index 633fa2869..288c6b6e8 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/handlers/LaunchingDimensionHandler.java +++ b/common/src/main/java/earth/terrarium/adastra/common/handlers/LaunchingDimensionHandler.java @@ -1,8 +1,8 @@ package earth.terrarium.adastra.common.handlers; import com.teamresourceful.resourcefullib.common.utils.SaveHandler; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.planets.AdAstraData; -import earth.terrarium.adastra.common.planets.Planet; import net.minecraft.core.GlobalPos; import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; diff --git a/common/src/main/java/earth/terrarium/adastra/common/handlers/PlanetHandler.java b/common/src/main/java/earth/terrarium/adastra/common/handlers/PlanetHandler.java index 37947ad3c..7e889f1e3 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/handlers/PlanetHandler.java +++ b/common/src/main/java/earth/terrarium/adastra/common/handlers/PlanetHandler.java @@ -3,8 +3,8 @@ import com.teamresourceful.resourcefullib.common.utils.SaveHandler; import earth.terrarium.adastra.api.systems.GravityApi; import earth.terrarium.adastra.api.systems.OxygenApi; +import earth.terrarium.adastra.api.systems.PlanetData; import earth.terrarium.adastra.api.systems.TemperatureApi; -import earth.terrarium.adastra.common.handlers.base.PlanetData; import it.unimi.dsi.fastutil.ints.IntArrayList; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; diff --git a/common/src/main/java/earth/terrarium/adastra/common/menus/PlanetsMenu.java b/common/src/main/java/earth/terrarium/adastra/common/menus/PlanetsMenu.java index 1b898559a..c92ab1e5e 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/menus/PlanetsMenu.java +++ b/common/src/main/java/earth/terrarium/adastra/common/menus/PlanetsMenu.java @@ -2,6 +2,7 @@ import com.mojang.authlib.GameProfile; import com.mojang.datafixers.util.Pair; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.compat.argonauts.ArgonautsIntegration; import earth.terrarium.adastra.common.entities.vehicles.Rocket; import earth.terrarium.adastra.common.handlers.SpaceStationHandler; @@ -10,7 +11,6 @@ import earth.terrarium.adastra.common.network.NetworkHandler; import earth.terrarium.adastra.common.network.messages.ServerboundConstructSpaceStationPacket; import earth.terrarium.adastra.common.planets.AdAstraData; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.common.recipes.SpaceStationRecipe; import earth.terrarium.adastra.common.recipes.base.IngredientHolder; import earth.terrarium.adastra.common.registry.ModMenus; diff --git a/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncLocalPlanetDataPacket.java b/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncLocalPlanetDataPacket.java index 5f0489329..c0780a872 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncLocalPlanetDataPacket.java +++ b/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncLocalPlanetDataPacket.java @@ -6,8 +6,8 @@ import com.teamresourceful.resourcefullib.common.network.base.ClientboundPacketType; import com.teamresourceful.resourcefullib.common.network.base.PacketType; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.systems.PlanetData; import earth.terrarium.adastra.client.utils.ClientData; -import earth.terrarium.adastra.common.handlers.base.PlanetData; import earth.terrarium.adastra.common.network.CodecPacketType; import net.minecraft.resources.ResourceLocation; diff --git a/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncPlanetsPacket.java b/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncPlanetsPacket.java index cb26a68c5..5aa13fbb8 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncPlanetsPacket.java +++ b/common/src/main/java/earth/terrarium/adastra/common/network/messages/ClientboundSyncPlanetsPacket.java @@ -6,9 +6,9 @@ import com.teamresourceful.resourcefullib.common.network.base.ClientboundPacketType; import com.teamresourceful.resourcefullib.common.network.base.PacketType; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.network.CodecPacketType; import earth.terrarium.adastra.common.planets.AdAstraData; -import earth.terrarium.adastra.common.planets.Planet; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; diff --git a/common/src/main/java/earth/terrarium/adastra/common/planets/AdAstraData.java b/common/src/main/java/earth/terrarium/adastra/common/planets/AdAstraData.java index 3b5443b61..ff559152a 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/planets/AdAstraData.java +++ b/common/src/main/java/earth/terrarium/adastra/common/planets/AdAstraData.java @@ -6,6 +6,7 @@ import com.mojang.serialization.JsonOps; import com.teamresourceful.resourcefullib.common.lib.Constants; import com.teamresourceful.resourcefullib.common.networking.PacketHelper; +import earth.terrarium.adastra.api.planets.Planet; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; diff --git a/common/src/main/java/earth/terrarium/adastra/common/planets/PlanetApiImpl.java b/common/src/main/java/earth/terrarium/adastra/common/planets/PlanetApiImpl.java index d9f22b746..231e8c0a7 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/planets/PlanetApiImpl.java +++ b/common/src/main/java/earth/terrarium/adastra/common/planets/PlanetApiImpl.java @@ -1,5 +1,6 @@ package earth.terrarium.adastra.common.planets; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.api.planets.PlanetApi; import earth.terrarium.adastra.common.constants.PlanetConstants; import net.minecraft.Optionull; diff --git a/common/src/main/java/earth/terrarium/adastra/common/systems/EnvironmentEffects.java b/common/src/main/java/earth/terrarium/adastra/common/systems/EnvironmentEffects.java index c9d862bd7..785402ac0 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/systems/EnvironmentEffects.java +++ b/common/src/main/java/earth/terrarium/adastra/common/systems/EnvironmentEffects.java @@ -46,7 +46,7 @@ public static void tickChunk(ServerLevel level, LevelChunk chunk) { if (state.isAir()) continue; short temperature = TemperatureApi.API.getTemperature(level, pos); - if (AdAstraEvents.EnvironmentTickEvent.post(level, pos, state, temperature)) { + if (AdAstraEvents.EnvironmentTickEvent.fire(level, pos, state, temperature)) { if (temperature > PlanetConstants.MAX_LIVEABLE_TEMPERATURE) { tickHot(level, pos, state); } else if (temperature < PlanetConstants.FREEZE_TEMPERATURE) { diff --git a/common/src/main/java/earth/terrarium/adastra/common/systems/GravityApiImpl.java b/common/src/main/java/earth/terrarium/adastra/common/systems/GravityApiImpl.java index ff6fd59f4..13cffdba4 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/systems/GravityApiImpl.java +++ b/common/src/main/java/earth/terrarium/adastra/common/systems/GravityApiImpl.java @@ -1,12 +1,12 @@ package earth.terrarium.adastra.common.systems; import earth.terrarium.adastra.api.events.AdAstraEvents; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.api.planets.PlanetApi; import earth.terrarium.adastra.api.systems.GravityApi; import earth.terrarium.adastra.common.config.AdAstraConfig; import earth.terrarium.adastra.common.constants.PlanetConstants; import earth.terrarium.adastra.common.handlers.PlanetHandler; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.mixins.common.LivingEntityAccessor; import net.minecraft.Optionull; import net.minecraft.core.BlockPos; @@ -43,7 +43,7 @@ public float getGravity(Level level, BlockPos pos) { public float getGravity(Entity entity) { if (AdAstraConfig.disableGravity) return 1; float gravity = getGravity(entity.level(), BlockPos.containing(entity.getX(), entity.getEyeY(), entity.getZ())); - return AdAstraEvents.EntityGravityEvent.post(entity, gravity); + return AdAstraEvents.EntityGravityEvent.fire(entity, gravity); } @Override diff --git a/common/src/main/java/earth/terrarium/adastra/common/systems/OxygenApiImpl.java b/common/src/main/java/earth/terrarium/adastra/common/systems/OxygenApiImpl.java index 37b3ccb1d..a8deb6b9c 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/systems/OxygenApiImpl.java +++ b/common/src/main/java/earth/terrarium/adastra/common/systems/OxygenApiImpl.java @@ -1,12 +1,12 @@ package earth.terrarium.adastra.common.systems; import earth.terrarium.adastra.api.events.AdAstraEvents; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.api.planets.PlanetApi; import earth.terrarium.adastra.api.systems.OxygenApi; import earth.terrarium.adastra.common.config.AdAstraConfig; import earth.terrarium.adastra.common.handlers.PlanetHandler; import earth.terrarium.adastra.common.items.armor.SpaceSuitItem; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.common.registry.ModDamageSources; import earth.terrarium.adastra.common.tags.ModEntityTypeTags; import net.minecraft.Optionull; @@ -39,7 +39,7 @@ public boolean hasOxygen(Level level, BlockPos pos) { @Override public boolean hasOxygen(Entity entity) { boolean hasOxygen = hasOxygen(entity.level(), BlockPos.containing(entity.getX(), entity.getEyeY(), entity.getZ())); - return AdAstraEvents.EntityOxygenEvent.post(entity, hasOxygen); + return AdAstraEvents.EntityOxygenEvent.fire(entity, hasOxygen); } @Override diff --git a/common/src/main/java/earth/terrarium/adastra/common/systems/TemperatureApiImpl.java b/common/src/main/java/earth/terrarium/adastra/common/systems/TemperatureApiImpl.java index b8e769f01..47543b70d 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/systems/TemperatureApiImpl.java +++ b/common/src/main/java/earth/terrarium/adastra/common/systems/TemperatureApiImpl.java @@ -1,13 +1,13 @@ package earth.terrarium.adastra.common.systems; import earth.terrarium.adastra.api.events.AdAstraEvents; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.api.planets.PlanetApi; import earth.terrarium.adastra.api.systems.TemperatureApi; import earth.terrarium.adastra.common.config.AdAstraConfig; import earth.terrarium.adastra.common.constants.PlanetConstants; import earth.terrarium.adastra.common.handlers.PlanetHandler; import earth.terrarium.adastra.common.items.armor.SpaceSuitItem; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.common.tags.ModEntityTypeTags; import earth.terrarium.adastra.common.tags.ModItemTags; import earth.terrarium.adastra.common.utils.ModUtils; @@ -92,13 +92,13 @@ public void entityTick(ServerLevel level, LivingEntity entity) { if (entity.getType().is(ModEntityTypeTags.CAN_SURVIVE_EXTREME_HEAT)) return; if (SpaceSuitItem.hasFullSet(entity, ModItemTags.HEAT_RESISTANT_ARMOR)) return; if (entity.hasEffect(MobEffects.FIRE_RESISTANCE)) return; - if (AdAstraEvents.HotTemperatureTickEvent.post(level, entity)) { + if (AdAstraEvents.HotTemperatureTickEvent.fire(level, entity)) { burnEntity(entity); } } else if (this.isCold(level, entity.blockPosition())) { if (entity.getType().is(ModEntityTypeTags.CAN_SURVIVE_EXTREME_COLD)) return; if (SpaceSuitItem.hasFullSet(entity, ModItemTags.FREEZE_RESISTANT_ARMOR)) return; - if (AdAstraEvents.ColdTemperatureTickEvent.post(level, entity)) { + if (AdAstraEvents.ColdTemperatureTickEvent.fire(level, entity)) { freezeEntity(entity, level); } } @@ -112,7 +112,7 @@ private void burnEntity(LivingEntity entity) { private void freezeEntity(LivingEntity entity, ServerLevel level) { if (entity.getType().is(ModEntityTypeTags.CAN_SURVIVE_EXTREME_COLD)) return; if (SpaceSuitItem.hasFullSet(entity, ModItemTags.FREEZE_RESISTANT_ARMOR)) return; - if (AdAstraEvents.ColdTemperatureTickEvent.post(level, entity)) { + if (AdAstraEvents.ColdTemperatureTickEvent.fire(level, entity)) { entity.hurt(entity.damageSources().freeze(), 3); entity.setTicksFrozen(Math.min(entity.getTicksRequiredToFreeze() + 20, entity.getTicksFrozen() + 5 * 10)); ModUtils.sendParticles(level, diff --git a/common/src/main/java/earth/terrarium/adastra/common/tags/ModEntityTypeTags.java b/common/src/main/java/earth/terrarium/adastra/common/tags/ModEntityTypeTags.java index dec243d68..4663a45f1 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/tags/ModEntityTypeTags.java +++ b/common/src/main/java/earth/terrarium/adastra/common/tags/ModEntityTypeTags.java @@ -12,7 +12,6 @@ public final class ModEntityTypeTags { public static final TagKey> CAN_SURVIVE_EXTREME_HEAT = tag("can_survive_extreme_heat"); public static final TagKey> CAN_SURVIVE_IN_SPACE = tag("can_survive_in_space"); public static final TagKey> CAN_SURVIVE_ACID_RAIN = tag("can_survive_in_acid_rain"); - public static final TagKey> ACID_RAIN_IMMUNE = tag("acid_rain_immune"); public static final TagKey> IGNORES_AIR_VORTEX = tag("ignores_air_vortex"); diff --git a/common/src/main/java/earth/terrarium/adastra/common/utils/ModUtils.java b/common/src/main/java/earth/terrarium/adastra/common/utils/ModUtils.java index e3a7b02a8..bead1b223 100644 --- a/common/src/main/java/earth/terrarium/adastra/common/utils/ModUtils.java +++ b/common/src/main/java/earth/terrarium/adastra/common/utils/ModUtils.java @@ -1,6 +1,7 @@ package earth.terrarium.adastra.common.utils; import com.mojang.serialization.Codec; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.blockentities.base.ContainerMachineBlockEntity; import earth.terrarium.adastra.common.blocks.base.MachineBlock; import earth.terrarium.adastra.common.config.AdAstraConfig; @@ -8,7 +9,6 @@ import earth.terrarium.adastra.common.entities.vehicles.Rocket; import earth.terrarium.adastra.common.menus.PlanetsMenu; import earth.terrarium.adastra.common.menus.base.BaseContainerMenu; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.common.registry.ModEntityTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; diff --git a/common/src/main/java/earth/terrarium/adastra/mixins/common/LivingEntityMixin.java b/common/src/main/java/earth/terrarium/adastra/mixins/common/LivingEntityMixin.java index 4e313a223..a2a406804 100644 --- a/common/src/main/java/earth/terrarium/adastra/mixins/common/LivingEntityMixin.java +++ b/common/src/main/java/earth/terrarium/adastra/mixins/common/LivingEntityMixin.java @@ -3,12 +3,12 @@ import earth.terrarium.adastra.api.events.AdAstraEvents; import earth.terrarium.adastra.api.systems.GravityApi; import earth.terrarium.adastra.api.systems.OxygenApi; +import earth.terrarium.adastra.api.systems.PlanetData; import earth.terrarium.adastra.api.systems.TemperatureApi; import earth.terrarium.adastra.client.utils.ClientData; import earth.terrarium.adastra.common.config.AdAstraConfig; import earth.terrarium.adastra.common.constants.PlanetConstants; import earth.terrarium.adastra.common.entities.vehicles.Lander; -import earth.terrarium.adastra.common.handlers.base.PlanetData; import earth.terrarium.adastra.common.items.armor.SpaceSuitItem; import earth.terrarium.adastra.common.registry.ModDamageSources; import earth.terrarium.adastra.common.tags.ModBiomeTags; @@ -49,11 +49,11 @@ public LivingEntityMixin(EntityType type, Level level) { if (entity instanceof Player p && (p.isCreative() || p.isSpectator())) return; if (entity.tickCount % 20 == 0) { - if (AdAstraEvents.OxygenTickEvent.post(level, entity)) { + if (AdAstraEvents.OxygenTickEvent.fire(level, entity)) { OxygenApi.API.entityTick(level, entity); } - if (AdAstraEvents.TemperatureTickEvent.post(level, entity)) { + if (AdAstraEvents.TemperatureTickEvent.fire(level, entity)) { TemperatureApi.API.entityTick(level, entity); } } @@ -61,11 +61,11 @@ public LivingEntityMixin(EntityType type, Level level) { if (entity.tickCount % 10 == 0 && level().getBiome(blockPosition()).is(ModBiomeTags.HAS_ACID_RAIN) && !getType().is(ModEntityTypeTags.CAN_SURVIVE_ACID_RAIN) - && !getType().is(ModEntityTypeTags.ACID_RAIN_IMMUNE) + && !getType().is(ModEntityTypeTags.CAN_SURVIVE_IN_SPACE) && adastra$isInRain() ) { - if (getVehicle() != null && getVehicle().getType().is(ModEntityTypeTags.ACID_RAIN_IMMUNE)) return; - if (AdAstraEvents.AcidRainTickEvent.post(level, entity)) { + if (getVehicle() != null && getVehicle().getType().is(ModEntityTypeTags.CAN_SURVIVE_ACID_RAIN)) return; + if (AdAstraEvents.AcidRainTickEvent.fire(level, entity)) { entity.hurt(ModDamageSources.create(level(), ModDamageSources.ACID_RAIN), 3); playSound(SoundEvents.GENERIC_BURN, 0.4f, 2 + random.nextFloat() * 0.4f); } @@ -85,11 +85,11 @@ && level().getBiome(blockPosition()).is(ModBiomeTags.HAS_ACID_RAIN) var movementAffectingPos = getBlockPosBelowThatAffectsMyMovement(); if (gravity <= PlanetConstants.ZERO_GRAVITY_THRESHOLD) { - if (AdAstraEvents.ZeroGravityTickEvent.post(level(), entity, travelVector, movementAffectingPos)) { + if (AdAstraEvents.ZeroGravityTickEvent.fire(level(), entity, travelVector, movementAffectingPos)) { GravityApi.API.entityTick(level(), entity, travelVector, movementAffectingPos); ci.cancel(); } - } else if (AdAstraEvents.GravityTickEvent.post(level(), entity, travelVector, movementAffectingPos)) { + } else if (AdAstraEvents.GravityTickEvent.fire(level(), entity, travelVector, movementAffectingPos)) { if (this.isInWater() || this.isInLava() || entity.isFallFlying() diff --git a/fabric/src/main/java/earth/terrarium/adastra/mixins/fabric/common/ServerPlayerMixin.java b/fabric/src/main/java/earth/terrarium/adastra/mixins/fabric/common/ServerPlayerMixin.java index 1aecdba3e..d8b0d8955 100644 --- a/fabric/src/main/java/earth/terrarium/adastra/mixins/fabric/common/ServerPlayerMixin.java +++ b/fabric/src/main/java/earth/terrarium/adastra/mixins/fabric/common/ServerPlayerMixin.java @@ -2,7 +2,7 @@ import com.llamalad7.mixinextras.injector.WrapWithCondition; import com.mojang.authlib.GameProfile; -import earth.terrarium.adastra.common.entities.vehicles.Vehicle; +import earth.terrarium.adastra.common.config.AdAstraConfig; import net.minecraft.core.BlockPos; import net.minecraft.network.protocol.Packet; import net.minecraft.server.level.ServerPlayer; @@ -27,7 +27,8 @@ public ServerPlayerMixin(Level level, BlockPos pos, float yRot, GameProfile game ordinal = 5 ) ) + // Prevent the portal teleportation sound from playing when leaving the atmosphere. private boolean adastra$changeDimension(ServerGamePacketListenerImpl instance, Packet packet) { - return !(getVehicle() instanceof Vehicle); + return getY() > AdAstraConfig.atmosphereLeave + 1 || getY() < AdAstraConfig.atmosphereLeave - 1; } } diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/base/ModCodecProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/base/ModCodecProvider.java index 4aacd4bd9..0e5a273fb 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/base/ModCodecProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/base/ModCodecProvider.java @@ -23,7 +23,7 @@ public ModCodecProvider(PackOutput packOutput, Codec codec, ResourceKey codec, ResourceKey> registry, PackOutput.Target target) { + public ModCodecProvider(PackOutput packOutput, Codec codec, ResourceKey> registry, PackOutput.Target target) { this.pathProvider = packOutput.createPathProvider(target, registry.location().getPath()); this.codec = codec; } diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModLangProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModLangProvider.java index bdbe71430..e8128ed6b 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModLangProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModLangProvider.java @@ -2,8 +2,8 @@ import com.teamresourceful.resourcefullib.common.registry.RegistryEntry; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.constants.ConstantComponents; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.common.registry.ModBlocks; import earth.terrarium.adastra.common.registry.ModEntityTypes; import earth.terrarium.adastra.common.registry.ModFluids; diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModPlanetRendererProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModPlanetRendererProvider.java index b62201a1b..5d831cf97 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModPlanetRendererProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/client/ModPlanetRendererProvider.java @@ -1,11 +1,11 @@ package earth.terrarium.adastra.datagen.provider.client; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.client.dimension.MovementType; import earth.terrarium.adastra.client.dimension.PlanetRenderer; import earth.terrarium.adastra.client.dimension.SkyRenderable; import earth.terrarium.adastra.client.utils.DimensionRenderingUtils; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.datagen.provider.base.ModCodecProvider; import net.minecraft.core.Registry; import net.minecraft.data.PackOutput; diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModAdvancementProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModAdvancementProvider.java index b0cc01775..2ee00b234 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModAdvancementProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModAdvancementProvider.java @@ -2,7 +2,7 @@ import earth.terrarium.adastra.AdAstra; -import earth.terrarium.adastra.common.planets.Planet; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.registry.ModItems; import net.minecraft.advancements.Advancement; import net.minecraft.advancements.AdvancementRewards; diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModMachineRecipeProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModMachineRecipeProvider.java index 65b6a0c55..34e25f644 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModMachineRecipeProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModMachineRecipeProvider.java @@ -1,7 +1,7 @@ package earth.terrarium.adastra.datagen.provider.server; import earth.terrarium.adastra.AdAstra; -import earth.terrarium.adastra.common.planets.Planet; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.recipes.base.IngredientHolder; import earth.terrarium.adastra.common.registry.ModFluids; import earth.terrarium.adastra.common.registry.ModItems; diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModPlanetProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModPlanetProvider.java index ae111203e..0642fa13d 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModPlanetProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/ModPlanetProvider.java @@ -1,8 +1,8 @@ package earth.terrarium.adastra.datagen.provider.server; import earth.terrarium.adastra.AdAstra; +import earth.terrarium.adastra.api.planets.Planet; import earth.terrarium.adastra.common.constants.PlanetConstants; -import earth.terrarium.adastra.common.planets.Planet; import earth.terrarium.adastra.datagen.provider.base.ModCodecProvider; import net.minecraft.core.Registry; import net.minecraft.data.PackOutput; @@ -41,7 +41,9 @@ protected void build(BiConsumer consumer) { PlanetConstants.EARTH_GRAVITY, PlanetConstants.EARTH_SOLAR_POWER, PlanetConstants.SOLAR_SYSTEM, - Optional.of(Planet.EARTH_ORBIT), 1, List.of() + Optional.of(Planet.EARTH_ORBIT), + 1, + List.of() ) ); @@ -53,7 +55,8 @@ protected void build(BiConsumer consumer) { PlanetConstants.MOON_GRAVITY, PlanetConstants.MOON_SOLAR_POWER, PlanetConstants.SOLAR_SYSTEM, - Optional.of(Planet.MOON_ORBIT), 1, + Optional.of(Planet.MOON_ORBIT), + 1, List.of() ) ); @@ -66,7 +69,8 @@ protected void build(BiConsumer consumer) { PlanetConstants.MARS_GRAVITY, PlanetConstants.MARS_SOLAR_POWER, PlanetConstants.SOLAR_SYSTEM, - Optional.of(Planet.MARS_ORBIT), 2, + Optional.of(Planet.MARS_ORBIT), + 2, List.of() ) ); @@ -79,7 +83,8 @@ protected void build(BiConsumer consumer) { PlanetConstants.VENUS_GRAVITY, PlanetConstants.VENUS_SOLAR_POWER, PlanetConstants.SOLAR_SYSTEM, - Optional.of(Planet.VENUS_ORBIT), 3, + Optional.of(Planet.VENUS_ORBIT), + 3, List.of() ) ); @@ -92,7 +97,8 @@ protected void build(BiConsumer consumer) { PlanetConstants.MERCURY_GRAVITY, PlanetConstants.MERCURY_SOLAR_POWER, PlanetConstants.SOLAR_SYSTEM, - Optional.of(Planet.MERCURY_ORBIT), 3, + Optional.of(Planet.MERCURY_ORBIT), + 3, List.of() ) ); @@ -105,7 +111,8 @@ protected void build(BiConsumer consumer) { PlanetConstants.GLACIO_GRAVITY, PlanetConstants.GLACIO_SOLAR_POWER, PlanetConstants.PROXIMA_CENTAURI, - Optional.of(Planet.GLACIO_ORBIT), 4, + Optional.of(Planet.GLACIO_ORBIT), + 4, List.of() ) ); diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/registry/ModDimensionTypeProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/registry/ModDimensionTypeProvider.java index 46c300796..f0ed0b9b0 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/registry/ModDimensionTypeProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/registry/ModDimensionTypeProvider.java @@ -1,7 +1,7 @@ package earth.terrarium.adastra.datagen.provider.server.registry; import earth.terrarium.adastra.AdAstra; -import earth.terrarium.adastra.common.planets.Planet; +import earth.terrarium.adastra.api.planets.Planet; import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.BootstapContext; import net.minecraft.resources.ResourceKey; diff --git a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/tags/ModEntityTypeTagProvider.java b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/tags/ModEntityTypeTagProvider.java index 2a54112db..57afe2049 100644 --- a/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/tags/ModEntityTypeTagProvider.java +++ b/forge/src/main/java/earth/terrarium/adastra/datagen/provider/server/tags/ModEntityTypeTagProvider.java @@ -84,6 +84,6 @@ private void surviveSpace(EntityType type) { } private void acidRainImmune(EntityType type) { - tag(ModEntityTypeTags.ACID_RAIN_IMMUNE).add(TagEntry.element(ForgeRegistries.ENTITY_TYPES.getKey(type))); + tag(ModEntityTypeTags.CAN_SURVIVE_ACID_RAIN).add(TagEntry.element(ForgeRegistries.ENTITY_TYPES.getKey(type))); } } diff --git a/forge/src/main/java/earth/terrarium/adastra/mixins/forge/common/entities/GlacianRamMixin.java b/forge/src/main/java/earth/terrarium/adastra/mixins/forge/common/entities/GlacianRamMixin.java index f35018789..6bf9b6b14 100644 --- a/forge/src/main/java/earth/terrarium/adastra/mixins/forge/common/entities/GlacianRamMixin.java +++ b/forge/src/main/java/earth/terrarium/adastra/mixins/forge/common/entities/GlacianRamMixin.java @@ -1,11 +1,5 @@ package earth.terrarium.adastra.mixins.forge.common.entities; -import java.util.List; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; - import earth.terrarium.adastra.common.entities.mob.GlacianRam; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundSource; @@ -15,6 +9,11 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraftforge.common.IForgeShearable; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; + +import java.util.List; @Mixin(GlacianRam.class) public abstract class GlacianRamMixin extends Animal implements IForgeShearable { diff --git a/gradle.properties b/gradle.properties index d3a3199f0..0340416f3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx2G enabledPlatforms=fabric,forge -version=1.15.12 +version=1.15.13 group=earth.terrarium.adastra minecraftVersion=1.20.1