Skip to content

Commit

Permalink
Merge pull request #29 from Mordenkainen/0.3_Dev
Browse files Browse the repository at this point in the history
0.3 dev
  • Loading branch information
Mordenkainen committed Jul 26, 2015
2 parents daae011 + 388755d commit 33511b7
Show file tree
Hide file tree
Showing 15 changed files with 309 additions and 31 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ buildscript {

apply plugin: 'forge'

version = "0.2"
version = "0.3"
group= "com.mordenkainen.equivalentenergistics" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "EquivalentEnergistics"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLInterModComms;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
Expand All @@ -29,6 +30,7 @@
import com.mordenkainen.equivalentenergistics.crafting.CraftingManager;
import com.mordenkainen.equivalentenergistics.items.ItemEMCBook;
import com.mordenkainen.equivalentenergistics.items.ItemEMCCrystal;
import com.mordenkainen.equivalentenergistics.items.ItemPattern;
import com.mordenkainen.equivalentenergistics.lib.CreativeTabEE;
import com.mordenkainen.equivalentenergistics.lib.Ref;
import com.mordenkainen.equivalentenergistics.proxy.CommonProxy;
Expand All @@ -53,6 +55,7 @@ public class EquivalentEnergistics {

public static Item itemEMCCrystal;
public static Item itemEMCBook;
public static Item itemPattern;

public static Block blockEMCCondenser;
public static Block blockEMCCrafter;
Expand Down Expand Up @@ -82,6 +85,9 @@ public void init(FMLInitializationEvent event) {
itemEMCCrystal = new ItemEMCCrystal();
GameRegistry.registerItem(itemEMCCrystal, "EMCCrystal");

itemPattern = new ItemPattern();
GameRegistry.registerItem(itemPattern, "EMCPattern");

blockEMCCondenser = new BlockEMCCondenser();
GameRegistry.registerBlock(blockEMCCondenser, "EMCCondenser");
GameRegistry.registerTileEntity(TileEMCCondenser.class, Ref.MOD_ID + "TileEMCCondenser");
Expand All @@ -98,6 +104,7 @@ public void init(FMLInitializationEvent event) {
new EventHandlerModule();
proxy.initRenderers();
CraftingManager.initRecipes();
FMLInterModComms.sendMessage("Waila", "register", "com.mordenkainen.equivalentenergistics.waila.WailaProvider.callbackRegister");
}

@EventHandler
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
import net.minecraft.world.World;

public class BlockEMCCrafter extends BlockContainer {

public BlockEMCCrafter() {
super(Material.rock);
setHardness(1.5f);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.mordenkainen.equivalentenergistics.items;

import com.mordenkainen.equivalentenergistics.EquivalentEnergistics;
import com.mordenkainen.equivalentenergistics.lib.Ref;
import com.mordenkainen.equivalentenergistics.util.CrystalCraftingPattern;
import com.mordenkainen.equivalentenergistics.util.EMCCraftingPattern;

import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;
import appeng.api.implementations.ICraftingPatternItem;
import appeng.api.networking.crafting.ICraftingPatternDetails;

public class ItemPattern extends Item implements ICraftingPatternItem {

public ItemPattern() {
super();
setMaxStackSize(1);
setUnlocalizedName(Ref.getId("EMCPattern"));
}

@Override
public ICraftingPatternDetails getPatternForItem(ItemStack paramItemStack, World paramWorld) {
ItemStack target = ItemStack.loadItemStackFromNBT(paramItemStack.getTagCompound());
if(target.getItem() == EquivalentEnergistics.itemEMCCrystal) {
return new CrystalCraftingPattern(target.getItemDamage());
} else {
return new EMCCraftingPattern(target);
}
}

public void setTargetItem(ItemStack pattern, ItemStack target) {
if(!pattern.hasTagCompound()) {
pattern.stackTagCompound = new NBTTagCompound();
}
target.writeToNBT(pattern.getTagCompound());
}

@Override
public void registerIcons(IIconRegister reg) {
itemIcon = reg.registerIcon(Ref.TEXTURE_PREFIX + "EMCPattern");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

public final class Ref {
public static final String MOD_ID = "equivalentenergistics";
public static final String MOD_VERSION = "0.2";
public static final String MOD_VERSION = "0.3";
public static final String MOD_NAME = "Equivalent Energistics";
public static final String MOD_DEPENDENCIES = "required-after:appliedenergistics2;after:EE3;after:ProjectE";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,18 @@ public void renderTileEntityAt(TileEntity te, double x, double y, double z, floa
}
GL11.glPopMatrix();

if(((TileEMCCrafter)te).getCurrentTome() != null) {
EntityItem entityitem = null;
if(((TileEMCCrafter)te).isCrafting() && ((TileEMCCrafter)te).getCurrentOutput() != null) {
entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, ((TileEMCCrafter)te).getCurrentOutput());
} else if(((TileEMCCrafter)te).getCurrentTome() != null) {
entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, ((TileEMCCrafter)te).getCurrentTome());
}

if(entityitem != null) {
float ticks = (float) (Minecraft.getMinecraft().renderViewEntity.ticksExisted + t + x);
GL11.glPushMatrix();
GL11.glTranslatef((float)x + 0.5f, (float)y + 0.3f, (float)z + 0.5f);
GL11.glRotatef(ticks % 360.0F, 0.0F, 1.0F, 0.0F);
EntityItem entityitem = new EntityItem(te.getWorldObj(), 0.0D, 0.0D, 0.0D, ((TileEMCCrafter)te).getCurrentTome());
entityitem.hoverStart = 0.0F;
RenderManager.instance.renderEntityWithPosYaw(entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F);
GL11.glPopMatrix();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public boolean isItemValidForSlot(final int slotId, final ItemStack itemStack) {
private CondenserInventory internalInventory;
public static final int SLOT_COUNT = 4;
private static final String INVSLOTS = "items";
private float currentEMC = 0.0f;
public float currentEMC = 0.0f;
private boolean isActive;

public TileEMCCondenser() {
Expand Down Expand Up @@ -107,18 +107,8 @@ public void onTick() {
testItem.stackSize = 1;
float itemEMC = EMCUtils.getInstance().getEnergyValue(testItem);
int itemAvail = Math.min(ConfigManager.itemsPerTick, Math.min(internalInventory.getStackInSlot(i).stackSize, (int)Math.floor((Float.MAX_VALUE - currentEMC) / itemEMC)));
IEnergyGrid eGrid = gridProxy.getEnergy();
while(itemAvail > 0) {
double powerRequired = itemEMC * itemAvail * ConfigManager.condenserActivePower;
if(eGrid.extractAEPower(powerRequired, Actionable.SIMULATE, PowerMultiplier.CONFIG) >= powerRequired) {
eGrid.extractAEPower(powerRequired, Actionable.MODULATE, PowerMultiplier.CONFIG);
internalInventory.decrStackSize(i, itemAvail);
currentEMC += itemEMC * itemAvail;
break;
} else {
itemAvail--;
}
}
internalInventory.decrStackSize(i, itemAvail);
currentEMC += itemEMC * itemAvail;
} else {
IStorageGrid storageGrid = this.gridProxy.getStorage();

Expand All @@ -135,17 +125,29 @@ public void onTick() {
float crystalEMC = EMCUtils.getInstance().getCrystalEMC();
if(currentEMC >= crystalEMC) {
int numCrystals = Math.min(ConfigManager.crystalsPerTick, (int)Math.floor(currentEMC/crystalEMC));
IEnergyGrid eGrid = gridProxy.getEnergy();
double powerRequired = crystalEMC * numCrystals * ConfigManager.condenserActivePower;
while(numCrystals > 0) {
if(eGrid.extractAEPower(powerRequired, Actionable.SIMULATE, PowerMultiplier.CONFIG) >= powerRequired) {
break;
} else {
numCrystals--;
}
}

IAEItemStack crystal = AEApi.instance().storage().createItemStack(new ItemStack(EquivalentEnergistics.itemEMCCrystal, numCrystals));
IStorageGrid storageGrid = this.gridProxy.getStorage();

IAEItemStack rejected = storageGrid.getItemInventory().injectItems(crystal, Actionable.SIMULATE, this.mySource);

if(rejected == null || rejected.getStackSize() == 0) {
storageGrid.getItemInventory().injectItems(crystal, Actionable.MODULATE, this.mySource);
eGrid.extractAEPower(powerRequired, Actionable.MODULATE, PowerMultiplier.CONFIG);
currentEMC -= crystalEMC * numCrystals;
}
}
} catch(GridAccessException e) {}
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
}

Expand Down Expand Up @@ -195,12 +197,14 @@ public void onBreak() {
@SideOnly(Side.CLIENT)
public boolean onReceiveNetworkData(final ByteBuf stream) {
isActive = stream.readBoolean();
currentEMC = stream.readFloat();
return true;
}

@TileEvent(TileEventType.NETWORK_WRITE)
public void onSendNetworkData(final ByteBuf stream) throws IOException {
stream.writeBoolean(isActive());
stream.writeFloat(currentEMC);
}

public void setOwner(final EntityPlayer player) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ public class TileEMCCrafter extends AENetworkTile implements ICraftingProvider {
private MachineSource mySource;
private boolean isActive, isCrafting, stalePatterns = true;
private ItemStack currentTome, outputStack;
private int craftTickCounter, staleCounter;
private float currentEMC;
private int craftTickCounter;
public float currentEMC;

public TileEMCCrafter() {
mySource = new MachineSource(this);
Expand Down Expand Up @@ -90,9 +90,10 @@ public void onChunkUnload() {
public boolean pushPattern(final ICraftingPatternDetails patternDetails, final InventoryCrafting table) {
if((!isCrafting) && (patternDetails instanceof EECraftingPattern)) {
isCrafting = true;
craftTickCounter = staleCounter = 0;
craftTickCounter = 0;
outputStack = ((EECraftingPattern)patternDetails).getOutputs()[0].getItemStack();
currentEMC += ((EECraftingPattern)patternDetails).inputEMC - ((EECraftingPattern)patternDetails).outputEMC;
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
return true;
}
return false;
Expand Down Expand Up @@ -217,18 +218,13 @@ public void onTick() {
}

if(stalePatterns && gridProxy.isReady()) {
if(staleCounter > 9) {
gridProxy.getGrid().postEvent(new MENetworkCraftingPatternChange(this, getActionableNode()));
stalePatterns = false;
} else {
staleCounter++;
}
}
} catch(GridAccessException e) {}

if(isCrafting) {
craftingTick();
staleCounter = 0;
}
}

Expand All @@ -241,13 +237,14 @@ private void craftingTick() {
if(this.craftTickCounter >= (outputStack.getItem() == EquivalentEnergistics.itemEMCCrystal ? -1 : ConfigManager.craftingTime)) {
IStorageGrid storageGrid = gridProxy.getStorage();

IAEItemStack rejected = storageGrid.getItemInventory().injectItems(AEApi.instance().storage().createItemStack(outputStack), Actionable.SIMULATE, mySource );
IAEItemStack rejected = storageGrid.getItemInventory().injectItems(AEApi.instance().storage().createItemStack(outputStack), Actionable.SIMULATE, mySource);

if(rejected == null || rejected.getStackSize() == 0) {
storageGrid.getItemInventory().injectItems(AEApi.instance().storage().createItemStack(outputStack), Actionable.MODULATE, mySource);

this.isCrafting = false;
this.outputStack = null;
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
}
} else {
IEnergyGrid eGrid = gridProxy.getEnergy();
Expand Down Expand Up @@ -286,11 +283,13 @@ public boolean onReceiveNetworkData(final ByteBuf stream) throws IOException {
isCrafting = stream.readBoolean();
if(isCrafting) {
craftTickCounter = stream.readInt();
outputStack = AEItemStack.loadItemStackFromPacket(stream).getItemStack();
}
boolean hasTome = stream.readBoolean();
if(hasTome){
currentTome = AEItemStack.loadItemStackFromPacket(stream).getItemStack();
}
currentEMC = stream.readFloat();
return true;
}

Expand All @@ -316,11 +315,13 @@ public void onSendNetworkData(final ByteBuf stream) throws IOException {
stream.writeBoolean(isCrafting);
if(isCrafting) {
stream.writeInt(craftTickCounter);
AEApi.instance().storage().createItemStack(outputStack).writeToPacket(stream);
}
stream.writeBoolean(currentTome != null);
if(currentTome != null) {
AEApi.instance().storage().createItemStack(currentTome).writeToPacket(stream);
}
stream.writeFloat(currentEMC);
}

private static final long HASH_A = 0x1387D;
Expand Down Expand Up @@ -349,5 +350,9 @@ public boolean equals(Object obj)
public boolean isCrafting() {
return isCrafting;
}

public ItemStack getCurrentOutput() {
return outputStack;
}
}

Loading

0 comments on commit 33511b7

Please sign in to comment.