@@ -0,0 +1,14 @@
package com.mcmoddev.poweradvantage.client;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;

public class ContainerManual extends Container {
public ContainerManual() {
}

@Override
public boolean canInteractWith(EntityPlayer playerIn) {
return true;
}
}
@@ -0,0 +1,74 @@
package com.mcmoddev.poweradvantage.client;

import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.Container;
import net.minecraft.item.ItemAxe;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.opengl.GL11;

public class GuiManual extends GuiContainer {
private static final ResourceLocation CRAFTING = new ResourceLocation("poweradvantage", "textures/gui/manual/crafting.png");
private static final ResourceLocation INVERTED = new ResourceLocation("poweradvantage", "textures/gui/manual/inverted.png");
private static final ResourceLocation NORMAL = new ResourceLocation("poweradvantage", "textures/gui/manual/normal.png");

public GuiManual(Container container) {
super(container);
xSize = 292;
ySize = 180;
}

@Override
public void initGui() {
super.initGui();
}

@Override
protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, int mouseY) {
this.mc.getTextureManager().bindTexture(INVERTED);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, 146, 180);
this.mc.getTextureManager().bindTexture(NORMAL);
drawTexturedModalRect(guiLeft + 146, guiTop, 0, 0, 146, 180);
this.mc.getTextureManager().bindTexture(CRAFTING);
drawTexturedModalRect(guiLeft + 146, guiTop, 0, 0, 146, 180);

}

@Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
String title = "Bedrock Infinite";
fontRendererObj.drawString(title, (float)(218 - fontRendererObj.getStringWidth(title) / 2), (float)18, 0x3B3E4E,false);

ItemStack stack = new ItemStack(Blocks.BEDROCK);

drawItem(stack, 210, 32);

drawItem(stack, 210, 75);
drawItem(stack, 189, 75);
drawItem(stack, 231, 75);

drawItem(stack, 210, 96);
drawItem(stack, 189, 96);
drawItem(stack, 231,96);

drawItem(stack, 210, 117);
drawItem(stack, 189,117);
drawItem(stack, 231,117);
}

public void drawItem(ItemStack stack, int x, int y) {
if (stack == null)
stack = new ItemStack(Blocks.BEDROCK);
GlStateManager.pushMatrix();
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
RenderHelper.enableGUIStandardItemLighting();
itemRender.renderItemAndEffectIntoGUI(stack, x, y);
GL11.glDisable(GL11.GL_LIGHTING);
GlStateManager.popMatrix();
}
}
@@ -18,7 +18,6 @@
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;
import net.minecraftforge.client.model.*;
import net.minecraftforge.common.model.IModelPart;
import net.minecraftforge.common.model.IModelState;
import net.minecraftforge.common.model.TRSRTransformation;
import net.minecraftforge.fluids.Fluid;
@@ -35,181 +34,178 @@
@SideOnly(Side.CLIENT)
public class ModelFluidCell implements IModel {

public static final ModelFluidCell MODEL = new ModelFluidCell(
new ResourceLocation("poweradvantage:items/cell_cover"),
new ResourceLocation("poweradvantage:items/cell_empty")
);

public static final ModelResourceLocation MODEL_LOCATION = new ModelResourceLocation(new ResourceLocation("poweradvantage", "fluid_cell"), "default");

private static final float NORTH_Z_FLUID = 7.6f / 16f;
private static final float SOUTH_Z_FLUID = 8.4f / 16f;

public static void init() {
ModelLoader.setCustomMeshDefinition(ModItems.FLUID_CELL, stack -> MODEL_LOCATION);
ModelBakery.registerItemVariants(ModItems.FLUID_CELL, MODEL_LOCATION);
ModelLoaderRegistry.registerLoader(new FluidCellLoader());
}

private final ResourceLocation baseTexture;
private final ResourceLocation emptyTexture;
private final Fluid fluid;

public ModelFluidCell(ResourceLocation baseTexture, ResourceLocation emptyTexture) {
this(baseTexture, emptyTexture, null);
}

public ModelFluidCell(ResourceLocation baseTexture, ResourceLocation emptyTexture, Fluid fluid) {
this.baseTexture = baseTexture;
this.emptyTexture = emptyTexture;
this.fluid = fluid;
}

@Override
public Collection<ResourceLocation> getDependencies() {
return ImmutableList.of();
}

@Override
public Collection<ResourceLocation> getTextures() {
return ImmutableList.of(baseTexture, emptyTexture);
}

@Override
public IBakedModel bake(IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {

ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transformMap = IPerspectiveAwareModel.MapWrapper.getTransforms(state);
TRSRTransformation transform = state.apply(Optional.absent()).or(TRSRTransformation.identity());

ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
builder.addAll(new ItemLayerModel(ImmutableList.of(baseTexture)).bake(transform, format, bakedTextureGetter).getQuads(null, null, 0L));

ResourceLocation sprite = fluid != null ? fluid.getStill() : emptyTexture;
int color = fluid != null ? fluid.getColor() : Color.WHITE.getRGB();
TextureAtlasSprite fluidSprite = bakedTextureGetter.apply(sprite);
if (fluid != null) {
if (fluidSprite != null) {
builder.add(ItemTextureQuadConverter.genQuad(format, transform, 5, 2, 11, 14, NORTH_Z_FLUID, fluidSprite, EnumFacing.NORTH, color));
builder.add(ItemTextureQuadConverter.genQuad(format, transform, 5, 2, 11, 14, SOUTH_Z_FLUID, fluidSprite, EnumFacing.SOUTH, color));
}
}

return new BakedFluidCell(builder.build(), this, bakedTextureGetter.apply(baseTexture), format, transformMap);
}

@Override
public IModelState getDefaultState() {
return TRSRTransformation.identity();
}

public static class FluidCellLoader implements ICustomModelLoader {

@Override
public boolean accepts(ResourceLocation modelLocation) {
return modelLocation.getResourceDomain().equals("poweradvantage") && modelLocation.getResourcePath().contains("fluid_cell");
}

@Override
public IModel loadModel(ResourceLocation modelLocation) throws Exception {
return MODEL;
}

@Override
public void onResourceManagerReload(IResourceManager resourceManager) {
}

}

public static class BakedFluidCell implements IBakedModel {

private final List<BakedQuad> quads;
private final ModelFluidCell parent;
private final TextureAtlasSprite particle;
private final VertexFormat format;
private final ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transformMap;

public BakedFluidCell(List<BakedQuad> quads,
ModelFluidCell parent,
TextureAtlasSprite particle,
VertexFormat format,
ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transformMap) {
this.transformMap = transformMap;
this.quads = quads;
this.parent = parent;
this.particle = particle;
this.format = format;
}

@Override
public List<BakedQuad> getQuads(
@Nullable
IBlockState state,
@Nullable
EnumFacing side, long rand) {
return quads;
}

@Override
public boolean isAmbientOcclusion() {
return true;
}

@Override
public boolean isGui3d() {
return false;
}

@Override
public boolean isBuiltInRenderer() {
return false;
}

@Override
public TextureAtlasSprite getParticleTexture() {
return particle;
}

@Override
public ItemCameraTransforms getItemCameraTransforms() {
return ModelHelper.DEFAULT_ITEM_TRANSFORMS;
}

@Override
public ItemOverrideList getOverrides() {
return OVERRIDES;
}

}

public static final OverrideHandler OVERRIDES = new OverrideHandler();

public static class OverrideHandler extends ItemOverrideList {

private final HashMap<String, IBakedModel> modelCache = new HashMap<>();

private final Function<ResourceLocation, TextureAtlasSprite> textureGetter = location ->
Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(location.toString());

private OverrideHandler() {
super(ImmutableList.of());
}

@Override
public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity) {
FluidStack fluidStack = ItemFluidCell.getFluidHandler(stack).getFluid();
if (fluidStack == null) {
//return default bucket
return originalModel;
}
String name = fluidStack.getFluid().getName();
if (!modelCache.containsKey(name)) {
BakedFluidCell bakedCell = (BakedFluidCell) originalModel;
ModelFluidCell model = new ModelFluidCell(bakedCell.parent.baseTexture, bakedCell.parent.emptyTexture, fluidStack.getFluid());
modelCache.put(name, model.bake(new SimpleModelState(bakedCell.transformMap), bakedCell.format, textureGetter));
}
return modelCache.get(name);
}

}
public static final ModelFluidCell MODEL = new ModelFluidCell(
new ResourceLocation("poweradvantage:items/cell_cover"),
new ResourceLocation("poweradvantage:items/cell_empty")
);

public static final ModelResourceLocation MODEL_LOCATION = new ModelResourceLocation(new ResourceLocation("poweradvantage", "fluid_cell"), "default");
public static final OverrideHandler OVERRIDES = new OverrideHandler();
private static final float NORTH_Z_FLUID = 7.6f / 16f;
private static final float SOUTH_Z_FLUID = 8.4f / 16f;
private final ResourceLocation baseTexture;
private final ResourceLocation emptyTexture;
private final Fluid fluid;

public ModelFluidCell(ResourceLocation baseTexture, ResourceLocation emptyTexture) {
this(baseTexture, emptyTexture, null);
}

public ModelFluidCell(ResourceLocation baseTexture, ResourceLocation emptyTexture, Fluid fluid) {
this.baseTexture = baseTexture;
this.emptyTexture = emptyTexture;
this.fluid = fluid;
}

public static void init() {
ModelLoader.setCustomMeshDefinition(ModItems.FLUID_CELL, stack -> MODEL_LOCATION);
ModelBakery.registerItemVariants(ModItems.FLUID_CELL, MODEL_LOCATION);
ModelLoaderRegistry.registerLoader(new FluidCellLoader());
}

@Override
public Collection<ResourceLocation> getDependencies() {
return ImmutableList.of();
}

@Override
public Collection<ResourceLocation> getTextures() {
return ImmutableList.of(baseTexture, emptyTexture);
}

@Override
public IBakedModel bake(IModelState state, VertexFormat format, Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter) {

ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transformMap = IPerspectiveAwareModel.MapWrapper.getTransforms(state);
TRSRTransformation transform = state.apply(Optional.absent()).or(TRSRTransformation.identity());

ImmutableList.Builder<BakedQuad> builder = ImmutableList.builder();
builder.addAll(new ItemLayerModel(ImmutableList.of(baseTexture)).bake(transform, format, bakedTextureGetter).getQuads(null, null, 0L));

ResourceLocation sprite = fluid != null ? fluid.getStill() : emptyTexture;
int color = fluid != null ? fluid.getColor() : Color.WHITE.getRGB();
TextureAtlasSprite fluidSprite = bakedTextureGetter.apply(sprite);
if (fluid != null) {
if (fluidSprite != null) {
builder.add(ItemTextureQuadConverter.genQuad(format, transform, 5, 2, 11, 14, NORTH_Z_FLUID, fluidSprite, EnumFacing.NORTH, color));
builder.add(ItemTextureQuadConverter.genQuad(format, transform, 5, 2, 11, 14, SOUTH_Z_FLUID, fluidSprite, EnumFacing.SOUTH, color));
}
}

return new BakedFluidCell(builder.build(), this, bakedTextureGetter.apply(baseTexture), format, transformMap);
}

@Override
public IModelState getDefaultState() {
return TRSRTransformation.identity();
}

public static class FluidCellLoader implements ICustomModelLoader {

@Override
public boolean accepts(ResourceLocation modelLocation) {
return modelLocation.getResourceDomain().equals("poweradvantage") && modelLocation.getResourcePath().contains("fluid_cell");
}

@Override
public IModel loadModel(ResourceLocation modelLocation) throws Exception {
return MODEL;
}

@Override
public void onResourceManagerReload(IResourceManager resourceManager) {
}

}

public static class BakedFluidCell implements IBakedModel {

private final List<BakedQuad> quads;
private final ModelFluidCell parent;
private final TextureAtlasSprite particle;
private final VertexFormat format;
private final ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transformMap;

public BakedFluidCell(List<BakedQuad> quads,
ModelFluidCell parent,
TextureAtlasSprite particle,
VertexFormat format,
ImmutableMap<ItemCameraTransforms.TransformType, TRSRTransformation> transformMap) {
this.transformMap = transformMap;
this.quads = quads;
this.parent = parent;
this.particle = particle;
this.format = format;
}

@Override
public List<BakedQuad> getQuads(
@Nullable
IBlockState state,
@Nullable
EnumFacing side, long rand) {
return quads;
}

@Override
public boolean isAmbientOcclusion() {
return true;
}

@Override
public boolean isGui3d() {
return false;
}

@Override
public boolean isBuiltInRenderer() {
return false;
}

@Override
public TextureAtlasSprite getParticleTexture() {
return particle;
}

@Override
public ItemCameraTransforms getItemCameraTransforms() {
return ModelHelper.DEFAULT_ITEM_TRANSFORMS;
}

@Override
public ItemOverrideList getOverrides() {
return OVERRIDES;
}

}

public static class OverrideHandler extends ItemOverrideList {

private final HashMap<String, IBakedModel> modelCache = new HashMap<>();

private final Function<ResourceLocation, TextureAtlasSprite> textureGetter = location ->
Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(location.toString());

private OverrideHandler() {
super(ImmutableList.of());
}

@Override
public IBakedModel handleItemState(IBakedModel originalModel, ItemStack stack, World world, EntityLivingBase entity) {
FluidStack fluidStack = ItemFluidCell.getFluidHandler(stack).getFluid();
if (fluidStack == null) {
//return default bucket
return originalModel;
}
String name = fluidStack.getFluid().getName();
if (!modelCache.containsKey(name)) {
BakedFluidCell bakedCell = (BakedFluidCell) originalModel;
ModelFluidCell model = new ModelFluidCell(bakedCell.parent.baseTexture, bakedCell.parent.emptyTexture, fluidStack.getFluid());
modelCache.put(name, model.bake(new SimpleModelState(bakedCell.transformMap), bakedCell.format, textureGetter));
}
return modelCache.get(name);
}

}

}
@@ -17,22 +17,22 @@
@SideOnly(Side.CLIENT)
public class ModelHelper {

public static final ItemCameraTransforms DEFAULT_ITEM_TRANSFORMS = loadTransformFromJson(new ResourceLocation("minecraft:models/item/generated"));
public static final ItemCameraTransforms HANDHELD_ITEM_TRANSFORMS = loadTransformFromJson(new ResourceLocation("minecraft:models/item/handheld"));
public static final ItemCameraTransforms DEFAULT_ITEM_TRANSFORMS = loadTransformFromJson(new ResourceLocation("minecraft:models/item/generated"));
public static final ItemCameraTransforms HANDHELD_ITEM_TRANSFORMS = loadTransformFromJson(new ResourceLocation("minecraft:models/item/handheld"));

public static ItemCameraTransforms loadTransformFromJson(ResourceLocation location) {
try {
return ModelBlock.deserialize(getReaderForResource(location)).getAllTransforms();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static ItemCameraTransforms loadTransformFromJson(ResourceLocation location) {
try {
return ModelBlock.deserialize(getReaderForResource(location)).getAllTransforms();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

public static Reader getReaderForResource(ResourceLocation location) throws IOException {
ResourceLocation file = new ResourceLocation(location.getResourceDomain(), location.getResourcePath() + ".json");
IResource iresource = Minecraft.getMinecraft().getResourceManager().getResource(file);
return new BufferedReader(new InputStreamReader(iresource.getInputStream(), Charsets.UTF_8));
}
public static Reader getReaderForResource(ResourceLocation location) throws IOException {
ResourceLocation file = new ResourceLocation(location.getResourceDomain(), location.getResourcePath() + ".json");
IResource iresource = Minecraft.getMinecraft().getResourceManager().getResource(file);
return new BufferedReader(new InputStreamReader(iresource.getInputStream(), Charsets.UTF_8));
}

}
@@ -0,0 +1,11 @@
package com.mcmoddev.poweradvantage.client;

import com.mcmoddev.poweradvantage.tile.TileTank;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;

public class TankTESR extends TileEntitySpecialRenderer<TileTank> {
@Override
public void renderTileEntityAt(TileTank te, double x, double y, double z, float partialTicks, int destroyStage) {

}
}
@@ -0,0 +1,32 @@
package com.mcmoddev.poweradvantage.entity;

import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.projectile.EntityThrowable;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.world.World;

public class EntityDynamite extends EntityThrowable {
public EntityDynamite(World worldIn) {
super(worldIn);
}

public EntityDynamite(World worldIn, double x, double y, double z) {
super(worldIn, x, y, z);
}

public EntityDynamite(World worldIn, EntityLivingBase throwerIn) {
super(worldIn, throwerIn);
}

@Override
protected void onImpact(RayTraceResult result) {
world.createExplosion(this,
result.getBlockPos().getX(),
result.getBlockPos().getY(),
result.getBlockPos().getZ(),
2.0F,
true
);
this.setDead();
}
}
@@ -1,41 +1,41 @@
package com.mcmoddev.poweradvantage.init;

import com.mcmoddev.poweradvantage.item.energy.ItemBattery;
import com.mcmoddev.poweradvantage.item.energy.ItemBatteryLarge;
import com.mcmoddev.poweradvantage.item.energy.ItemBatteryMed;
import com.mcmoddev.poweradvantage.item.ItemDynamite;
import com.mcmoddev.poweradvantage.item.resource.*;
import com.mcmoddev.poweradvantage.item.tool.ItemPaintbrush;
import com.mcmoddev.poweradvantage.item.tool.ItemPaintcan;
import com.mcmoddev.poweradvantage.item.tool.ItemScrewdriver;
import com.mcmoddev.poweradvantage.item.tool.ItemWrench;
import com.mcmoddev.poweradvantage.item.tool.*;
import net.minecraft.item.Item;

public class ModItems {
public static ItemCasing CASING;
public static ItemPlate PLATE;
public static ItemDensePlate DENSE_PLATE;
public static ItemSmallDust SMALLDUST;
public static ItemCrushed CRUSHED;
public static ItemPurified PURIFIED;
public static ItemPaintbrush PAINTBRUSH;
public static ItemCrystal CRYSTAL;
public static ItemPaintcan PAINTCAN;
public static Item WRENCH;
public static Item SCREWDRIVER;
public static Item BATTERY;
public static Item BATTERY_MED;
public static Item BATTERY_LARGE;
public static ItemFluidCell FLUID_CELL;
public static ItemManual MANUAL;
public static ItemDynamite DYNAMITE;

public static void register() {
MANUAL = new ItemManual();
FLUID_CELL = new ItemFluidCell();
CASING = new ItemCasing();
PLATE = new ItemPlate();
DENSE_PLATE = new ItemDensePlate();
PAINTBRUSH = new ItemPaintbrush();
PAINTCAN = new ItemPaintcan();
SMALLDUST = new ItemSmallDust();
CRUSHED = new ItemCrushed();
PURIFIED = new ItemPurified();
WRENCH = new ItemWrench();
CRYSTAL = new ItemCrystal();
SCREWDRIVER = new ItemScrewdriver();
BATTERY = new ItemBattery();
BATTERY_MED = new ItemBatteryMed();
BATTERY_LARGE = new ItemBatteryLarge();
DYNAMITE = new ItemDynamite();

}
}
@@ -0,0 +1,25 @@
package com.mcmoddev.poweradvantage.init;

import com.mcmoddev.poweradvantage.misc.Material;
import com.mcmoddev.poweradvantage.misc.MaterialType;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;

public class ModOreDicts {
public static void register() {
for(Material material : Material.values()) {
if(material.canBe(MaterialType.CASING))
OreDictionary.registerOre("casing"+material.getOreDict(), new ItemStack(ModItems.CASING));
if(material.canBe(MaterialType.CRUSHED))
OreDictionary.registerOre("crushed"+material.getOreDict(), new ItemStack(ModItems.CRUSHED));
if(material.canBe(MaterialType.PURIFIED))
OreDictionary.registerOre("crushedPurified"+material.getOreDict(), new ItemStack(ModItems.PURIFIED));
if(material.canBe(MaterialType.PLATE))
OreDictionary.registerOre("plate"+material.getOreDict(), new ItemStack(ModItems.PLATE));
if(material.canBe(MaterialType.DENSE_PLATE))
OreDictionary.registerOre("plateDense"+material.getOreDict(), new ItemStack(ModItems.DENSE_PLATE));
if(material.canBe(MaterialType.SMALL_DUST))
OreDictionary.registerOre("dustTiny"+material.getOreDict(), new ItemStack(ModItems.SMALLDUST));
}
}
}
@@ -2,16 +2,16 @@

import com.mcmoddev.lib.common.MMDLibRegistry;
import com.mcmoddev.poweradvantage.block.BlockScaffolding;
import com.mcmoddev.poweradvantage.item.ItemDynamite;
import com.mcmoddev.poweradvantage.misc.Crystal;
import com.mcmoddev.poweradvantage.misc.Material;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBucket;
import net.minecraftforge.client.MinecraftForgeClient;
import net.minecraft.item.ItemColored;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.UniversalBucket;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

@@ -33,16 +33,18 @@ public static void registerColor() {
MMDLibRegistry.registerItemColour(ModItems.DENSE_PLATE, ModItems.DENSE_PLATE);
MMDLibRegistry.registerItemColour(ModItems.PLATE, ModItems.PLATE);
MMDLibRegistry.registerItemColour(ModItems.SMALLDUST, ModItems.SMALLDUST);
MMDLibRegistry.registerItemColour(ModItems.PURIFIED, ModItems.PURIFIED);
MMDLibRegistry.registerItemColour(ModItems.CRUSHED, ModItems.CRUSHED);
MMDLibRegistry.registerItemColour(ModItems.PAINTBRUSH, ModItems.PAINTBRUSH);
MMDLibRegistry.registerItemColour(ModItems.PAINTCAN, ModItems.PAINTCAN);
}

private static void items() {
register(ModItems.SCREWDRIVER, "tool/screwdriver");
register(ModItems.MANUAL, "tool/manual");
register(ModItems.WRENCH, "tool/wrench");
register(ModItems.BATTERY, "battery/battery");
register(ModItems.BATTERY_MED, "battery/battery_medium");
register(ModItems.BATTERY_LARGE, "battery/battery_large");
for (Crystal material : Crystal.values())
register(ModItems.CRYSTAL, material.ordinal(), "resource/crystal");
for (Material material : Material.values())
register(ModItems.CASING, material.ordinal(), "resource/casing");
for (Material material : Material.values())
@@ -51,19 +53,24 @@ private static void items() {
register(ModItems.PLATE, material.ordinal(), "resource/plate");
for (Material material : Material.values())
register(ModItems.SMALLDUST, material.ordinal(), "resource/small_dust");
for (Material material : Material.values())
register(ModItems.CRUSHED, material.ordinal(), "resource/crushed");
for (Material material : Material.values())
register(ModItems.PURIFIED, material.ordinal(), "resource/purified");
for (EnumDyeColor color : EnumDyeColor.values())
register(ModItems.PAINTBRUSH, color.getMetadata(), "tool/paintbrush");
for (EnumDyeColor color : EnumDyeColor.values())
register(ModItems.PAINTCAN, color.getMetadata(), "tool/paintcan");
for (ItemDynamite.Type type : ItemDynamite.Type.values())
register(ModItems.DYNAMITE, type.ordinal(), "dynamite/" + type.name().toLowerCase());
}

private static void register(Item item, String name) {
register(item, 0, name);
}

private static void register(Item item, int meta, String name) {
ModelLoader.setCustomModelResourceLocation(item, meta,
new ModelResourceLocation("poweradvantage:" + name, "inventory"));
ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation("poweradvantage:" + name, "inventory"));
}

private static void register(Block block, int meta, String name) {
@@ -0,0 +1,9 @@
package com.mcmoddev.poweradvantage.item;

import net.minecraft.item.ItemSword;

public class ItemCodedsBlade extends ItemSword {
public ItemCodedsBlade(ToolMaterial material) {
super(material);
}
}
@@ -0,0 +1,64 @@
package com.mcmoddev.poweradvantage.item;

import com.mcmoddev.poweradvantage.entity.EntityDynamite;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.SoundEvents;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatList;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.SoundCategory;
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 java.util.List;

public class ItemDynamite extends Item {

public ItemDynamite() {
setHasSubtypes(true);
setRegistryName("dynamite");
setUnlocalizedName("poweradvantage.dynamite");
GameRegistry.register(this);
}

@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) {
if (!playerIn.capabilities.isCreativeMode) {
--itemStackIn.stackSize;
}
worldIn.playSound(null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.UI_BUTTON_CLICK, SoundCategory.NEUTRAL, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
if (!worldIn.isRemote) {
EntityDynamite dynamite = new EntityDynamite(worldIn, playerIn);
dynamite.setHeadingFromThrower(playerIn, playerIn.rotationPitch, playerIn.rotationYaw, 0.0F, 1.5F, 1.0F);
worldIn.spawnEntity(dynamite);
}

playerIn.addStat(StatList.getObjectUseStats(this));
return ActionResult.newResult(EnumActionResult.SUCCESS, itemStackIn);
}

@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Type type : Type.values())
subItems.add(new ItemStack(itemIn, 1, type.ordinal()));
}

public enum Type {
NORMAL,
FIREY,
STICKY;

public static Type byMeta(int meta) {
if (meta >= values().length)
meta = 0;
return values()[meta];
}
}
}

This file was deleted.

This file was deleted.

This file was deleted.

@@ -1,7 +1,8 @@
package com.mcmoddev.poweradvantage.item.resource;

import com.mcmoddev.poweradvantage.PowerAdvantageResourceTab;
import com.mcmoddev.poweradvantage.misc.Material;
import com.mcmoddev.poweradvantage.PowerAdvantageTab;
import com.mcmoddev.poweradvantage.misc.MaterialType;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@@ -16,7 +17,7 @@ public class ItemCasing extends Item implements IItemColor {
public ItemCasing() {
setUnlocalizedName("poweradvantage.casing");
setRegistryName("casing");
setCreativeTab(PowerAdvantageTab.TAB);
setCreativeTab(PowerAdvantageResourceTab.TAB);
setHasSubtypes(true);
GameRegistry.register(this);
}
@@ -37,6 +38,7 @@ public int getColorFromItemstack(ItemStack stack, int tintIndex) {
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Material material : Material.values())
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
if (material.canBe(MaterialType.CASING))
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
}
}
@@ -0,0 +1,44 @@
package com.mcmoddev.poweradvantage.item.resource;

import com.mcmoddev.poweradvantage.PowerAdvantageResourceTab;
import com.mcmoddev.poweradvantage.misc.Material;
import com.mcmoddev.poweradvantage.misc.MaterialType;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import java.util.List;

public class ItemCrushed extends Item implements IItemColor {
public ItemCrushed() {
setUnlocalizedName("poweradvantage.crushed");
setRegistryName("crushed");
setCreativeTab(PowerAdvantageResourceTab.TAB);
setHasSubtypes(true);
GameRegistry.register(this);
}

@Override
public String getItemStackDisplayName(ItemStack stack) {
return String.format(super.getItemStackDisplayName(stack), Material.getMaterial(stack.getMetadata()).translateServer());
}

@Override
public int getColorFromItemstack(ItemStack stack, int tintIndex) {
if (tintIndex == 1)
return Material.getMaterial(stack.getMetadata()).getRGB();
return 0xFFFFFF;
}

@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Material material : Material.values())
if (material.canBe(MaterialType.CRUSHED))
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
}
}
@@ -0,0 +1,42 @@
package com.mcmoddev.poweradvantage.item.resource;

import com.mcmoddev.poweradvantage.PowerAdvantageResourceTab;
import com.mcmoddev.poweradvantage.misc.Crystal;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import java.util.List;

public class ItemCrystal extends Item implements IItemColor {
public ItemCrystal() {
setUnlocalizedName("poweradvantage.crystal");
setRegistryName("crystal");
setCreativeTab(PowerAdvantageResourceTab.TAB);
setHasSubtypes(true);
GameRegistry.register(this);
}

@Override
public String getItemStackDisplayName(ItemStack stack) {
return String.format(super.getItemStackDisplayName(stack), Crystal.getMaterial(stack.getMetadata()).translateServer());
}

@Override
public int getColorFromItemstack(ItemStack stack, int tintIndex) {
if (tintIndex == 0)
return Crystal.getMaterial(stack.getMetadata()).getRGB();
return 0xFFFFFF;
}

@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Crystal material : Crystal.values())
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
}
}
@@ -1,7 +1,8 @@
package com.mcmoddev.poweradvantage.item.resource;

import com.mcmoddev.poweradvantage.PowerAdvantageResourceTab;
import com.mcmoddev.poweradvantage.misc.Material;
import com.mcmoddev.poweradvantage.PowerAdvantageTab;
import com.mcmoddev.poweradvantage.misc.MaterialType;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@@ -16,7 +17,7 @@ public class ItemDensePlate extends Item implements IItemColor {
public ItemDensePlate() {
setUnlocalizedName("poweradvantage.denseplate");
setRegistryName("denseplate");
setCreativeTab(PowerAdvantageTab.TAB);
setCreativeTab(PowerAdvantageResourceTab.TAB);
setHasSubtypes(true);
GameRegistry.register(this);
}
@@ -37,6 +38,7 @@ public int getColorFromItemstack(ItemStack stack, int tintIndex) {
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Material material : Material.values())
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
if (material.canBe(MaterialType.DENSE_PLATE))
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
}
}
@@ -42,6 +42,25 @@ public ItemFluidCell() {
GameRegistry.register(this);
}

public static FluidHandler getFluidHandler(ItemStack stack) {
return new FluidHandler(stack, CAPACITY);
}

public static ItemStack getCellWithFluid(Fluid fluid, int stackSize) {
Validate.notNull(fluid);
ItemStack stack = new ItemStack(ModItems.FLUID_CELL, stackSize);
getFluidHandler(stack).fill(new FluidStack(fluid, CAPACITY), true);
return stack;
}

public static ItemStack getEmptyCell(int amount) {
return new ItemStack(ModItems.FLUID_CELL, amount);
}

public static ItemStack getCellWithFluid(Fluid fluid) {
return getCellWithFluid(fluid, 1);
}

@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World worldIn, EntityPlayer playerIn, EnumHand hand) {
if (!worldIn.isRemote) {
@@ -98,26 +117,6 @@ public ICapabilityProvider initCapabilities(ItemStack stack, NBTTagCompound nbt)
return getFluidHandler(stack);
}

public static FluidHandler getFluidHandler(ItemStack stack) {
return new FluidHandler(stack, CAPACITY);
}

public static ItemStack getCellWithFluid(Fluid fluid, int stackSize) {
Validate.notNull(fluid);
ItemStack stack = new ItemStack(ModItems.FLUID_CELL);
getFluidHandler(stack).fill(new FluidStack(fluid, CAPACITY), true);
stack.stackSize = stackSize;
return stack;
}

public static ItemStack getEmptyCell(int amount) {
return new ItemStack(ModItems.FLUID_CELL, amount);
}

public static ItemStack getCellWithFluid(Fluid fluid) {
return getCellWithFluid(fluid, 1);
}

public static class FluidHandler extends FluidHandlerItemStack {

public FluidHandler(ItemStack container, int capacity) {
@@ -1,7 +1,8 @@
package com.mcmoddev.poweradvantage.item.resource;

import com.mcmoddev.poweradvantage.PowerAdvantageResourceTab;
import com.mcmoddev.poweradvantage.misc.Material;
import com.mcmoddev.poweradvantage.PowerAdvantageTab;
import com.mcmoddev.poweradvantage.misc.MaterialType;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@@ -16,7 +17,7 @@ public class ItemPlate extends Item implements IItemColor {
public ItemPlate() {
setUnlocalizedName("poweradvantage.plate");
setRegistryName("plate");
setCreativeTab(PowerAdvantageTab.TAB);
setCreativeTab(PowerAdvantageResourceTab.TAB);
setHasSubtypes(true);
GameRegistry.register(this);
}
@@ -37,6 +38,7 @@ public int getColorFromItemstack(ItemStack stack, int tintIndex) {
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Material material : Material.values())
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
if (material.canBe(MaterialType.PLATE))
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
}
}
@@ -0,0 +1,44 @@
package com.mcmoddev.poweradvantage.item.resource;

import com.mcmoddev.poweradvantage.PowerAdvantageResourceTab;
import com.mcmoddev.poweradvantage.misc.Material;
import com.mcmoddev.poweradvantage.misc.MaterialType;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import java.util.List;

public class ItemPurified extends Item implements IItemColor {
public ItemPurified() {
setUnlocalizedName("poweradvantage.purified");
setRegistryName("purified");
setCreativeTab(PowerAdvantageResourceTab.TAB);
setHasSubtypes(true);
GameRegistry.register(this);
}

@Override
public String getItemStackDisplayName(ItemStack stack) {
return String.format(super.getItemStackDisplayName(stack), Material.getMaterial(stack.getMetadata()).translateServer());
}

@Override
public int getColorFromItemstack(ItemStack stack, int tintIndex) {
if (tintIndex == 0)
return Material.getMaterial(stack.getMetadata()).getRGB();
return 0xFFFFFF;
}

@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Material material : Material.values())
if (material.canBe(MaterialType.PURIFIED))
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
}
}
@@ -1,7 +1,8 @@
package com.mcmoddev.poweradvantage.item.resource;

import com.mcmoddev.poweradvantage.PowerAdvantageResourceTab;
import com.mcmoddev.poweradvantage.misc.Material;
import com.mcmoddev.poweradvantage.PowerAdvantageTab;
import com.mcmoddev.poweradvantage.misc.MaterialType;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@@ -16,7 +17,7 @@ public class ItemSmallDust extends Item implements IItemColor {
public ItemSmallDust() {
setUnlocalizedName("poweradvantage.smalldust");
setRegistryName("smalldust");
setCreativeTab(PowerAdvantageTab.TAB);
setCreativeTab(PowerAdvantageResourceTab.TAB);
setHasSubtypes(true);
GameRegistry.register(this);
}
@@ -37,6 +38,7 @@ public int getColorFromItemstack(ItemStack stack, int tintIndex) {
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
for (Material material : Material.values())
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
if (material.canBe(MaterialType.SMALL_DUST))
subItems.add(new ItemStack(itemIn, 1, material.ordinal()));
}
}
@@ -0,0 +1,26 @@
package com.mcmoddev.poweradvantage.item.tool;

import com.mcmoddev.poweradvantage.PowerAdvantage;
import com.mcmoddev.poweradvantage.PowerAdvantageTab;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ItemManual extends Item {
public ItemManual() {
setUnlocalizedName("poweradvantage.manual");
setRegistryName("manual");
setCreativeTab(PowerAdvantageTab.TAB);
GameRegistry.register(this);
}

@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) {
playerIn.openGui(PowerAdvantage.INSTANCE, 0, worldIn, 0, 0, 0);
return super.onItemRightClick(itemStackIn, worldIn, playerIn, hand);
}
}
@@ -4,11 +4,9 @@
import com.mcmoddev.poweradvantage.init.ModItems;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumActionResult;
@@ -31,27 +29,31 @@ public ItemPaintbrush() {
GameRegistry.register(this);
}

public static ItemStack getItemWithDye(EnumDyeColor color) {
ItemStack stack = new ItemStack(ModItems.PAINTBRUSH);
NBTTagCompound tag = new NBTTagCompound();
tag.setInteger("color", color.getMetadata());
stack.setTagCompound(tag);
return stack;
}

@Override
public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
return EnumActionResult.SUCCESS;
}

@Override
public String getItemStackDisplayName(ItemStack stack) {
return super.getItemStackDisplayName(stack);
}

@Override
public int getColorFromItemstack(ItemStack stack, int tintIndex) {
if (stack.hasTagCompound() && tintIndex == 1)
return EnumDyeColor.byMetadata(stack.getTagCompound().getInteger("color")).getMapColor().colorValue;
return 0xFFFFFF;
}

public static ItemStack getItemWithDye(EnumDyeColor color) {
ItemStack stack = new ItemStack(ModItems.PAINTBRUSH);
NBTTagCompound tag = new NBTTagCompound();
tag.setInteger("color", color.getMetadata());
stack.setTagCompound(tag);
return stack;
}


@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
@@ -4,13 +4,10 @@
import com.mcmoddev.poweradvantage.init.ModItems;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@@ -26,13 +23,6 @@ public ItemPaintcan() {
GameRegistry.register(this);
}

@Override
public int getColorFromItemstack(ItemStack stack, int tintIndex) {
if (stack.hasTagCompound() && tintIndex == 1)
return EnumDyeColor.byMetadata(stack.getTagCompound().getInteger("color")).getMapColor().colorValue;
return 0xFFFFFF;
}

public static ItemStack getItemWithDye(EnumDyeColor color) {
ItemStack stack = new ItemStack(ModItems.PAINTCAN);
NBTTagCompound tag = new NBTTagCompound();
@@ -41,6 +31,13 @@ public static ItemStack getItemWithDye(EnumDyeColor color) {
return stack;
}

@Override
public int getColorFromItemstack(ItemStack stack, int tintIndex) {
if (stack.hasTagCompound() && tintIndex == 1)
return EnumDyeColor.byMetadata(stack.getTagCompound().getInteger("color")).getMapColor().colorValue;
return 0xFFFFFF;
}

@Override
@SideOnly(Side.CLIENT)
public void getSubItems(Item itemIn, CreativeTabs tab, List<ItemStack> subItems) {
@@ -0,0 +1,39 @@
package com.mcmoddev.poweradvantage.misc;

import com.google.common.collect.Lists;
import net.minecraft.util.text.translation.I18n;

import java.awt.*;

public enum Crystal {
RUBY("Ruby", new Color(0xAB2F38).getRGB()),
SAPPHIRE("Sapphire", new Color(0x4B56AB).getRGB())
;

private String oreDict;

private int rgb;

Crystal(String oreDict, int rgb) {
this.oreDict = oreDict;
this.rgb = rgb;
}

public static Crystal getMaterial(int i) {
if (i >= values().length)
i = 0;
return values()[i];
}

public String getOreDict() {
return oreDict;
}

public int getRGB() {
return rgb;
}

public String translateServer() {
return I18n.translateToLocal("material.crystal.poweradvantage." + getOreDict().toLowerCase() + ".name");
}
}
@@ -1,6 +1,5 @@
package com.mcmoddev.poweradvantage.misc;

import net.minecraft.block.BlockRotatedPillar;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.INBTSerializable;
import net.minecraftforge.energy.IEnergyStorage;
@@ -1,25 +1,31 @@
package com.mcmoddev.poweradvantage.misc;

import com.google.common.collect.Lists;
import net.minecraft.util.text.translation.I18n;

import java.awt.*;

public enum Material {
IRON("iron", new Color(0xABABAB).getRGB()),
GOLD("gold", new Color(0xE2D145).getRGB()),
COPPER("copper", new Color(0xFF885A).getRGB()),
SILVER("silver", new Color(0xD1E2E8).getRGB()),
ELECTRUM("electrum", new Color(0xABA431).getRGB()),
LEAD("lead", new Color(0x3B3E4E).getRGB()),
TIN("tin", new Color(0xDEDACD).getRGB()),;
IRON("Iron", new Color(0xABABAB).getRGB(), MaterialType.ALL),
GOLD("Gold", new Color(0xE2D145).getRGB(), MaterialType.ALL),
COPPER("Copper", new Color(0xFF885A).getRGB(), MaterialType.ALL),
SILVER("silver", new Color(0xD1E2E8).getRGB(), MaterialType.ALL),
ELECTRUM("Electrum", new Color(0xABA431).getRGB(), MaterialType.CRAFTING),
LEAD("Lead", new Color(0x3B3E4E).getRGB(), MaterialType.ALL),
TIN("Tin", new Color(0xDEDACD).getRGB(), MaterialType.ALL),
SIGNALUM("Signalum", new Color(0xCB3C18).getRGB(), MaterialType.CRAFTING),
BRONZE("Bronze", new Color(0xC87D29).getRGB(), MaterialType.CRAFTING),
IRIDIUM("Iridium", new Color(0xFFFFFF).getRGB(), MaterialType.ALL),;

private String oreDict;
private java.util.List<MaterialType> materialTypes;

private int rgb;

Material(String oreDict, int rgb) {
Material(String oreDict, int rgb, MaterialType... types) {
this.oreDict = oreDict;
this.rgb = rgb;
this.materialTypes = Lists.newArrayList(types);
}

public static Material getMaterial(int i) {
@@ -37,6 +43,10 @@ public int getRGB() {
}

public String translateServer() {
return I18n.translateToLocal("material.poweradvantage." + getOreDict() + ".name");
return I18n.translateToLocal("material.poweradvantage." + getOreDict().toLowerCase() + ".name");
}

public boolean canBe(MaterialType type) {
return this.materialTypes.contains(type);
}
}
@@ -0,0 +1,25 @@
package com.mcmoddev.poweradvantage.misc;

public enum MaterialType {
CASING,
CRUSHED,
DENSE_PLATE,
PLATE,
PURIFIED,
SMALL_DUST;

public static final MaterialType[] ALL = new MaterialType[]{
CASING,
CRUSHED,
DENSE_PLATE,
PLATE,
PURIFIED,
SMALL_DUST
};

public static final MaterialType[] CRAFTING = new MaterialType[]{
CASING,
DENSE_PLATE,
PLATE,
};
}
@@ -1,7 +1,15 @@
package com.mcmoddev.poweradvantage.proxy;

import com.mcmoddev.poweradvantage.client.ModelFluidCell;
import com.mcmoddev.poweradvantage.client.TankTESR;
import com.mcmoddev.poweradvantage.init.RegisterJsonModels;
import com.mcmoddev.poweradvantage.tile.TileTank;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

@@ -12,11 +20,30 @@ public void preInit() {
super.preInit();
RegisterJsonModels.registerModels();
ModelFluidCell.init();
ClientRegistry.bindTileEntitySpecialRenderer(TileTank.class, new TankTESR());
}

@Override
public void init() {
super.init();
RegisterJsonModels.registerColor();
}

@Override
public void postInit() {
super.postInit();
}

@Override
public void registerFluidRender(Block block, String name) {
super.registerFluidRender(block, name);

final ModelResourceLocation fluidLocation = new ModelResourceLocation("poweradvantage:fluids", name);
ModelLoader.setCustomStateMapper(block, new StateMapperBase() {
@Override
protected ModelResourceLocation getModelResourceLocation(IBlockState state) {
return fluidLocation;
}
});
}
}
@@ -1,5 +1,7 @@
package com.mcmoddev.poweradvantage.proxy;

import net.minecraft.block.Block;

public class CommonProxy {
public void preInit() {

@@ -12,4 +14,7 @@ public void init() {
public void postInit() {

}

public void registerFluidRender(Block blockFluid, String name) {
}
}
@@ -0,0 +1,28 @@
package com.mcmoddev.poweradvantage.proxy;

import com.mcmoddev.poweradvantage.client.ContainerManual;
import com.mcmoddev.poweradvantage.client.GuiManual;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class GuiHandler implements IGuiHandler {
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
if (ID == 0) {
return new ContainerManual();
}
return null;
}

@Override
@SideOnly(Side.CLIENT)
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
if (ID == 0) {
return new GuiManual(new ContainerManual());
}
return null;
}
}
@@ -0,0 +1,53 @@
package com.mcmoddev.poweradvantage.tile;

import com.mcmoddev.lib.tile.TileEntityBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidTank;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;

public class TileTank extends TileEntityBase implements ITickable {

public FluidTank tank;

public TileTank() {
this.tank = new FluidTank(Fluid.BUCKET_VOLUME * 8);
}

@Override
public void update() {
if (tank.getFluid() != null && tank.getFluidAmount() > 0) {
TileEntity te = world.getTileEntity(pos.down());
if (te != null && te instanceof TileTank) {
IFluidHandler fluidHandler = te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, EnumFacing.UP);
tank.drain(fluidHandler.fill(tank.drain(Fluid.BUCKET_VOLUME / 2, false), true), true);
}
}
}

@Override
public void readFromNBT(NBTTagCompound nbtTagCompound) {
tank.readFromNBT(nbtTagCompound);
}

@Override
public NBTTagCompound writeToNBT(NBTTagCompound nbtTagCompound) {
tank.writeToNBT(nbtTagCompound);
return nbtTagCompound;
}

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
return capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY;
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
return hasCapability(capability, facing) ? (T) tank : null;
}
}
@@ -1,8 +1,12 @@
itemGroup.poweradvantage.name=Power Advantage
itemGroup.poweradvantage.fluid.name=Fluid Cells
itemGroup.poweradvantage.resource.name=Resources

item.poweradvantage.denseplate.name=Dense Plate
item.poweradvantage.casing.name=Casing
item.poweradvantage.plate.name=Plate
item.poweradvantage.crushed.name=Crushed %s Dust
item.poweradvantage.purified.name=Purified %s Dust
item.poweradvantage.smalldust.name=Tiny %s Dust
item.poweradvantage.cell.name=%s Cell
item.poweradvantage.cell.empty.name=Empty
@@ -14,10 +18,22 @@ material.poweradvantage.tin.name=Tin
material.poweradvantage.silver.name=Silver
material.poweradvantage.lead.name=Lead
material.poweradvantage.electrum.name=Electrum
material.poweradvantage.signalum.name=Signalum
material.poweradvantage.bronze.name=Bronze
material.poweradvantage.iridium.name=Iridium

fluid.fluidoil=Oil
fluid.fluidfuel=Fuel
fluid.fluidsteam=Steam

tile.poweradvantage.scaffolding.name=Scaffolding

item.poweradvantage.battery.name=Small Battery
item.poweradvantage.battery_medium.name=Medium Battery
item.poweradvantage.battery_large.name=Large Battery
item.poweradvantage.manual.name=Power Advantage Manual
item.poweradvantage.paintbrush.name=Paintbrush
item.poweradvantage.paintcan.name=Paintcan

item.poweradvantage.wrench.name=Wrench
item.poweradvantage.screwdriver.name=Screwdriver
@@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "mmdlib:items/crystal"
}
}