Skip to content

Commit

Permalink
More ModObject work
Browse files Browse the repository at this point in the history
  • Loading branch information
HenryLoenwind committed Oct 19, 2016
1 parent 9fd9c20 commit 4e4cdce
Show file tree
Hide file tree
Showing 10 changed files with 87 additions and 48 deletions.
56 changes: 21 additions & 35 deletions src/main/java/crazypants/enderio/ClientProxy.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import com.enderio.core.common.BlockEnder;
import com.enderio.core.common.vecmath.Vector4f;

import crazypants.enderio.block.BlockSelfResettingLever;
import crazypants.enderio.conduit.render.ConduitBundleRenderManager;
import crazypants.enderio.config.Config;
import crazypants.enderio.diagnostics.DebugCommand;
Expand Down Expand Up @@ -54,7 +53,6 @@
import crazypants.enderio.machine.tank.TileTank;
import crazypants.enderio.machine.transceiver.TileTransceiver;
import crazypants.enderio.machine.transceiver.render.TransceiverRenderer;
import crazypants.enderio.material.ItemFrankenSkull;
import crazypants.enderio.paint.YetaUtil;
import crazypants.enderio.paint.render.PaintRegistry;
import crazypants.enderio.render.registry.ItemModelRegistry;
Expand All @@ -67,6 +65,7 @@
import crazypants.enderio.teleport.telepad.TileTelePad;
import crazypants.enderio.teleport.telepad.render.TelePadSpecialRenderer;
import crazypants.util.ClientUtil;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
Expand All @@ -87,29 +86,18 @@
import net.minecraftforge.fml.relauncher.SideOnly;

import static crazypants.enderio.ModObject.blockCapBank;
import static crazypants.enderio.ModObject.blockDarkIronBars;
import static crazypants.enderio.ModObject.blockDarkSteelAnvil;
import static crazypants.enderio.ModObject.blockDarkSteelLadder;
import static crazypants.enderio.ModObject.blockDecoration1;
import static crazypants.enderio.ModObject.blockDecoration2;
import static crazypants.enderio.ModObject.blockDialingDevice;
import static crazypants.enderio.ModObject.blockElectricLight;
import static crazypants.enderio.ModObject.blockEnchanter;
import static crazypants.enderio.ModObject.blockEnderIo;
import static crazypants.enderio.ModObject.blockEndermanSkull;
import static crazypants.enderio.ModObject.blockExitRail;
import static crazypants.enderio.ModObject.blockFarmStation;
import static crazypants.enderio.ModObject.blockIngotStorage;
import static crazypants.enderio.ModObject.blockKillerJoe;
import static crazypants.enderio.ModObject.blockReinforcedObsidian;
import static crazypants.enderio.ModObject.blockReservoir;
import static crazypants.enderio.ModObject.blockTank;
import static crazypants.enderio.ModObject.blockTravelAnchor;
import static crazypants.enderio.ModObject.blockVacuumChest;
import static crazypants.enderio.ModObject.blockWirelessCharger;
import static crazypants.enderio.ModObject.itemBrokenSpawner;
import static crazypants.enderio.ModObject.itemCoordSelector;
import static crazypants.enderio.ModObject.itemFrankenSkull;

@SideOnly(Side.CLIENT)
public class ClientProxy extends CommonProxy {
Expand Down Expand Up @@ -166,22 +154,27 @@ public void preInit(FMLPreInitializationEvent event) {
// Items of blocks that use smart rendering
SmartModelAttacher.registerBlockItemModels();

// Blocks
if (blockDarkIronBars.getBlock() != null) {
ClientUtil.registerRenderer(Item.getItemFromBlock(blockDarkIronBars.getBlock()), ModObject.blockDarkIronBars.getUnlocalisedName());
}
registerRenderers((IHaveRenderers) blockDarkSteelAnvil.getBlock());
if (blockDarkSteelLadder.getBlock() != null) {
ClientUtil.registerRenderer(Item.getItemFromBlock(blockDarkSteelLadder.getBlock()), ModObject.blockDarkSteelLadder.getUnlocalisedName());
}
for (BlockSelfResettingLever b : BlockSelfResettingLever.getBlocks()) {
ClientUtil.registerRenderer(Item.getItemFromBlock(b), b.getName());
/*
* Most blocks register themselves with the SmartModelAttacher which will also handle their items. Those that don't need to implement IHaveRenderers and
* have their items handled here.
*
* Items that do _not_ belong to a block are handled here by either having the item implement IHaveRenderers or by registering the default renderer.
*/
for (ModObject mo : ModObject.values()) {
final Block block = mo.getBlock();
if (block instanceof IHaveRenderers) {
((IHaveRenderers) block).registerRenderers();
} else if (block == null) {
final Item item = mo.getItem();
if (item instanceof IHaveRenderers) {
((IHaveRenderers) item).registerRenderers();
} else if (item != null) {
ClientUtil.registerRenderer(item, mo.getUnlocalisedName());
}
}
}
registerRenderers((IHaveRenderers) blockIngotStorage.getBlock());
registerRenderers((IHaveRenderers) blockEndermanSkull.getBlock());
registerRenderers((IHaveRenderers) blockElectricLight.getBlock());
registerRenderers((IHaveRenderers) blockDecoration1.getBlock());
registerRenderers((IHaveRenderers) blockDecoration2.getBlock());

// Blocks

ClientUtil.registerDefaultItemRenderer((BlockEnder<?>) blockTravelAnchor.getBlock());
ClientUtil.registerDefaultItemRenderer((BlockEnder<?>) blockWirelessCharger.getBlock());
Expand All @@ -192,7 +185,6 @@ public void preInit(FMLPreInitializationEvent event) {
//ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory"));


ClientUtil.registerRenderer(Item.getItemFromBlock(blockExitRail.getBlock()), ModObject.blockExitRail.getUnlocalisedName());
ObeliskRenderManager.INSTANCE.registerRenderers();

// Tile Renderers
Expand Down Expand Up @@ -249,9 +241,6 @@ public void preInit(FMLPreInitializationEvent event) {
EnderIO.itemAlloy.registerRenderers();
EnderIO.itemBasicCapacitor.registerRenderers();
EnderIO.itemPowderIngot.registerRenderers();
if (itemFrankenSkull.getItem() != null) {
((ItemFrankenSkull) itemFrankenSkull.getItem()).registerRenderers();
}
registerRenderers(EnderIO.itemMachinePart);
registerRenderers(EnderIO.itemMaterial);
registerRenderers(EnderIO.itemEnderFood);
Expand All @@ -264,18 +253,15 @@ public void preInit(FMLPreInitializationEvent event) {
registerRenderers(EnderIO.itemPowerConduit);
registerRenderers(EnderIO.itemLiquidConduit);
registerRenderers(EnderIO.itemItemConduit);
registerRenderers(EnderIO.itemRedstoneConduit);
registerRenderers(EnderIO.itemOCConduit);
ClientUtil.registerRenderer(EnderIO.itemlocationPrintout, ItemLocationPrintout.NAME);
ClientUtil.registerRenderer(EnderIO.itemTravelStaff, ModObject.itemTravelStaff.getUnlocalisedName());
ClientUtil.registerRenderer(EnderIO.itemRodOfReturn, ModObject.itemRodOfReturn.getUnlocalisedName());
ClientUtil.registerRenderer(EnderIO.itemXpTransfer, ModObject.itemXpTransfer.getUnlocalisedName());
ClientUtil.registerRenderer(itemBrokenSpawner.getItem(), ModObject.itemBrokenSpawner.getUnlocalisedName());
ClientUtil.registerRenderer(EnderIO.itemExistingItemFilter, ModObject.itemExistingItemFilter.getUnlocalisedName());
ClientUtil.registerRenderer(EnderIO.itemModItemFilter, ModObject.itemModItemFilter.getUnlocalisedName());
ClientUtil.registerRenderer(EnderIO.itemPowerItemFilter, ModObject.itemPowerItemFilter.getUnlocalisedName());
ClientUtil.registerRenderer(EnderIO.itemConduitProbe, ModObject.itemConduitProbe.getUnlocalisedName());
ClientUtil.registerRenderer(itemCoordSelector.getItem(), ModObject.itemCoordSelector.getUnlocalisedName());
DarkSteelItems.onClientPreInit();
Buckets.registerRenderers();
EnderIO.itemRemoteInvAccess.registerRenderers();
Expand Down
3 changes: 0 additions & 3 deletions src/main/java/crazypants/enderio/EnderIO.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import crazypants.enderio.conduit.oc.ItemOCConduit;
import crazypants.enderio.conduit.power.ItemPowerConduit;
import crazypants.enderio.conduit.redstone.InsulatedRedstoneConduit;
import crazypants.enderio.conduit.redstone.ItemRedstoneConduit;
import crazypants.enderio.config.Config;
import crazypants.enderio.enchantment.Enchantments;
import crazypants.enderio.enderface.ItemEnderface;
Expand Down Expand Up @@ -130,7 +129,6 @@ public class EnderIO {
public static ItemLocationPrintout itemlocationPrintout;

// // Conduits
public static ItemRedstoneConduit itemRedstoneConduit;
public static ItemPowerConduit itemPowerConduit;
public static ItemLiquidConduit itemLiquidConduit;
public static ItemItemConduit itemItemConduit;
Expand Down Expand Up @@ -180,7 +178,6 @@ public void preInit(FMLPreInitializationEvent event) {

ModObject.preInit(event);

itemRedstoneConduit = ItemRedstoneConduit.create();
itemPowerConduit = ItemPowerConduit.create();
itemLiquidConduit = ItemLiquidConduit.create();
itemItemConduit = ItemItemConduit.create();
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/crazypants/enderio/ModObject.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import crazypants.enderio.block.BlockSelfResettingLever;
import crazypants.enderio.conduit.BlockConduitBundle;
import crazypants.enderio.conduit.facade.BlockConduitFacade;
import crazypants.enderio.conduit.redstone.ItemRedstoneConduit;
import crazypants.enderio.enderface.BlockEnderIO;
import crazypants.enderio.item.skull.BlockEndermanSkull;
import crazypants.enderio.machine.alloy.BlockAlloySmelter;
Expand Down Expand Up @@ -81,7 +82,7 @@ public enum ModObject implements IModObject {
blockConduitBundle(BlockConduitBundle.class),
blockConduitFacade(BlockConduitFacade.class),
itemConduitFacade,
itemRedstoneConduit,
itemRedstoneConduit(ItemRedstoneConduit.class),
itemItemConduit,
itemGasConduit,
itemMEConduit,
Expand Down Expand Up @@ -281,6 +282,7 @@ protected void create() {
item = (Item)obj;
} else {
block = (Block)obj;
item = Item.getItemFromBlock(block);
}
}

Expand Down
12 changes: 11 additions & 1 deletion src/main/java/crazypants/enderio/block/BlockDarkSteelLadder.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
import com.enderio.core.api.client.gui.IResourceTooltipProvider;

import crazypants.enderio.EnderIOTab;
import crazypants.enderio.IHaveRenderers;
import crazypants.enderio.ModObject;
import crazypants.enderio.config.Config;
import crazypants.util.ClientUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLadder;
import net.minecraft.block.SoundType;
Expand All @@ -18,8 +20,10 @@
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class BlockDarkSteelLadder extends BlockLadder implements IResourceTooltipProvider {
public class BlockDarkSteelLadder extends BlockLadder implements IResourceTooltipProvider, IHaveRenderers {

public static BlockDarkSteelLadder create() {
BlockDarkSteelLadder res = new BlockDarkSteelLadder();
Expand Down Expand Up @@ -71,4 +75,10 @@ public String getUnlocalizedNameForTooltip(ItemStack itemStack) {
return getUnlocalizedName();
}

@Override
@SideOnly(Side.CLIENT)
public void registerRenderers() {
ClientUtil.registerDefaultItemRenderer(ModObject.blockDarkSteelLadder);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,29 @@
import javax.annotation.Nullable;

import crazypants.enderio.EnderIOTab;
import crazypants.enderio.IHaveRenderers;
import crazypants.enderio.Log;
import crazypants.enderio.ModObject;
import crazypants.util.ClientUtil;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLever;
import net.minecraft.block.SoundType;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import static crazypants.enderio.config.Config.leversEnabled;

public class BlockSelfResettingLever extends BlockLever {
public class BlockSelfResettingLever extends BlockLever implements IHaveRenderers {

private static List<Integer> delays = null;
private static List<BlockSelfResettingLever> blocks = null;
Expand All @@ -46,7 +52,7 @@ public BlockSelfResettingLever(String name, int delay) {
setRegistryName(name);
}

public static void create() {
public static Block create() {
getLevers();
blocks = new ArrayList<BlockSelfResettingLever>();
for (Integer value : delays) {
Expand All @@ -55,6 +61,7 @@ public static void create() {
GameRegistry.register(new ItemBlock(GameRegistry.register(lever)).setRegistryName(name));
blocks.add(lever);
}
return blocks.isEmpty() ? null : blocks.get(0);
}

public static List<Integer> getLevers() {
Expand Down Expand Up @@ -103,4 +110,12 @@ public void updateTick(World world, BlockPos pos, IBlockState state, Random rand
}
}

@Override
@SideOnly(Side.CLIENT)
public void registerRenderers() {
for (BlockSelfResettingLever b : blocks) {
ClientUtil.registerRenderer(Item.getItemFromBlock(b), b.getName());
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;

import crazypants.enderio.EnderIO;
import crazypants.enderio.Log;
import crazypants.enderio.api.redstone.IRedstoneConnectable;
import crazypants.enderio.conduit.AbstractConduit;
Expand Down Expand Up @@ -55,6 +54,7 @@
import net.minecraftforge.fml.relauncher.SideOnly;

import static crazypants.enderio.ModObject.blockConduitBundle;
import static crazypants.enderio.ModObject.itemRedstoneConduit;

public class InsulatedRedstoneConduit extends AbstractConduit implements IRedstoneConduit, IConduitComponent {

Expand Down Expand Up @@ -352,7 +352,7 @@ public ConnectionMode getPreviousConnectionMode(EnumFacing dir) {

@Override
public ItemStack createItem() {
return new ItemStack(EnderIO.itemRedstoneConduit, 1, 0);
return new ItemStack(itemRedstoneConduit.getItem(), 1, 0);
}

@Override
Expand Down
12 changes: 11 additions & 1 deletion src/main/java/crazypants/enderio/material/BlockDarkIronBars.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package crazypants.enderio.material;

import crazypants.enderio.EnderIOTab;
import crazypants.enderio.IHaveRenderers;
import crazypants.enderio.ModObject;
import crazypants.util.ClientUtil;
import net.minecraft.block.BlockPane;
import net.minecraft.block.SoundType;
import net.minecraft.block.material.Material;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class BlockDarkIronBars extends BlockPane {
public class BlockDarkIronBars extends BlockPane implements IHaveRenderers {

public static BlockDarkIronBars create() {
BlockDarkIronBars res = new BlockDarkIronBars();
Expand All @@ -30,4 +34,10 @@ protected void init() {
GameRegistry.register(new BlockItemDarkIronBars(this, ModObject.blockDarkIronBars.getUnlocalisedName()));
}

@Override
@SideOnly(Side.CLIENT)
public void registerRenderers() {
ClientUtil.registerDefaultItemRenderer(ModObject.blockDarkIronBars);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,20 @@
import java.util.List;

import crazypants.enderio.EnderIOTab;
import crazypants.enderio.IHaveRenderers;
import crazypants.enderio.ModObject;
import crazypants.util.ClientUtil;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class ItemFrankenSkull extends Item {
public class ItemFrankenSkull extends Item implements IHaveRenderers {

public static ItemFrankenSkull create() {
ItemFrankenSkull alloy = new ItemFrankenSkull();
Expand All @@ -35,6 +36,7 @@ private void init() {
GameRegistry.register(this);
}

@Override
@SideOnly(Side.CLIENT)
public void registerRenderers() {
List<ResourceLocation> names = FrankenSkull.resources();
Expand Down
12 changes: 11 additions & 1 deletion src/main/java/crazypants/enderio/rail/BlockExitRail.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package crazypants.enderio.rail;

import crazypants.enderio.IHaveRenderers;
import crazypants.enderio.ModObject;
import crazypants.util.ClientUtil;
import net.minecraft.block.BlockRailBase;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.state.BlockStateContainer;
Expand All @@ -17,10 +19,12 @@
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import static net.minecraft.block.BlockRailDetector.SHAPE;

public class BlockExitRail extends BlockRailBase {
public class BlockExitRail extends BlockRailBase implements IHaveRenderers {

public static BlockExitRail create() {
BlockExitRail result = new BlockExitRail();
Expand Down Expand Up @@ -91,4 +95,10 @@ public void onMinecartPass(World world, EntityMinecart cart, BlockPos pos) {
}
}

@Override
@SideOnly(Side.CLIENT)
public void registerRenderers() {
ClientUtil.registerDefaultItemRenderer(ModObject.blockExitRail);
}

}
Loading

0 comments on commit 4e4cdce

Please sign in to comment.