Use ObjectHolder's for IE items and blocks

This commit is contained in:
malte0811 2018-07-16 18:53:32 +02:00
parent 71716a722e
commit 17598cc9e9
16 changed files with 147 additions and 64 deletions

View file

@ -0,0 +1,55 @@
/*
* This file is part of Industrial Wires.
* Copyright (C) 2016-2018 malte0811
* Industrial Wires is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* Industrial Wires is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Industrial Wires. If not, see <http://www.gnu.org/licenses/>.
*/
package malte0811.industrialWires;
import blusunrize.immersiveengineering.ImmersiveEngineering;
import blusunrize.immersiveengineering.common.blocks.BlockIEBase;
import blusunrize.immersiveengineering.common.blocks.BlockTypes_MetalsIE;
import blusunrize.immersiveengineering.common.blocks.metal.*;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;
public class IEObjects {
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":metal_decoration0")
public static BlockIEBase<BlockTypes_MetalDecoration0> blockMetalDecoration0 = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":metal_decoration1")
public static BlockIEBase<BlockTypes_MetalDecoration1> blockMetalDecoration1 = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":metal_decoration2")
public static BlockIEBase<BlockTypes_MetalDecoration2> blockMetalDecoration2 = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":metal_device0")
public static BlockIEBase<BlockTypes_MetalDevice0> blockMetalDevice0 = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":connector")
public static BlockIEBase<BlockTypes_Connector> blockConnectors = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":storage")
public static BlockIEBase<BlockTypes_MetalsIE> blockStorage = nullNotNull();
//ITEMS
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":earmuffs")
public static Item itemEarmuffs = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":material")
public static Item itemMaterial = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":wirecoil")
public static Item itemWireCoil = nullNotNull();
@GameRegistry.ObjectHolder(ImmersiveEngineering.MODID+":tool")
public static Item itemTool = nullNotNull();
// Ugly hack to prevent null warnings
private static <T> T nullNotNull() {
//noinspection ConstantConditions
return null;
}
}

View file

@ -203,6 +203,7 @@ public class IndustrialWires {
proxy.preInit();
Compat.preInit();
MarxOreHandler.preInit();
// This has to run before textures are stitched, i.e. in preInit
MechMBPart.preInit();
}
@ -304,6 +305,7 @@ public class IndustrialWires {
Compat.init();
MarxOreHandler.init();
PanelComponent.init();
MechMBPart.init();
if (hasIC2) {
EUCapability.register();
}

View file

@ -57,8 +57,8 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.*;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
import static malte0811.industrialWires.IEObjects.blockMetalDecoration0;
import static malte0811.industrialWires.IndustrialWires.MMB_BREAKING;
import static malte0811.industrialWires.mech_mb.EUCapability.ENERGY_IC2;
import static malte0811.industrialWires.util.MiscUtils.getOffset;

View file

@ -23,7 +23,6 @@ import blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler;
import blusunrize.immersiveengineering.api.energy.wires.WireType;
import blusunrize.immersiveengineering.api.energy.wires.redstone.IRedstoneConnector;
import blusunrize.immersiveengineering.api.energy.wires.redstone.RedstoneWireNetwork;
import blusunrize.immersiveengineering.common.IEContent;
import blusunrize.immersiveengineering.common.blocks.BlockTypes_MetalsIE;
import blusunrize.immersiveengineering.common.blocks.metal.*;
import blusunrize.immersiveengineering.common.util.Utils;
@ -168,26 +167,26 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
int right = getRight();
int up = offset.getY();
if (forward==0) {
return IEContent.blockMetalDevice0.getDefaultState().withProperty(IEContent.blockMetalDevice0.property, BlockTypes_MetalDevice0.CAPACITOR_HV);
return IEObjects.blockMetalDevice0.getDefaultState().withProperty(IEObjects.blockMetalDevice0.property, BlockTypes_MetalDevice0.CAPACITOR_HV);
} else if (forward==-1) {
return IEContent.blockConnectors.getDefaultState().withProperty(IEContent.blockConnectors.property, BlockTypes_Connector.RELAY_HV)
return IEObjects.blockConnectors.getDefaultState().withProperty(IEObjects.blockConnectors.property, BlockTypes_Connector.RELAY_HV)
.withProperty(IEProperties.FACING_ALL, facing);
} else if (forward==4&&up==0&&right==1) {
return IEContent.blockStorage.getDefaultState().withProperty(IEContent.blockStorage.property, BlockTypes_MetalsIE.STEEL);
return IEObjects.blockStorage.getDefaultState().withProperty(IEObjects.blockStorage.property, BlockTypes_MetalsIE.STEEL);
} else if (forward>0) {
if ((right==0&&up==0)||(right==1&&up==stageCount-1)) {
return IEContent.blockMetalDecoration1.getDefaultState().withProperty(IEContent.blockMetalDecoration1.property, BlockTypes_MetalDecoration1.STEEL_FENCE);
return IEObjects.blockMetalDecoration1.getDefaultState().withProperty(IEObjects.blockMetalDecoration1.property, BlockTypes_MetalDecoration1.STEEL_FENCE);
} else {
return IEContent.blockMetalDecoration2.getDefaultState().withProperty(IEContent.blockMetalDecoration2.property, BlockTypes_MetalDecoration2.STEEL_WALLMOUNT)
return IEObjects.blockMetalDecoration2.getDefaultState().withProperty(IEObjects.blockMetalDecoration2.property, BlockTypes_MetalDecoration2.STEEL_WALLMOUNT)
.withProperty(IEProperties.INT_4, 1-right).withProperty(IEProperties.FACING_ALL, facing.getOpposite());
}
} else if (forward==-2) {
return IEContent.blockMetalDecoration0.getDefaultState().withProperty(IEContent.blockMetalDecoration0.property, BlockTypes_MetalDecoration0.HEAVY_ENGINEERING);
return IEObjects.blockMetalDecoration0.getDefaultState().withProperty(IEObjects.blockMetalDecoration0.property, BlockTypes_MetalDecoration0.HEAVY_ENGINEERING);
} else if (right==0) {
return IEContent.blockConnectors.getDefaultState().withProperty(IEContent.blockConnectors.property, BlockTypes_Connector.CONNECTOR_REDSTONE)
return IEObjects.blockConnectors.getDefaultState().withProperty(IEObjects.blockConnectors.property, BlockTypes_Connector.CONNECTOR_REDSTONE)
.withProperty(IEProperties.FACING_ALL, facing);
} else {
return IEContent.blockConnectors.getDefaultState().withProperty(IEContent.blockConnectors.property, BlockTypes_Connector.CONNECTOR_HV)
return IEObjects.blockConnectors.getDefaultState().withProperty(IEObjects.blockConnectors.property, BlockTypes_Connector.CONNECTOR_HV)
.withProperty(IEProperties.FACING_ALL, facing);
}
}
@ -353,7 +352,7 @@ public class TileEntityMarx extends TileEntityIWMultiblock implements ITickable,
}
if (distSqu<=tinnitusDistSqu && entity instanceof EntityPlayer) {
ItemStack helmet = ((EntityPlayer) entity).inventory.armorInventory.get(3);
boolean earMuff = helmet.getItem()==IEContent.itemEarmuffs;
boolean earMuff = helmet.getItem()==IEObjects.itemEarmuffs;
if (!earMuff&&helmet.hasTagCompound()) {
earMuff = helmet.getTagCompound().hasKey("IE:Earmuffs");
}

View file

@ -59,6 +59,7 @@ import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.oredict.OreDictionary;
import org.apache.commons.lang3.tuple.Pair;
@ -69,6 +70,7 @@ import java.util.Map;
import static malte0811.industrialWires.client.render.TileRenderMechMB.BASE_MODELS;
@Mod.EventBusSubscriber(modid = IndustrialWires.MODID, value = Side.CLIENT)
@SideOnly(Side.CLIENT)
public class ClientEventHandler {
public static boolean shouldScreenshot = false;
@SubscribeEvent(priority = EventPriority.LOW)

View file

@ -16,9 +16,9 @@
package malte0811.industrialWires.client;
import blusunrize.immersiveengineering.api.Lib;
import blusunrize.immersiveengineering.common.IEContent;
import blusunrize.immersiveengineering.common.items.ItemEarmuffs;
import blusunrize.immersiveengineering.common.util.ItemNBTHelper;
import malte0811.industrialWires.IEObjects;
import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.ITickableSound;
import net.minecraft.client.audio.PositionedSound;
@ -72,7 +72,7 @@ public class IWTickableSound extends PositionedSound implements ITickableSound {
ItemStack earmuffs = mc.player.getItemStackFromSlot(EntityEquipmentSlot.HEAD);
if (ItemNBTHelper.hasKey(earmuffs, Lib.NBT_Earmuffs))
earmuffs = ItemNBTHelper.getItemStack(earmuffs, Lib.NBT_Earmuffs);
if (!earmuffs.isEmpty() && IEContent.itemEarmuffs.equals(earmuffs.getItem()) &&
if (!earmuffs.isEmpty() && IEObjects.itemEarmuffs.equals(earmuffs.getItem()) &&
!ItemNBTHelper.getBoolean(earmuffs, "IE:Earmuffs:Cat_" + category.getName())) {
mod = ItemEarmuffs.getVolumeMod(earmuffs);
}

View file

@ -16,8 +16,8 @@
package malte0811.industrialWires.crafting;
import blusunrize.immersiveengineering.api.ApiUtils;
import blusunrize.immersiveengineering.common.IEContent;
import ic2.api.item.IC2Items;
import malte0811.industrialWires.IEObjects;
import malte0811.industrialWires.IndustrialWires;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient;
@ -64,28 +64,28 @@ public final class IC2TRHelper {
case "crafting":
switch (variant) {
case "coil":
stacks.add(new ItemStack(IEContent.blockMetalDecoration0));
stacks.add(new ItemStack(IEObjects.blockMetalDecoration0));
break;
case "alloy":
return new OreIngredient("plateConstantan");
case "electric_motor":
stacks.add(new ItemStack(IEContent.itemMaterial, 1, 27));
stacks.add(new ItemStack(IEObjects.itemMaterial, 1, 27));
break;
case "rubber":
stacks.add(new ItemStack(IEContent.itemMaterial, 1, 13));
stacks.add(new ItemStack(IEObjects.itemMaterial, 1, 13));
break;
}
break;
case "te":
if (variant.equals("mv_transformer")) {
stacks.add(new ItemStack(IEContent.blockConnectors, 1, 7));
stacks.add(new ItemStack(IEObjects.blockConnectors, 1, 7));
}
}
}
if (stacks.size()==0) {
IndustrialWires.logger.info("No ingredient found for "+type+", "+variant);
}
return Ingredient.fromStacks(stacks.toArray(new ItemStack[stacks.size()]));
return Ingredient.fromStacks(stacks.toArray(new ItemStack[0]));
}
public static ItemStack getTRCable(String variant) {

View file

@ -22,8 +22,8 @@ import blusunrize.immersiveengineering.api.crafting.IngredientStack;
import blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler;
import blusunrize.immersiveengineering.api.energy.wires.ImmersiveNetHandler.Connection;
import blusunrize.immersiveengineering.api.energy.wires.WireType;
import blusunrize.immersiveengineering.common.IEContent;
import blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_Connector;
import malte0811.industrialWires.IEObjects;
import malte0811.industrialWires.IndustrialWires;
import malte0811.industrialWires.blocks.IWProperties;
import malte0811.industrialWires.blocks.hv.BlockHVMultiblocks;
@ -56,13 +56,13 @@ import java.util.function.Function;
import java.util.function.Predicate;
import static blusunrize.immersiveengineering.api.IEProperties.*;
import static blusunrize.immersiveengineering.common.IEContent.*;
import static blusunrize.immersiveengineering.common.blocks.BlockTypes_MetalsIE.STEEL;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_Connector.*;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration1.STEEL_FENCE;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration2.STEEL_WALLMOUNT;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDevice0.CAPACITOR_HV;
import static malte0811.industrialWires.IEObjects.*;
import static malte0811.industrialWires.blocks.IWProperties.MarxType.*;
import static malte0811.industrialWires.blocks.hv.BlockTypes_HVMultiblocks.MARX;
import static malte0811.industrialWires.util.MiscUtils.offset;
@ -99,13 +99,13 @@ public class MultiblockMarx implements IMultiblock {
structureStacks[up][1][0] = structureStacks[0][1][1]
= new ItemStack(blockMetalDecoration0, 1, HEAVY_ENGINEERING.getMeta());
for (int i = 4; i < structureStacks[up].length; i++) {
structureStacks[up][i][0] = new ItemStack(IEContent.blockMetalDecoration1, 1, STEEL_FENCE.getMeta());
structureStacks[up][i][0] = new ItemStack(IEObjects.blockMetalDecoration1, 1, STEEL_FENCE.getMeta());
}
structureStacks[up][structureStacks[0].length - 1][1] = new ItemStack(blockStorage, 1, STEEL.getMeta());
} else if (up == 4) {
structureStacks[up][2][0] = structureStacks[up][2][1] = hvRel0Dummy;
for (int i = 4; i < structureStacks[up].length; i++) {
structureStacks[up][i][1] = new ItemStack(IEContent.blockMetalDecoration1, 1, STEEL_FENCE.getMeta());
structureStacks[up][i][1] = new ItemStack(IEObjects.blockMetalDecoration1, 1, STEEL_FENCE.getMeta());
}
}
}
@ -168,9 +168,9 @@ public class MultiblockMarx implements IMultiblock {
};
BiPredicate<BlockPos, Boolean> wallmount = (local, up) -> {
IBlockState b = world.getBlockState(local);
if (b.getBlock()==IEContent.blockMetalDecoration2) {
if (b.getBlock()==IEObjects.blockMetalDecoration2) {
b = b.getActualState(world, local);
if (b.getValue(IEContent.blockMetalDecoration2.property)== STEEL_WALLMOUNT) {
if (b.getValue(IEObjects.blockMetalDecoration2.property)== STEEL_WALLMOUNT) {
int int_4_wanted = up ? 0 : 1;
return b.getValue(IEProperties.INT_4)==int_4_wanted;
}
@ -186,10 +186,10 @@ public class MultiblockMarx implements IMultiblock {
Function<BlockPos, Byte> hvRelayWith = (local) -> {
IBlockState state = world.getBlockState(local);
state = state.getActualState(world, local);
if (state.getBlock() != IEContent.blockConnectors) {
if (state.getBlock() != IEObjects.blockConnectors) {
return (byte)-1;
}
if (state.getValue(IEContent.blockConnectors.property)!= BlockTypes_Connector.RELAY_HV) {
if (state.getValue(IEObjects.blockConnectors.property)!= BlockTypes_Connector.RELAY_HV) {
return (byte)-1;
}
if (state.getValue(FACING_ALL)!=facing) {
@ -214,10 +214,10 @@ public class MultiblockMarx implements IMultiblock {
BiPredicate<BlockPos, BlockTypes_Connector> connNoConns = (local, type) -> {
IBlockState state = world.getBlockState(local);
state = state.getActualState(world, local);
if (state.getBlock() != IEContent.blockConnectors) {
if (state.getBlock() != IEObjects.blockConnectors) {
return false;
}
if (state.getValue(IEContent.blockConnectors.property)!= type) {
if (state.getValue(IEObjects.blockConnectors.property)!= type) {
return false;
}
if (state.getValue(FACING_ALL)!=(facing)) {
@ -383,6 +383,7 @@ public class MultiblockMarx implements IMultiblock {
}
@Override
@SideOnly(Side.CLIENT)
public boolean overwriteBlockRender(ItemStack stack, int iterator) {
IBlockState here = getBlockstateFromStack(-1, stack);
if (stack == hvRel1Dummy) {

View file

@ -16,7 +16,6 @@
package malte0811.industrialWires.mech_mb;
import blusunrize.immersiveengineering.api.MultiblockHandler;
import blusunrize.immersiveengineering.common.IEContent;
import blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0;
import blusunrize.immersiveengineering.common.util.Utils;
import blusunrize.immersiveengineering.common.util.chickenbones.Matrix4;
@ -45,6 +44,8 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3i;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.LoaderState;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@ -55,9 +56,9 @@ import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
import static malte0811.industrialWires.IEObjects.blockMetalDecoration0;
import static malte0811.industrialWires.IndustrialWires.MODID;
import static malte0811.industrialWires.blocks.converter.MechanicalMBBlockType.NO_MODEL;
import static malte0811.industrialWires.util.NBTKeys.TYPE;
@ -86,7 +87,6 @@ public abstract class MechMBPart {
public List<BakedQuad> getRotatingQuads() {
return TileRenderMechMB.BASE_MODELS.get(getRotatingBaseModel())
.getQuads(null, null, 123);
}
@SideOnly(Side.CLIENT)
public abstract ResourceLocation getRotatingBaseModel();
@ -169,6 +169,13 @@ public abstract class MechMBPart {
}
}
public static void init() {
//The old instances don't have block/blockstate references yet
for (String key : REGISTRY.keySet()) {
cacheNewInstance(key);
}
}
public static ResourceLocation getSchematicLocationForPart(Class<? extends MechMBPart> cl) {
String name = REGISTRY.inverse().get(cl);
return getSchematicLocationForPart(name);
@ -218,8 +225,8 @@ public abstract class MechMBPart {
}
public static boolean isValidDefaultCenter(IBlockState state) {
return state.getBlock()== IEContent.blockMetalDecoration0&&
state.getValue(IEContent.blockMetalDecoration0.property)==BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
return state.getBlock()== blockMetalDecoration0&&
state.getValue(blockMetalDecoration0.property)==BlockTypes_MetalDecoration0.HEAVY_ENGINEERING;
}
public static boolean isHeavyEngineering(IBlockState state) {
@ -227,8 +234,8 @@ public abstract class MechMBPart {
}
public static boolean isLightEngineering(IBlockState state) {
return state.getBlock()== IEContent.blockMetalDecoration0&&
state.getValue(IEContent.blockMetalDecoration0.property)==BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
return state.getBlock()== blockMetalDecoration0&&
state.getValue(blockMetalDecoration0.property)==BlockTypes_MetalDecoration0.LIGHT_ENGINEERING;
}
public IBlockState getDefaultShaft() {
@ -241,6 +248,9 @@ public abstract class MechMBPart {
LIGHT_ENGINEERING);
}
protected boolean areBlocksRegistered() {
return Loader.instance().getLoaderState().ordinal()>LoaderState.PREINITIALIZATION.ordinal();
}
public void form(LocalSidedWorld w, Consumer<TileEntityMechMB> initializer) {
world = w;

View file

@ -34,10 +34,12 @@ import static net.minecraft.util.EnumFacing.WEST;
public class MechPartCommutator4Phase extends MechPartCommutator {
{
if (areBlocksRegistered()) {
IBlockState lightEng = getLightEngineering();
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
original.put(new BlockPos(2*i-1, j-1, 0), lightEng);
original.put(new BlockPos(2 * i - 1, j - 1, 0), lightEng);
}
}
}
}

View file

@ -26,10 +26,12 @@ import static net.minecraft.util.math.BlockPos.ORIGIN;
public class MechPartFourCoils extends MechPartSingleCoil {
{
if (areBlocksRegistered()) {
IBlockState coil = getCoil();
original.put(new BlockPos(-1, 0, 0), coil);
original.put(new BlockPos(1, 0, 0), coil);
}
}
@Override
protected double getMaxBuffer() {
return 8*super.getMaxBuffer();

View file

@ -34,10 +34,12 @@ import static net.minecraft.util.EnumFacing.WEST;
public class MechPartFourElectrodes extends MechPartTwoElectrodes {
{
if (areBlocksRegistered()) {
IBlockState lightEng = getLightEngineering();
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
original.put(new BlockPos(2*i-1, j-1, 0), lightEng);
original.put(new BlockPos(2 * i - 1, j - 1, 0), lightEng);
}
}
}
}

View file

@ -27,8 +27,10 @@ import static malte0811.industrialWires.blocks.converter.MechanicalMBBlockType.S
public class MechPartShaft extends MechMBPart {
{
if (areBlocksRegistered()) {
original.put(BlockPos.ORIGIN, getDefaultShaft());
}
}
@Override
public void createMEnergy(MechEnergy e) {}

View file

@ -27,8 +27,8 @@ import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.COIL_LV;
import static malte0811.industrialWires.IEObjects.blockMetalDecoration0;
import static malte0811.industrialWires.mech_mb.Waveform.Phases.get;
import static malte0811.industrialWires.util.NBTKeys.BUFFER_IN;
import static malte0811.industrialWires.util.NBTKeys.BUFFER_OUT;
@ -36,15 +36,17 @@ import static net.minecraft.util.math.BlockPos.ORIGIN;
public class MechPartSingleCoil extends MechMBPart implements IMBPartElectric {
{
if (areBlocksRegistered()) {
IBlockState lightEng = getLightEngineering();
IBlockState coil = getCoil();
for (int y = -1;y<=1;y++) {
for (int y = -1; y <= 1; y++) {
original.put(new BlockPos(-1, y, 0), lightEng);
original.put(new BlockPos(0, y, 0), coil);
original.put(new BlockPos(1, y, 0), lightEng);
}
original.put(ORIGIN, getDefaultShaft());
}
}
private double bufferToMech;
private double bufferToE;

View file

@ -15,11 +15,11 @@
package malte0811.industrialWires.mech_mb;
import blusunrize.immersiveengineering.common.IEContent;
import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IRedstoneOutput;
import blusunrize.immersiveengineering.common.items.ItemIETool;
import blusunrize.immersiveengineering.common.util.ChatUtils;
import blusunrize.immersiveengineering.common.util.Utils;
import malte0811.industrialWires.IEObjects;
import malte0811.industrialWires.IndustrialWires;
import malte0811.industrialWires.blocks.converter.MechanicalMBBlockType;
import malte0811.industrialWires.util.LocalSidedWorld;
@ -42,8 +42,8 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.text.DecimalFormat;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.RS_ENGINEERING;
import static malte0811.industrialWires.IEObjects.blockMetalDecoration0;
import static malte0811.industrialWires.blocks.converter.MechanicalMBBlockType.SPEEDOMETER;
import static net.minecraft.util.EnumFacing.Axis.X;
import static net.minecraft.util.EnumFacing.AxisDirection.NEGATIVE;
@ -55,9 +55,11 @@ public class MechPartSpeedometer extends MechMBPart implements IRedstoneOutput {
private int currentOutputLog = -1;
private double logFactor = 15 / Math.log(speedFor15RS + 1);
{
if (areBlocksRegistered()) {
original.put(ORIGIN, blockMetalDecoration0
.getStateFromMeta(RS_ENGINEERING.getMeta()));
}
}
@Nullable
private MechEnergy energy = null;
@ -160,7 +162,7 @@ public class MechPartSpeedometer extends MechMBPart implements IRedstoneOutput {
@Override
public int interact(@Nonnull EnumFacing side, @Nonnull Vec3i offset, @Nonnull EntityPlayer player, @Nonnull EnumHand hand, @Nonnull ItemStack heldItem) {
if (voltMeter.isEmpty()) {
voltMeter = new ItemStack(IEContent.itemTool, 1, ItemIETool.VOLTMETER_META);
voltMeter = new ItemStack(IEObjects.itemTool, 1, ItemIETool.VOLTMETER_META);
}
if (Utils.isHammer(heldItem)) {
if (!world.isRemote) {

View file

@ -28,16 +28,18 @@ import net.minecraft.util.math.BlockPos;
import java.util.List;
import static blusunrize.immersiveengineering.common.IEContent.blockMetalDecoration0;
import static blusunrize.immersiveengineering.common.blocks.metal.BlockTypes_MetalDecoration0.GENERATOR;
import static malte0811.industrialWires.IEObjects.blockMetalDecoration0;
import static net.minecraft.util.EnumFacing.UP;
import static net.minecraft.util.math.BlockPos.ORIGIN;
public class MechPartTwoElectrodes extends MechPartEnergyIO {
{
if (areBlocksRegistered()) {
original.put(ORIGIN, blockMetalDecoration0.getDefaultState().withProperty(
blockMetalDecoration0.property, GENERATOR));
}
}
@Override
public ResourceLocation getRotatingBaseModel() {