mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-18 06:40:55 +00:00
add NetherFossilOptimization
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
|||||||
|
package com.dfsek.terra.fabric.mixin.fix;
|
||||||
|
|
||||||
|
import com.dfsek.terra.fabric.generation.FabricChunkGeneratorWrapper;
|
||||||
|
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
|
import net.minecraft.block.Blocks;
|
||||||
|
import net.minecraft.structure.NetherFossilGenerator;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Direction;
|
||||||
|
import net.minecraft.util.math.random.ChunkRandom;
|
||||||
|
import net.minecraft.world.EmptyBlockView;
|
||||||
|
import net.minecraft.world.gen.HeightContext;
|
||||||
|
import net.minecraft.world.gen.chunk.VerticalBlockSample;
|
||||||
|
import net.minecraft.world.gen.heightprovider.HeightProvider;
|
||||||
|
import net.minecraft.world.gen.structure.NetherFossilStructure;
|
||||||
|
import net.minecraft.world.gen.structure.Structure;
|
||||||
|
import net.minecraft.world.gen.structure.Structure.Context;
|
||||||
|
import net.minecraft.world.gen.structure.Structure.StructurePosition;
|
||||||
|
import org.spongepowered.asm.mixin.Final;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable fossil generation in Terra worlds, as they are very expensive due to consistently triggering cache misses.
|
||||||
|
*
|
||||||
|
* Currently, on Fabric, Terra cannot be specified as a Nether generator. TODO: logic to turn fossils back on if chunk generator is in nether.
|
||||||
|
*/
|
||||||
|
@Mixin(NetherFossilStructure.class)
|
||||||
|
public class NetherFossilOptimization {
|
||||||
|
@Inject(method = "getStructurePosition", at = @At("HEAD"), cancellable = true)
|
||||||
|
public void injectFossilPositions(Context context, CallbackInfoReturnable<Optional<StructurePosition>> cir) {
|
||||||
|
if(context.chunkGenerator() instanceof FabricChunkGeneratorWrapper) {
|
||||||
|
cir.setReturnValue(Optional.empty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
"cache.ChunkRegionMixin",
|
"cache.ChunkRegionMixin",
|
||||||
"cache.ProtoChunkMixin",
|
"cache.ProtoChunkMixin",
|
||||||
"compat.GenerationSettingsFloraFeaturesMixin",
|
"compat.GenerationSettingsFloraFeaturesMixin",
|
||||||
|
"fix.NetherFossilOptimization",
|
||||||
"implementations.BiomeMixin",
|
"implementations.BiomeMixin",
|
||||||
"implementations.HandleImplementationMixin",
|
"implementations.HandleImplementationMixin",
|
||||||
"implementations.block.BlockMixin",
|
"implementations.block.BlockMixin",
|
||||||
|
|||||||
Reference in New Issue
Block a user