Skip to content
This repository has been archived by the owner on Feb 9, 2018. It is now read-only.

Commit

Permalink
Added Shielding Slot To Replicator
Browse files Browse the repository at this point in the history
  • Loading branch information
simeonradivoev committed Apr 6, 2015
1 parent 74302fc commit 1091d75
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 8 deletions.
Binary file modified MatterOverdriveLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.MO.MatterOverdrive.container;

import com.MO.MatterOverdrive.container.slot.SlotShielding;
import com.MO.MatterOverdrive.util.MOContainerHelper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
Expand Down Expand Up @@ -32,7 +33,8 @@ public ContainerReplicator(InventoryPlayer inventory,TileEntityMachineReplicator
this.addSlotToContainer(new SlotRemoveOnly(tileentity,replicator.OUTPUT_SLOT_ID,70,52));
this.addSlotToContainer(new SlotRemoveOnly(tileentity,replicator.SECOUND_OUTPUT_SLOT_ID,96,52));
this.addSlotToContainer(new SlotDatabase(tileentity,replicator.DATABASE_SLOT_ID,8,52));
this.addSlotToContainer(new SlotEnergy(tileentity,this.replicator.getEnergySlotID(),8,79));
this.addSlotToContainer(new SlotShielding(tileentity,this.replicator.SHIELDING_SLOT_ID,8,79));
this.addSlotToContainer(new SlotEnergy(tileentity,this.replicator.getEnergySlotID(),8,106));

MOContainerHelper.AddPlayerSlots(inventory,this,45,92);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.MO.MatterOverdrive.container.slot;

import com.MO.MatterOverdrive.init.MatterOverdriveItems;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;

/**
* Created by Simeon on 4/6/2015.
*/
public class SlotShielding extends Slot
{
public SlotShielding(IInventory inventory, int index, int x, int y) {

super(inventory, index, x, y);
}

@Override
public boolean isItemValid(ItemStack stack)
{
return stack.getItem() == MatterOverdriveItems.tritanium_plate;
}

@Override
public int getSlotStackLimit()
{
return 5;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.MO.MatterOverdrive.data.inventory;

import com.MO.MatterOverdrive.Reference;
import com.MO.MatterOverdrive.container.slot.SlotShielding;
import com.MO.MatterOverdrive.init.MatterOverdriveItems;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation;

/**
* Created by Simeon on 4/6/2015.
*/
public class ShieldingSlot extends Slot
{
protected static final ResourceLocation Icon = new ResourceLocation(Reference.PATH_GUI + "items/shielding.png");

@Override
public boolean isValidForSlot(ItemStack itemStack)
{
if(this.getItem() != null && this.getItem().stackSize < 4) {

if (itemStack != null && itemStack.getItem() != null) {
return itemStack.getItem() == MatterOverdriveItems.tritanium_plate;
}
}
return false;
}

@Override
public ResourceLocation getTexture()
{
return Icon;
}

@Override
boolean isEqual(net.minecraft.inventory.Slot slot)
{
return slot instanceof SlotShielding;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public GuiReplicator(InventoryPlayer inventoryPlayer,TileEntityMachineReplicator
playerSlots = new ElementPlayerSlots(this,44,91);
slotsList = new ElementSlotsList(this,5,49,new ArrayList<Slot>(0),0);
slotsList.AddSlot(replicator.getInventory().getSlot(replicator.DATABASE_SLOT_ID));
slotsList.AddSlot(replicator.getInventory().getSlot(replicator.SHIELDING_SLOT_ID));
slotsList.AddSlot(replicator.getInventory().getSlot(replicator.getEnergySlotID()));
outputSlot = new ElementSlot(this,true,this.inventorySlots.getSlot(replicator.OUTPUT_SLOT_ID));
seccoundOutputSlot = new ElementSlot(this,true,this.inventorySlots.getSlot(replicator.SECOUND_OUTPUT_SLOT_ID));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
import com.MO.MatterOverdrive.data.Inventory;
import com.MO.MatterOverdrive.data.inventory.DatabaseSlot;
import com.MO.MatterOverdrive.data.inventory.RemoveOnlySlot;
import com.MO.MatterOverdrive.data.inventory.ShieldingSlot;
import com.MO.MatterOverdrive.data.inventory.Slot;
import com.MO.MatterOverdrive.fx.ReplicatorParticle;
import com.MO.MatterOverdrive.handler.SoundHandler;
import com.MO.MatterOverdrive.init.MatterOverdriveItems;
Expand Down Expand Up @@ -38,6 +40,7 @@ public class TileEntityMachineReplicator extends MOTileEntityMachineMatter imple
public int OUTPUT_SLOT_ID = 0;
public int SECOUND_OUTPUT_SLOT_ID = 1;
public int DATABASE_SLOT_ID = 2;
public int SHIELDING_SLOT_ID = 3;

public static final int REPLICATE_SPEED_PER_MATTER = 120;
public static final int REPLICATE_ENERGY_PER_TICK = 160;
Expand All @@ -52,7 +55,7 @@ public class TileEntityMachineReplicator extends MOTileEntityMachineMatter imple

public TileEntityMachineReplicator()
{
super(3);
super(4);
this.energyStorage.setCapacity(ENERGY_STORAGE);
this.energyStorage.setMaxExtract(ENERGY_STORAGE);
this.energyStorage.setMaxReceive(ENERGY_STORAGE);
Expand All @@ -67,6 +70,7 @@ protected void RegisterSlots(Inventory inventory)
OUTPUT_SLOT_ID = inventory.AddSlot(new RemoveOnlySlot());
SECOUND_OUTPUT_SLOT_ID = inventory.AddSlot(new RemoveOnlySlot());
DATABASE_SLOT_ID = inventory.AddSlot(new DatabaseSlot());
SHIELDING_SLOT_ID = inventory.AddSlot(new ShieldingSlot());
}

@Override
Expand Down Expand Up @@ -279,7 +283,13 @@ public boolean isActive()
return this.isReplicating() && energyStorage.getEnergyStored() >= REPLICATE_ENERGY_PER_TICK;
}

public void manageRadiation() {
public void manageRadiation()
{
int shielding = getShielding();

if(shielding >= 5)
return; //has full shielding

AxisAlignedBB bb = AxisAlignedBB.getBoundingBox(xCoord - RADIATION_RANGE,yCoord - RADIATION_RANGE,zCoord - RADIATION_RANGE,xCoord + RADIATION_RANGE,yCoord + RADIATION_RANGE,zCoord + RADIATION_RANGE);
List entities = worldObj.getEntitiesWithinAABB(EntityLivingBase.class,bb);
for (Object e : entities)
Expand All @@ -291,7 +301,7 @@ public void manageRadiation() {
double distance = l.getDistance(xCoord,yCoord,zCoord) / RADIATION_RANGE;
distance = net.minecraft.util.MathHelper.clamp_double(distance,0,1);
distance = 1.0 - distance;
distance *= 5;
distance *= 5 - shielding;

int value = 0;
PotionEffect[] effects = new PotionEffect[4];
Expand All @@ -312,7 +322,16 @@ public void manageRadiation() {
}
}
}


private int getShielding()
{
if(getStackInSlot(SHIELDING_SLOT_ID) != null && getStackInSlot(SHIELDING_SLOT_ID).getItem() == MatterOverdriveItems.tritanium_plate)
{
return getStackInSlot(SHIELDING_SLOT_ID).stackSize;
}
return 0;
}

private boolean canReplicateIntoOutput()
{
if(getStackInSlot(OUTPUT_SLOT_ID) == null)
Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/mcmod.info
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
"modid": "mo",
"name": "Matter Overdrive",
"description": "A mod that dwells within matter, energy.",
"version": "0.1",
"version": "0.1.1",
"mcversion": "1.7.10",
"url": "",
"url": "http://simeon.co.vu/Mods/MatterOverdrive/",
"updateUrl": "",
"authorList": ["Simeon Radivoev"],
"credits": "",
"logoFile": "",
"logoFile": "/MatterOverdriveLogo.png",
"screenshots": [],
"dependencies": []
}
Expand Down

0 comments on commit 1091d75

Please sign in to comment.