Updated CustomNPCs & VariedCommodities compatibility to 1.12.2
This commit is contained in:
parent
c14f2ebfc6
commit
0c30cda74a
3 changed files with 344 additions and 85 deletions
|
@ -13,24 +13,25 @@ import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class CompatCustomNpcs implements IBlockTransformer {
|
public class CompatCustomNPCs implements IBlockTransformer {
|
||||||
|
|
||||||
private static Class<?> classBlockBlood;
|
// CustomNPCs
|
||||||
private static Class<?> classBlockBorder;
|
private static Class<?> classBlockBorder;
|
||||||
private static Class<?> classBlockCarpentryBench;
|
private static Class<?> classBlockCarpentryBench;
|
||||||
|
private static Class<?> classBlockBuilder;
|
||||||
private static Class<?> classBlockMailbox;
|
private static Class<?> classBlockMailbox;
|
||||||
private static Class<?> classTileColorable;
|
private static Class<?> classBlockNpcRedstone;
|
||||||
private static Class<?> classTileBigSign;
|
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
try {
|
try {
|
||||||
classBlockBlood = Class.forName("noppes.npcs.blocks.BlockBlood");
|
// customNPC
|
||||||
classBlockBorder = Class.forName("noppes.npcs.blocks.BlockBorder");
|
classBlockBorder = Class.forName("noppes.npcs.blocks.BlockBorder");
|
||||||
|
classBlockBuilder = Class.forName("noppes.npcs.blocks.BlockBuilder");
|
||||||
classBlockCarpentryBench = Class.forName("noppes.npcs.blocks.BlockCarpentryBench");
|
classBlockCarpentryBench = Class.forName("noppes.npcs.blocks.BlockCarpentryBench");
|
||||||
classBlockMailbox = Class.forName("noppes.npcs.blocks.BlockMailbox");
|
classBlockMailbox = Class.forName("noppes.npcs.blocks.BlockMailbox");
|
||||||
classTileColorable = Class.forName("noppes.npcs.blocks.tiles.TileColorable");
|
classBlockNpcRedstone = Class.forName("noppes.npcs.blocks.BlockNpcRedstone");
|
||||||
classTileBigSign = Class.forName("noppes.npcs.blocks.tiles.TileBigSign");
|
|
||||||
WarpDriveConfig.registerBlockTransformer("CustomNpcs", new CompatCustomNpcs());
|
WarpDriveConfig.registerBlockTransformer("CustomNPCs", new CompatCustomNPCs());
|
||||||
} catch(final ClassNotFoundException exception) {
|
} catch(final ClassNotFoundException exception) {
|
||||||
exception.printStackTrace();
|
exception.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -38,12 +39,11 @@ public class CompatCustomNpcs implements IBlockTransformer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isApplicable(final Block block, final int metadata, final TileEntity tileEntity) {
|
public boolean isApplicable(final Block block, final int metadata, final TileEntity tileEntity) {
|
||||||
return classBlockBlood.isInstance(block)
|
return classBlockBorder.isInstance(block)
|
||||||
|| classBlockBorder.isInstance(block)
|
|| classBlockBuilder.isInstance(block)
|
||||||
|| classBlockCarpentryBench.isInstance(block)
|
|| classBlockCarpentryBench.isInstance(block)
|
||||||
|| classBlockMailbox.isInstance(block)
|
|| classBlockMailbox.isInstance(block)
|
||||||
|| classTileColorable.isInstance(tileEntity)
|
|| classBlockNpcRedstone.isInstance(block);
|
||||||
|| classTileBigSign.isInstance(tileEntity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -63,21 +63,36 @@ public class CompatCustomNpcs implements IBlockTransformer {
|
||||||
// nothing to do
|
// nothing to do
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transformation handling required:
|
// Transformation handling required as of CustomNPCs_1.12.2(30Jan19):
|
||||||
// metadata
|
// noppes.npcs.blocks.BlockInterface
|
||||||
// noppes.npcs.blocks.BlockBlood Blood 0 1 2 3
|
// noppes.npcs.blocks.BlockBorder
|
||||||
// noppes.npcs.blocks.BlockCarpentryBench Anvil 0 1 2 3 4 5 6 7
|
// meta ROTATION 0 1 2 3
|
||||||
// noppes.npcs.blocks.BlockMailbox Mailbox 0 1 2 3 4 5 6 7
|
// int BorderRotation 0 1 2 3
|
||||||
//
|
// noppes.npcs.blocks.BlockBuilder
|
||||||
// NBT tags
|
// meta ROTATION 0 1 2 3
|
||||||
// noppes.npcs.blocks.BlockBorder BorderRotation (integer) 0 1 2 3
|
// int Rotation (relative to block => ignore it?)
|
||||||
// noppes.npcs.blocks.tiles.TileColorable BannerRotation (integer) 0 1 2 3 mostly, but not limited to noppes.npcs.blocks.BlockRotated
|
// noppes.npcs.blocks.BlockCarpentryBench
|
||||||
// noppes.npcs.blocks.tiles.TileBigSign SignRotation (integer) 0 1 2 3
|
// meta ROTATION 0 1 2 3
|
||||||
|
// noppes.npcs.blocks.BlockCopy
|
||||||
|
// meta -none-
|
||||||
|
// noppes.npcs.blocks.BlockMailbox
|
||||||
|
// meta ROTATION 0 1 2 3 | TYPE 0 4 8
|
||||||
|
// noppes.npcs.BlockNpcRedstone
|
||||||
|
// meta -none-
|
||||||
|
// int BlockOnRangeX/BlockOnRangeZ
|
||||||
|
// int BlockOffRangeX/BlockOffRangeZ
|
||||||
|
// noppes.npcs.blocks.BlockWaypoint
|
||||||
|
// meta -none-
|
||||||
|
|
||||||
|
// BlockDoor
|
||||||
|
// noppes.npcs.blocks.BlockNpcDoorInterface
|
||||||
|
// noppes.npcs.blocks.BlockScriptedDoor
|
||||||
|
// meta (same as vanilla)
|
||||||
|
|
||||||
|
|
||||||
// ----------------------------------------- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
|
// ----------------------------------------- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
|
||||||
private static final int[] mrot4 = { 1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
|
private static final int[] mrot4 = { 1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
|
||||||
private static final int[] mrot8 = { 1, 2, 3, 0, 5, 6, 7, 4, 8, 9, 10, 11, 12, 13, 14, 15 };
|
private static final int[] mrotMailbox = { 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 12, 13, 14, 15 };
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int rotate(final Block block, final int metadata, final NBTTagCompound nbtTileEntity, final ITransformation transformation) {
|
public int rotate(final Block block, final int metadata, final NBTTagCompound nbtTileEntity, final ITransformation transformation) {
|
||||||
|
@ -86,7 +101,48 @@ public class CompatCustomNpcs implements IBlockTransformer {
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (classBlockBlood.isInstance(block)) {
|
if ( nbtTileEntity != null
|
||||||
|
&& nbtTileEntity.hasKey("BorderRotation") ) {
|
||||||
|
final int BorderRotation = nbtTileEntity.getInteger("BorderRotation");
|
||||||
|
switch (rotationSteps) {
|
||||||
|
case 1:
|
||||||
|
nbtTileEntity.setInteger("BorderRotation", mrot4[BorderRotation]);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
nbtTileEntity.setInteger("BorderRotation", mrot4[mrot4[BorderRotation]]);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
nbtTileEntity.setInteger("BorderRotation", mrot4[mrot4[mrot4[BorderRotation]]]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( nbtTileEntity != null
|
||||||
|
&& nbtTileEntity.hasKey("BlockOnRangeX") ) {
|
||||||
|
final int BlockOnRangeX = nbtTileEntity.getInteger("BlockOnRangeX");
|
||||||
|
final int BlockOnRangeZ = nbtTileEntity.getInteger("BlockOnRangeZ");
|
||||||
|
final int BlockOffRangeX = nbtTileEntity.getInteger("BlockOffRangeX");
|
||||||
|
final int BlockOffRangeZ = nbtTileEntity.getInteger("BlockOffRangeZ");
|
||||||
|
switch (rotationSteps) {
|
||||||
|
case 1:
|
||||||
|
case 3:
|
||||||
|
nbtTileEntity.setInteger("BlockOnRangeX", BlockOnRangeZ);
|
||||||
|
nbtTileEntity.setInteger("BlockOnRangeZ", BlockOnRangeX);
|
||||||
|
nbtTileEntity.setInteger("BlockOffRangeX", BlockOffRangeZ);
|
||||||
|
nbtTileEntity.setInteger("BlockOffRangeZ", BlockOffRangeX);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ( classBlockBorder.isInstance(block)
|
||||||
|
|| classBlockBuilder.isInstance(block)
|
||||||
|
|| classBlockCarpentryBench.isInstance(block) ) {
|
||||||
switch (rotationSteps) {
|
switch (rotationSteps) {
|
||||||
case 1:
|
case 1:
|
||||||
return mrot4[metadata];
|
return mrot4[metadata];
|
||||||
|
@ -98,66 +154,14 @@ public class CompatCustomNpcs implements IBlockTransformer {
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( classBlockCarpentryBench.isInstance(block)
|
if (classBlockMailbox.isInstance(block)) {
|
||||||
|| classBlockMailbox.isInstance(block) ) {
|
|
||||||
switch (rotationSteps) {
|
switch (rotationSteps) {
|
||||||
case 1:
|
case 1:
|
||||||
return mrot8[metadata];
|
return mrotMailbox[metadata];
|
||||||
case 2:
|
case 2:
|
||||||
return mrot8[mrot8[metadata]];
|
return mrotMailbox[mrotMailbox[metadata]];
|
||||||
case 3:
|
case 3:
|
||||||
return mrot8[mrot8[mrot8[metadata]]];
|
return mrotMailbox[mrotMailbox[mrotMailbox[metadata]]];
|
||||||
default:
|
|
||||||
return metadata;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nbtTileEntity.hasKey("BannerRotation")) {
|
|
||||||
final int BannerRotation = nbtTileEntity.getInteger("BannerRotation");
|
|
||||||
switch (rotationSteps) {
|
|
||||||
case 1:
|
|
||||||
nbtTileEntity.setInteger("BannerRotation", mrot4[BannerRotation]);
|
|
||||||
return metadata;
|
|
||||||
case 2:
|
|
||||||
nbtTileEntity.setInteger("BannerRotation", mrot4[mrot4[BannerRotation]]);
|
|
||||||
return metadata;
|
|
||||||
case 3:
|
|
||||||
nbtTileEntity.setInteger("BannerRotation", mrot4[mrot4[mrot4[BannerRotation]]]);
|
|
||||||
return metadata;
|
|
||||||
default:
|
|
||||||
return metadata;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nbtTileEntity.hasKey("BorderRotation")) {
|
|
||||||
final int BorderRotation = nbtTileEntity.getInteger("BorderRotation");
|
|
||||||
switch (rotationSteps) {
|
|
||||||
case 1:
|
|
||||||
nbtTileEntity.setInteger("BorderRotation", mrot4[BorderRotation]);
|
|
||||||
return metadata;
|
|
||||||
case 2:
|
|
||||||
nbtTileEntity.setInteger("BorderRotation", mrot4[mrot4[BorderRotation]]);
|
|
||||||
return metadata;
|
|
||||||
case 3:
|
|
||||||
nbtTileEntity.setInteger("BorderRotation", mrot4[mrot4[mrot4[BorderRotation]]]);
|
|
||||||
return metadata;
|
|
||||||
default:
|
|
||||||
return metadata;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (nbtTileEntity.hasKey("SignRotation")) {
|
|
||||||
final int SignRotation = nbtTileEntity.getInteger("SignRotation");
|
|
||||||
switch (rotationSteps) {
|
|
||||||
case 1:
|
|
||||||
nbtTileEntity.setInteger("SignRotation", mrot4[SignRotation]);
|
|
||||||
return metadata;
|
|
||||||
case 2:
|
|
||||||
nbtTileEntity.setInteger("SignRotation", mrot4[mrot4[SignRotation]]);
|
|
||||||
return metadata;
|
|
||||||
case 3:
|
|
||||||
nbtTileEntity.setInteger("SignRotation", mrot4[mrot4[mrot4[SignRotation]]]);
|
|
||||||
return metadata;
|
|
||||||
default:
|
default:
|
||||||
return metadata;
|
return metadata;
|
||||||
}
|
}
|
249
src/main/java/cr0s/warpdrive/compat/CompatVariedCommodities.java
Normal file
249
src/main/java/cr0s/warpdrive/compat/CompatVariedCommodities.java
Normal file
|
@ -0,0 +1,249 @@
|
||||||
|
package cr0s.warpdrive.compat;
|
||||||
|
|
||||||
|
import cr0s.warpdrive.api.IBlockTransformer;
|
||||||
|
import cr0s.warpdrive.api.ITransformation;
|
||||||
|
import cr0s.warpdrive.api.WarpDriveText;
|
||||||
|
import cr0s.warpdrive.config.WarpDriveConfig;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.nbt.NBTBase;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class CompatVariedCommodities implements IBlockTransformer {
|
||||||
|
|
||||||
|
// Varied commodities
|
||||||
|
private static Class<?> classBlockBasicContainer;
|
||||||
|
private static Class<?> classBlockBlood;
|
||||||
|
private static Class<?> classBlockCarpentryBench;
|
||||||
|
|
||||||
|
public static void register() {
|
||||||
|
try {
|
||||||
|
// varied commodities
|
||||||
|
classBlockBasicContainer = Class.forName("noppes.vc.blocks.BlockBasicContainer");
|
||||||
|
classBlockBlood = Class.forName("noppes.vc.blocks.BlockBlood");
|
||||||
|
classBlockCarpentryBench = Class.forName("noppes.vc.blocks.BlockCarpentryBench");
|
||||||
|
|
||||||
|
WarpDriveConfig.registerBlockTransformer("VariedCommodities", new CompatVariedCommodities());
|
||||||
|
} catch(final ClassNotFoundException exception) {
|
||||||
|
exception.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isApplicable(final Block block, final int metadata, final TileEntity tileEntity) {
|
||||||
|
return classBlockBasicContainer.isInstance(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isJumpReady(final Block block, final int metadata, final TileEntity tileEntity, final WarpDriveText reason) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTBase saveExternals(final World world, final int x, final int y, final int z, final Block block, final int blockMeta, final TileEntity tileEntity) {
|
||||||
|
// nothing to do
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeExternals(final World world, final int x, final int y, final int z,
|
||||||
|
final Block block, final int blockMeta, final TileEntity tileEntity) {
|
||||||
|
// nothing to do
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Transformation handling required:
|
||||||
|
noppes.vc.blocks.BlockBasicContainer
|
||||||
|
noppes.vc.blocks.BlockBanner / variedcommodities:banner
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockBigSign / variedcommodities:big_sign
|
||||||
|
int SignRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockBlood / variedcommodities:blood_block
|
||||||
|
bool HideNorth
|
||||||
|
bool HideSouth
|
||||||
|
bool HideEast
|
||||||
|
bool HideWest
|
||||||
|
int Rotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockCarpentryBench / variedcommodities:carpentry_bench
|
||||||
|
meta 0 1 2 3 / 4 5 6 7
|
||||||
|
noppes.vc.blocks.BlockCouchWood / variedcommodities:couch_wood
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockCouchWool / variedcommodities:couch_wool
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockTallLamp / variedcommodities:tall_lamp
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockTombstone / variedcommodities:tombstone
|
||||||
|
int SignRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockTrading / variedcommodities:trading_block
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockWallBanner / variedcommodities:wall_banner
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
|
||||||
|
noppes.vc.blocks.BlockBasicRotated
|
||||||
|
noppes.vc.blocks.BlockBarrel / variedcommodities:barrel
|
||||||
|
int BannerRotation 0 2 4 6 / 1 3 5 7
|
||||||
|
noppes.vc.blocks.BlockBasicLightable
|
||||||
|
BlockCampfire / variedcommodities:campfire
|
||||||
|
int BannerRotation 0 1 2 3 4 5 6 7
|
||||||
|
BlockCandle / variedcommodities:candle
|
||||||
|
int BannerRotation 0 1 2 3 4 5 6 7
|
||||||
|
BlockLamp / variedcommodities:lamp
|
||||||
|
int BannerRotation 0 1 2 3 4 5 6 7
|
||||||
|
noppes.vc.blocks.BlockBasicTrigger
|
||||||
|
BlockPedestal / variedcommodities:pedestal
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
BlockWeaponRack / variedcommodities:weapon_rack
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockBeam / variedcommodities:beam
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockBook / variedcommodities:book
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockChair / variedcommodities:chair
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockCrate / variedcommodities:crate
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockShelf / variedcommodities:shelf
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockSign / variedcommodities:sign
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockStool / variedcommodities:stool
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
noppes.vc.blocks.BlockTable / variedcommodities:table always 2 ?
|
||||||
|
int BannerRotation 0 1 2 3
|
||||||
|
|
||||||
|
No handling required:
|
||||||
|
noppes.vc.blocks.BlockCrystal
|
||||||
|
noppes.vc.blocks.BlockPlaceholder
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ----------------------------------------- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
|
||||||
|
private static final int[] mrotCarpentryBench = { 1, 2, 3, 0, 5, 6, 7, 4, 8, 9, 10, 11, 12, 13, 14, 15 };
|
||||||
|
private static final int[] rot4 = { 1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
|
||||||
|
private static final int[] rot8 = { 2, 3, 4, 5, 6, 7, 0, 1, 8, 9, 10, 11, 12, 13, 14, 15 };
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int rotate(final Block block, final int metadata, final NBTTagCompound nbtTileEntity, final ITransformation transformation) {
|
||||||
|
final byte rotationSteps = transformation.getRotationSteps();
|
||||||
|
if (rotationSteps == 0) {
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BannerRotation NBT with no metadata change
|
||||||
|
if ( nbtTileEntity != null
|
||||||
|
&& nbtTileEntity.hasKey("BannerRotation") ) {
|
||||||
|
// get the rotation matrix
|
||||||
|
final String idTileEntity = nbtTileEntity.getString("id");
|
||||||
|
final int[] rot;
|
||||||
|
switch(idTileEntity) {
|
||||||
|
case "variedcommodities:barrel":
|
||||||
|
case "variedcommodities:campfire":
|
||||||
|
case "variedcommodities:candle":
|
||||||
|
case "variedcommodities:lamp":
|
||||||
|
rot = rot8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
rot = rot4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// apply
|
||||||
|
final int BannerRotation = nbtTileEntity.getInteger("BannerRotation");
|
||||||
|
switch (rotationSteps) {
|
||||||
|
case 1:
|
||||||
|
nbtTileEntity.setInteger("BannerRotation", rot[BannerRotation]);
|
||||||
|
return metadata;
|
||||||
|
case 2:
|
||||||
|
nbtTileEntity.setInteger("BannerRotation", rot[rot[BannerRotation]]);
|
||||||
|
return metadata;
|
||||||
|
case 3:
|
||||||
|
nbtTileEntity.setInteger("BannerRotation", rot[rot[rot[BannerRotation]]]);
|
||||||
|
return metadata;
|
||||||
|
default:
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Carpentry bench is just metadata
|
||||||
|
if (classBlockCarpentryBench.isInstance(block)) {
|
||||||
|
switch (rotationSteps) {
|
||||||
|
case 1:
|
||||||
|
return mrotCarpentryBench[metadata];
|
||||||
|
case 2:
|
||||||
|
return mrotCarpentryBench[mrotCarpentryBench[metadata]];
|
||||||
|
case 3:
|
||||||
|
return mrotCarpentryBench[mrotCarpentryBench[mrotCarpentryBench[metadata]]];
|
||||||
|
default:
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Signs
|
||||||
|
if ( nbtTileEntity != null
|
||||||
|
&& nbtTileEntity.hasKey("SignRotation") ) {
|
||||||
|
final int SignRotation = nbtTileEntity.getInteger("SignRotation");
|
||||||
|
switch (rotationSteps) {
|
||||||
|
case 1:
|
||||||
|
nbtTileEntity.setInteger("SignRotation", rot4[SignRotation]);
|
||||||
|
return metadata;
|
||||||
|
case 2:
|
||||||
|
nbtTileEntity.setInteger("SignRotation", rot4[rot4[SignRotation]]);
|
||||||
|
return metadata;
|
||||||
|
case 3:
|
||||||
|
nbtTileEntity.setInteger("SignRotation", rot4[rot4[rot4[SignRotation]]]);
|
||||||
|
return metadata;
|
||||||
|
default:
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Blood use compass directions
|
||||||
|
if ( classBlockBlood.isInstance(block)
|
||||||
|
&& nbtTileEntity != null ) {
|
||||||
|
final boolean HideNorth = nbtTileEntity.getBoolean("HideNorth");
|
||||||
|
final boolean HideEast = nbtTileEntity.getBoolean("HideEast");
|
||||||
|
final boolean HideSouth = nbtTileEntity.getBoolean("HideSouth");
|
||||||
|
final boolean HideWest = nbtTileEntity.getBoolean("HideWest");
|
||||||
|
final int Rotation = nbtTileEntity.getInteger("Rotation");
|
||||||
|
switch (rotationSteps) {
|
||||||
|
case 1:
|
||||||
|
nbtTileEntity.setBoolean("HideNorth", HideWest );
|
||||||
|
nbtTileEntity.setBoolean("HideEast" , HideNorth);
|
||||||
|
nbtTileEntity.setBoolean("HideSouth", HideEast );
|
||||||
|
nbtTileEntity.setBoolean("HideWest" , HideSouth);
|
||||||
|
nbtTileEntity.setInteger("Rotation", rot4[Rotation]);
|
||||||
|
return metadata;
|
||||||
|
case 2:
|
||||||
|
nbtTileEntity.setBoolean("HideNorth", HideSouth);
|
||||||
|
nbtTileEntity.setBoolean("HideEast" , HideWest );
|
||||||
|
nbtTileEntity.setBoolean("HideSouth", HideNorth);
|
||||||
|
nbtTileEntity.setBoolean("HideWest" , HideEast );
|
||||||
|
nbtTileEntity.setInteger("Rotation", rot4[rot4[Rotation]]);
|
||||||
|
return metadata;
|
||||||
|
case 3:
|
||||||
|
nbtTileEntity.setBoolean("HideNorth", HideEast );
|
||||||
|
nbtTileEntity.setBoolean("HideEast" , HideSouth);
|
||||||
|
nbtTileEntity.setBoolean("HideSouth", HideWest );
|
||||||
|
nbtTileEntity.setBoolean("HideWest" , HideNorth);
|
||||||
|
nbtTileEntity.setInteger("Rotation", rot4[rot4[rot4[Rotation]]]);
|
||||||
|
return metadata;
|
||||||
|
default:
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreExternals(final World world, final BlockPos blockPos,
|
||||||
|
final IBlockState blockState, final TileEntity tileEntity,
|
||||||
|
final ITransformation transformation, final NBTBase nbtBase) {
|
||||||
|
// nothing to do
|
||||||
|
}
|
||||||
|
}
|
|
@ -13,7 +13,7 @@ import cr0s.warpdrive.compat.CompatBotania;
|
||||||
import cr0s.warpdrive.compat.CompatBuildCraft;
|
import cr0s.warpdrive.compat.CompatBuildCraft;
|
||||||
import cr0s.warpdrive.compat.CompatCarpentersBlocks;
|
import cr0s.warpdrive.compat.CompatCarpentersBlocks;
|
||||||
import cr0s.warpdrive.compat.CompatComputerCraft;
|
import cr0s.warpdrive.compat.CompatComputerCraft;
|
||||||
import cr0s.warpdrive.compat.CompatCustomNpcs;
|
import cr0s.warpdrive.compat.CompatCustomNPCs;
|
||||||
import cr0s.warpdrive.compat.CompatDecocraft;
|
import cr0s.warpdrive.compat.CompatDecocraft;
|
||||||
import cr0s.warpdrive.compat.CompatDeepResonance;
|
import cr0s.warpdrive.compat.CompatDeepResonance;
|
||||||
import cr0s.warpdrive.compat.CompatDraconicEvolution;
|
import cr0s.warpdrive.compat.CompatDraconicEvolution;
|
||||||
|
@ -52,6 +52,7 @@ import cr0s.warpdrive.compat.CompatThaumcraft;
|
||||||
import cr0s.warpdrive.compat.CompatThermalDynamics;
|
import cr0s.warpdrive.compat.CompatThermalDynamics;
|
||||||
import cr0s.warpdrive.compat.CompatThermalExpansion;
|
import cr0s.warpdrive.compat.CompatThermalExpansion;
|
||||||
import cr0s.warpdrive.compat.CompatUndergroundBiomes;
|
import cr0s.warpdrive.compat.CompatUndergroundBiomes;
|
||||||
|
import cr0s.warpdrive.compat.CompatVariedCommodities;
|
||||||
import cr0s.warpdrive.compat.CompatWarpDrive;
|
import cr0s.warpdrive.compat.CompatWarpDrive;
|
||||||
import cr0s.warpdrive.compat.CompatWoot;
|
import cr0s.warpdrive.compat.CompatWoot;
|
||||||
import cr0s.warpdrive.compat.CompatYABBA;
|
import cr0s.warpdrive.compat.CompatYABBA;
|
||||||
|
@ -1442,9 +1443,9 @@ public class WarpDriveConfig {
|
||||||
CompatCarpentersBlocks.register();
|
CompatCarpentersBlocks.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean isCustomNpcsLoaded = Loader.isModLoaded("customnpcs");
|
final boolean isCustomNPCsLoaded = Loader.isModLoaded("customnpcs");
|
||||||
if (isCustomNpcsLoaded) {
|
if (isCustomNPCsLoaded) {
|
||||||
CompatCustomNpcs.register();
|
CompatCustomNPCs.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean isDecocraftLoaded = Loader.isModLoaded("props");
|
final boolean isDecocraftLoaded = Loader.isModLoaded("props");
|
||||||
|
@ -1607,6 +1608,11 @@ public class WarpDriveConfig {
|
||||||
CompatUndergroundBiomes.register();
|
CompatUndergroundBiomes.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final boolean isVariedCommoditiesLoaded = Loader.isModLoaded("variedcommodities");
|
||||||
|
if (isVariedCommoditiesLoaded) {
|
||||||
|
CompatVariedCommodities.register();
|
||||||
|
}
|
||||||
|
|
||||||
final boolean isWootloaded = Loader.isModLoaded("woot");
|
final boolean isWootloaded = Loader.isModLoaded("woot");
|
||||||
if (isWootloaded) {
|
if (isWootloaded) {
|
||||||
CompatWoot.register();
|
CompatWoot.register();
|
||||||
|
|
Loading…
Reference in a new issue