Compact Machines compat (#38)

This commit is contained in:
FalsePattern committed 2022-08-25 21:49:32 +02:00
1 parent 39e6b70922
commit 7ff89947ea
5 files changed
+71

No files matched your search

+3
View File
@@ -53,6 +53,9 @@ dependencies {
//CoFH Lib 1.2.1-185
compile(deobfCurse("cofh-lib-220333:2388748"))
//CompactMachines 1.21
compile(deobfCurse("compactmachines-224218:2268575"))
//Dark World 0.2
compile(deobfCurse("darkworld-225075:2225172"))
@@ -0,0 +1,52 @@
package com.falsepattern.endlessids.mixin.mixins.common.compactmachines;
import com.falsepattern.endlessids.mixin.helpers.IChunkMixin;
import com.falsepattern.endlessids.mixin.stubpackage.org.dave.CompactMachines.tileentity.TileEntityMachine;
import org.dave.CompactMachines.handler.ConfigurationHandler;
import org.dave.CompactMachines.machines.tools.CubeTools;
import org.dave.CompactMachines.utility.WorldUtils;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.WorldServer;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.Chunk;
import net.minecraftforge.common.BiomeDictionary;
@Mixin(value = CubeTools.class,
remap = false)
public abstract class CubeToolsMixin {
/**
* @author FalsePattern
* @reason getBiomeArray fix
*/
@Overwrite
public static void setCubeBiome(int coords, BiomeGenBase biome) {
WorldServer machineWorld = MinecraftServer.getServer().worldServerForDimension(ConfigurationHandler.dimensionId);
Chunk chunk = machineWorld.getChunkFromBlockCoords(coords * ConfigurationHandler.cubeDistance, 0);
if (chunk != null && chunk.isChunkLoaded) {
short[] biomeArray = ((IChunkMixin)chunk).getBiomeShortArray();
for(int x = 0; x < 15; ++x) {
for(int z = 0; z < 15; ++z) {
biomeArray[z << 4 | x] = (short)biome.biomeID;
}
}
}
}
/**
* @author FalsePattern
* @reason getBiomeArray fix
*/
@Overwrite
public static BiomeGenBase getMachineBiome(TileEntityMachine machine) {
short[] biomeArray = ((IChunkMixin)machine.getWorldObj().getChunkFromBlockCoords(machine.xCoord, machine.zCoord)).getBiomeShortArray();
int biomeId = biomeArray[(machine.zCoord & 15) << 4 | machine.xCoord & 15];
return biomeId > 0 && biomeId < BiomeGenBase.getBiomeGenArray().length && BiomeDictionary.isBiomeRegistered(biomeId)
? BiomeGenBase.getBiome(biomeId)
: WorldUtils.getBiomeByName(ConfigurationHandler.defaultBiome);
}
}
@@ -99,6 +99,9 @@ public enum Mixin implements IMixin {
//region CoFHLib->common
CoFHLibCofhBlockHelperMixin(Side.COMMON, require(TargetedMod.COFHLIB), "cofhlib.BlockHelperMixin"),
//endregion CoFHLib->common
//region CompactMachines->common
CMCubeToolsMixin(Side.COMMON, require(TargetedMod.COMPACTMACHINES), "compactmachines.CubeToolsMixin"),
//endregion CompactMachines->common
//region DarkWorld->common
DarkWorldModBiomesMixin(Side.COMMON, require(TargetedMod.DARKWORLD), "darkworld.ModBiomesMixin"),
//endregion DarkWorld->common
@@ -20,6 +20,7 @@ public enum TargetedMod implements ITargetedMod {
BIOMEWAND("Biome Wand", true, startsWith("1.7.10-biome-wand-").or(startsWith("biome-wand"))),
BUILDCRAFT("BuildCraft", true, startsWith("buildcraft-")),
COFHLIB("CoFH Lib", true, startsWith("cofhlib-")),
COMPACTMACHINES("Compact Machines", true, startsWith("compactmachines-")),
DARKWORLD("Dark World", true, startsWith("darkworld-")),
DRAGONAPI("DragonAPI", false, startsWith("dragonapi")),
EB("Enhanced Biomes", true, startsWith("Enhanced Biomes").or(startsWith("enhancedbiomes"))),
@@ -0,0 +1,12 @@
package com.falsepattern.endlessids.mixin.stubpackage.org.dave.CompactMachines.tileentity;
import net.minecraft.world.World;
public class TileEntityMachine {
public World getWorldObj()
{
return null;
}
public int xCoord;
public int zCoord;
}