commit - 62b3bb8066fd31d86098f91d771f995979fb9ef3
commit + 9e6c197f44d42c88b15cf79edcf2b5bdce9f0f0b
blob - 15cfbbc30857d1e0d869401a0982367fea87236b
blob + 1f8ee11a5903168dc0a82083a1ea845fb84fea5c
--- build.gradle
+++ build.gradle
exclude 'dev/ryanhcode/**'
exclude 'dev/simulated_team/**'
exclude 'me/desht/**'
+ exclude 'net/mehvahdjukaar/**'
}
var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
blob - 0f8f0800da5605f8ea9f0fc97c3fb1d5fc5c86c1
blob + dc75a8ad6b5bf6be0adbc1eecc5b47cc9b51a870
--- src/main/java/sh/rsap/aeronauticscompat/mixin/AeronauticsCompatMixinPlugin.java
+++ src/main/java/sh/rsap/aeronauticscompat/mixin/AeronauticsCompatMixinPlugin.java
private static final String PNEUMATIC_CRAFT = "me.desht.pneumaticcraft.common.block.entity.utility.SentryTurretBlockEntity";
/** Per-mixin marker-class requirements (all must resolve to apply). */
- private static final Map<String, String[]> REQUIREMENTS = Map.of(
- "sh.rsap.aeronauticscompat.mixin.etched.EtchedStopListeningSoundMixin",
- new String[]{SABLE, ETCHED},
- "sh.rsap.aeronauticscompat.mixin.waterframes.WaterFramesSableDistanceMixin",
- new String[]{SABLE, WATERFRAMES},
- "sh.rsap.aeronauticscompat.mixin.citadel.CitadelAdvancedPathNavigateMixin",
- new String[]{SABLE, CITADEL},
- "sh.rsap.aeronauticscompat.mixin.thickair.ThickAirAirQualityHelperMixin",
- new String[]{SABLE, THICK_AIR},
- "sh.rsap.aeronauticscompat.mixin.sable.SubLevelAssemblyHelperMixin",
- new String[]{SABLE, BITS_N_BOBS},
- "sh.rsap.aeronauticscompat.mixin.bitsnbobs.CogwheelChainBehaviourMixin",
- new String[]{SABLE, BITS_N_BOBS},
- "sh.rsap.aeronauticscompat.mixin.simulated.SimAssemblyHelperMixin",
- new String[]{SABLE, SIMULATED, BITS_N_BOBS},
- "sh.rsap.aeronauticscompat.mixin.pneumaticcraft.SentryTurretEntitySelectorMixin",
- new String[]{SABLE, PNEUMATIC_CRAFT},
- "sh.rsap.aeronauticscompat.mixin.pneumaticcraft.MovingSoundMinigunMixin",
- new String[]{SABLE, PNEUMATIC_CRAFT},
- "sh.rsap.aeronauticscompat.mixin.pneumaticcraft.AbstractPneumaticCraftBlockMixin",
- new String[]{SABLE, PNEUMATIC_CRAFT}
+ private static final Map<String, String[]> REQUIREMENTS = Map.ofEntries(
+ Map.entry("sh.rsap.aeronauticscompat.mixin.etched.EtchedStopListeningSoundMixin",
+ new String[]{SABLE, ETCHED}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.waterframes.WaterFramesSableDistanceMixin",
+ new String[]{SABLE, WATERFRAMES}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.citadel.CitadelAdvancedPathNavigateMixin",
+ new String[]{SABLE, CITADEL}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.thickair.ThickAirAirQualityHelperMixin",
+ new String[]{SABLE, THICK_AIR}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.sable.SubLevelAssemblyHelperMixin",
+ new String[]{SABLE, BITS_N_BOBS}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.simulated.SimAssemblyHelperMixin",
+ new String[]{SABLE, SIMULATED, BITS_N_BOBS}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.bitsnbobs.CogwheelChainBlockEntityMixin",
+ new String[]{SABLE, BITS_N_BOBS}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.pneumaticcraft.SentryTurretEntitySelectorMixin",
+ new String[]{SABLE, PNEUMATIC_CRAFT}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.pneumaticcraft.MovingSoundMinigunMixin",
+ new String[]{SABLE, PNEUMATIC_CRAFT}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.pneumaticcraft.AbstractPneumaticCraftBlockMixin",
+ new String[]{SABLE, PNEUMATIC_CRAFT}),
+ Map.entry("sh.rsap.aeronauticscompat.mixin.sable.ClientPacketListenerMixin",
+ new String[]{SABLE})
);
-
@Override
public void onLoad(String mixinPackage) {
ClassLoader cl = AeronauticsCompatMixinPlugin.class.getClassLoader();
+ " thick_air=" + resolves(THICK_AIR, cl)
+ " bnb=" + resolves(BITS_N_BOBS, cl)
+ " simulated=" + resolves(SIMULATED, cl)
- + " pneumaticcraft=" + resolves(PNEUMATIC_CRAFT, cl)
+ " pneumaticcraft=" + resolves(PNEUMATIC_CRAFT, cl));
}
blob - /dev/null
blob + c98cc389edb2e56c0b014639bf75bbeb2e3650dc (mode 644)
--- /dev/null
+++ src/main/java/sh/rsap/aeronauticscompat/mixin/sable/ClientPacketListenerMixin.java
+package sh.rsap.aeronauticscompat.mixin.sable;
+
+import net.minecraft.client.multiplayer.ClientChunkCache;
+import net.minecraft.client.multiplayer.ClientPacketListener;
+import net.minecraft.world.level.ChunkPos;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(ClientPacketListener.class)
+public abstract class ClientPacketListenerMixin {
+
+ private static final int PLOT_CHUNK_THRESHOLD = 1_000_000;
+
+ @Redirect(
+ method = "handleForgetLevelChunk",
+ at = @At(
+ value = "INVOKE",
+ target = "Lnet/minecraft/client/multiplayer/ClientChunkCache;drop(Lnet/minecraft/world/level/ChunkPos;)V"
+ )
+ )
+ private void aeronauticscompat$skipPlotChunkDrop(ClientChunkCache cache, ChunkPos chunkPos) {
+ if (Math.abs(chunkPos.x) > PLOT_CHUNK_THRESHOLD || Math.abs(chunkPos.z) > PLOT_CHUNK_THRESHOLD) {
+ return;
+ }
+ cache.drop(chunkPos);
+ }
+}
blob - 6db1cf80e7a659514d7f374979f6f454fa78a59b
blob + 8d2da57a4aae63c1fb37b53472aaa3dc719a89a9
--- src/main/resources/aeronauticscompat.mixins.json
+++ src/main/resources/aeronauticscompat.mixins.json
"client": [
"etched.EtchedStopListeningSoundMixin",
"waterframes.WaterFramesSableDistanceMixin",
- "pneumaticcraft.MovingSoundMinigunMixin"
+ "pneumaticcraft.MovingSoundMinigunMixin",
+ "sable.ClientPacketListenerMixin"
],
"injectors": {
"defaultRequire": 1
blob - 2ffa83779f29f1c1e8c0d53554d5cbe667a0bb01
blob + 00dcf5a434c21254ed8390f063265781066d0876
--- src/main/resources/data/sable/tags/entity_type/retain_in_sub_level.json
+++ src/main/resources/data/sable/tags/entity_type/retain_in_sub_level.json
{"id": "immersive_paintings:painting", "required": false},
{"id": "immersive_paintings:glow_painting", "required": false},
{"id": "immersive_paintings:graffiti", "required": false},
- {"id": "immersive_paintings:glow_graffiti", "required": false}
+ {"id": "immersive_paintings:glow_graffiti", "required": false},
+ {"id": "sleep_tight:bed_entity", "required": false}
]
}