From 89ea3472c1adf295f8d8a0a35d2d2bb555ab4d9a Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 5 Apr 2016 19:24:58 +0200 Subject: [PATCH] Added Redstone Flux power converter --- .../blocks/machine_converter_he_rf.png | Bin 0 -> 506 bytes .../blocks/machine_converter_rf_he.png | Bin 0 -> 542 bytes .../hbm/textures/gui/gui_he_rf_converter.png | Bin 0 -> 2563 bytes .../hbm/textures/gui/gui_rf_he_converter.png | Bin 0 -> 2753 bytes assets/hbm/textures/models/CapeDafnik.png | Bin 0 -> 308 bytes cofh/api/CoFHAPIProps.java | 11 + cofh/api/energy/EnergyStorage.java | 158 +++++++++++++ cofh/api/energy/IEnergyConnection.java | 21 ++ cofh/api/energy/IEnergyContainerItem.java | 52 +++++ cofh/api/energy/IEnergyHandler.java | 58 +++++ cofh/api/energy/IEnergyProvider.java | 38 ++++ cofh/api/energy/IEnergyReceiver.java | 38 ++++ cofh/api/energy/IEnergyStorage.java | 46 ++++ cofh/api/energy/ItemEnergyContainer.java | 110 +++++++++ cofh/api/energy/TileEnergyHandler.java | 65 ++++++ cofh/api/energy/package-info.java | 9 + cofh/api/package-info.java | 8 + com/hbm/blocks/BlockConverterHeRf.java | 41 ++++ com/hbm/blocks/BlockConverterRfHe.java | 41 ++++ com/hbm/blocks/ModBlocks.java | 11 + com/hbm/blocks/TileEntityConverterHeRf.java | 108 +++++++++ com/hbm/blocks/TileEntityConverterRfHe.java | 214 ++++++++++++++++++ com/hbm/blocks/TileEntityMachineCoal.java | 6 +- .../TileEntityMachineElectricFurnace.java | 4 - .../blocks/TileEntityReactorMultiblock.java | 2 +- com/hbm/calc/Location.java | 33 +++ com/hbm/gui/ContainerConverterHeRf.java | 76 +++++++ com/hbm/gui/ContainerConverterRfHe.java | 78 +++++++ com/hbm/gui/GUIConverterHeRf.java | 47 ++++ com/hbm/gui/GUIConverterRfHe.java | 47 ++++ com/hbm/gui/GUIReactorMultiblock.java | 2 +- com/hbm/items/ArmorModel.java | 11 +- com/hbm/items/ModItems.java | 3 + com/hbm/lib/HbmWorldGen.java | 10 +- com/hbm/lib/Library.java | 5 +- com/hbm/main/CraftingManager.java | 4 +- com/hbm/main/GUIHandler.java | 38 ++++ com/hbm/main/MainRegistry.java | 4 + 38 files changed, 1381 insertions(+), 18 deletions(-) create mode 100644 assets/hbm/textures/blocks/machine_converter_he_rf.png create mode 100644 assets/hbm/textures/blocks/machine_converter_rf_he.png create mode 100644 assets/hbm/textures/gui/gui_he_rf_converter.png create mode 100644 assets/hbm/textures/gui/gui_rf_he_converter.png create mode 100644 assets/hbm/textures/models/CapeDafnik.png create mode 100644 cofh/api/CoFHAPIProps.java create mode 100644 cofh/api/energy/EnergyStorage.java create mode 100644 cofh/api/energy/IEnergyConnection.java create mode 100644 cofh/api/energy/IEnergyContainerItem.java create mode 100644 cofh/api/energy/IEnergyHandler.java create mode 100644 cofh/api/energy/IEnergyProvider.java create mode 100644 cofh/api/energy/IEnergyReceiver.java create mode 100644 cofh/api/energy/IEnergyStorage.java create mode 100644 cofh/api/energy/ItemEnergyContainer.java create mode 100644 cofh/api/energy/TileEnergyHandler.java create mode 100644 cofh/api/energy/package-info.java create mode 100644 cofh/api/package-info.java create mode 100644 com/hbm/blocks/BlockConverterHeRf.java create mode 100644 com/hbm/blocks/BlockConverterRfHe.java create mode 100644 com/hbm/blocks/TileEntityConverterHeRf.java create mode 100644 com/hbm/blocks/TileEntityConverterRfHe.java create mode 100644 com/hbm/calc/Location.java create mode 100644 com/hbm/gui/ContainerConverterHeRf.java create mode 100644 com/hbm/gui/ContainerConverterRfHe.java create mode 100644 com/hbm/gui/GUIConverterHeRf.java create mode 100644 com/hbm/gui/GUIConverterRfHe.java diff --git a/assets/hbm/textures/blocks/machine_converter_he_rf.png b/assets/hbm/textures/blocks/machine_converter_he_rf.png new file mode 100644 index 0000000000000000000000000000000000000000..c3535d9f6802cfaa81357cd05c32e72913674445 GIT binary patch literal 506 zcmVN2bZe?^J zG%heMIczh2P5=M_cu7P-R5(w4lFdrPKoo`N1;njgD5x8C;kM9_nzkt=KZ~qf1p*=1 zO)-JQrjMly1$Cn?d=PQ%GxVFe;|L-ihH&Q2{WpH$*^%rKdnW6`5u~<;;AkX$bS;KwC|u`AEiKObu`;+U)f(2Q~|iHyx=gUxSe>g#gA_L9NsvOS}y zC(Z=Q6dGV;I3;j1e?@zz4Ne3VS`xEJ5+xk?a=DZr4q>7VZe3!6NRl0}4N2bZe?^J zG%heMIczh2P5=M_oJmAMR5(w4lG{oGQ51&v3q-ehQBd7fP$V5ajLy+PXA}{Nh!PAF z?I0?6e5$%AsBWr@9wfT%8T!UGOi|F{XY+r8NOXYIObb3?M;-lqGQ}AZ<1em6IH?P3`f`V78l|*7as4yB`8HVw;p+5Xs03Qx7fu?Eig&FX$ zsNhtf;ZTy}IL|AJH`}(8$z&>(%1(`H5|Gd5!vK1(*N>2}Wxg@S04!~~EyLeO-vX#BkLeg9=O&;}?%?w_yUQ$jAi^6Yuu({dn2 zCMIoQXhwM;i3*cRn=!wxsn5e0-HQjUOZSu_o_i|T_P#2WOc)-K61WH;eWVS}jb-fx zlBk7~C;{+R>r{Rm!bBT9oDvm8lJvm%ATqaT)|jkDuzbI!^gsA%ij^h~L_5qrqm%v^ gA}3(~1)3KB0{af}foZpa@Bjb+07*qoM6N<$g63oE#sB~S literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_he_rf_converter.png b/assets/hbm/textures/gui/gui_he_rf_converter.png new file mode 100644 index 0000000000000000000000000000000000000000..42c670d99dad5cae2dcdba43d054cc00e6658c40 GIT binary patch literal 2563 zcmeHI`B&3d7XKuHup|K-6~m&~7LN`~*d$R47?rh9pn?O`43j9JtRe;hW%-IVR6tQs zL{zi`3QSSrP^e;xu^x~dDuxkx*Irn|; zx#yh>4fbOhTN(pk1^9dK1Sq6Qfgz1li4BqAq|)2B?c;60?GnbkNFSgfG$`DM^jp*E z>kJL;jEwA!ja|saU~m}>9+SC=$>i~P-Xh;K#uP2^lhZVj^Paik6hZzHG=A-xFv9{z&}dxG#M z5IjO;7eb$6hZ@3fQJst0Blz+#8V{l&9d%jwDjBjE+=++uAYOXmhb@?JhsFgzJ7Q)7 z=4`R_9@+&^MBs54dP49l5P$y&{eBqmg=#y7wnHw2gecLT3RA${7wEB8Sv0Q z|57(7;+?@^WFP;Z1z|G=>&PA&rTRx50!$ion=)9p=Q!zPi+v)+VF%*G8KSgUq>AEG z#GI5^@!E|XXU^s%x7=VrKR&>FTX<&lkCpKmPkq@ZR%cMCpKbSV)ryBNX~YGZxk}C% zX)~c%TKY?O@vYH}pp_+i6y@34LuuK5dll0jV*^!s^eFDQX;k?Yx67N-CtjYnU)9$a zV!c(P*y zUfiTNn#H3d9dB6j>KUw8e{eieej@M!=dzdQUfSfir`%{(DZSnFb4jASIWcdUyPEcJ zKv9;b)o7BE2Af(WQ@uAbs6)I^uKKylu=|uF;ishp%lkGDXI2gvsC$kQ%O|go*z@}d zC+4|1;t5N4FwYHB$8?sKmCO@9bNx0ZP#u+KceTqXvrjqwwS1yenHKVg2+6~HrZ#Pf zn*>o&_1T>DYR?_d=ZL$;cSe+7R6jbs+B0pm`$g(jik7{>YBEmI-;}JSnQ+$1PA29g z*z(k;OHq&RH7K&yS1ta}A{weZC$*mm5oup6@Q!e$+aB58cdO^D_g)Bi6YOAJno`Dud59(wzqiM(G|2 z*9Hwd;v&EQ8jFXGoG;qq0)mc|T1|c~63s!DODHV#Yq)Cnhg2)+Sl)czZr85KeImAK zOclFWdD4Ehf|aR|N^^+a4>}j#ynB~s@uFdmU}$z@#;muPyDy$6=vic#;Ppbv^ns7=ek(ixkfOdzhXz=uW&Na*43(Usq2e_%NYW}qXafXNs%h;-guP4v<|gcUPh zLQ9Q9@%wf+_L4kEzqogwC2=q<)gx($-mz*aS<3c(9kPr}o_jRd*M8q{Wzd?BKe$WD zRGsRvpwzSEuTzSe za`2(Osa$Vzp!~Hsyc$oeQtJ!H9s;fG1rTsc^tOcpS=)G9JTtVWZs7tz%cE1 zvPD3V-rD%Huyy<$QR72B^OZkJ&5ihfd!OR}>2JaRBH@I9U%p^aYvs^y^PUG?_u~fm L1bg4wF3kTo(8B9G literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_rf_he_converter.png b/assets/hbm/textures/gui/gui_rf_he_converter.png new file mode 100644 index 0000000000000000000000000000000000000000..db8f8779574b5b8417644a6b5b268bd05f0fa7ca GIT binary patch literal 2753 zcmeH|`&Uy}7RSGrya*(~%&5?yn9krR1p$>1wXjx?8i3|m;m7W@9^CXP-IBKm_fSu>WDDXF%S9#`2h9#rVG(5fPs*}Fe$OG zWV6>88^6Ql+MAecAdji3tEs7&$J@-~iN#`HGc!MP^F2TW5D7#Bhk<0^IFJgQ2ExO` z;rI&n|HeB%K|BfXF}Q27aRxEp;Dav__ce~+!09W<_#CO%kXDK0dIYK=>%-0g>=;C7 zFT#4UuLBWX2vK3122poVo`H%qTt9)@WKBxKjCx_*4bMfG+JM>h zm|KT=Tj<|L+dh1^2X{kpUxtS}(I0?Eet5hcLt8Pt70M`NUqW61&K2U*d|b@IXW1yt zLS`AV%CdlL;2iK*;5<+W6a#+;t^k$54WJJA66gZ%0S|#8Km+9D-Bmf3^1!UywqUj`)7#JN+FFhjv#RyXxcYZn@v`(*`%F z(!$>PvvgHSX?h|D6Ewfbi4-b3SQ0iK}NN{=` zy;{`9s!M&|_jGL8*KTS!OR&SAMk-V_P&?hHZ!FX#y3y3w~?% z2fkuv?3Dg6T{T6`*y(D>v;!|{|K{d--N?=C*4*6OlJuhrheHdIjz~32k-_`$3igqX z%iB8gR(qcq>nv^^sbUJPb$N!kYQvIEN2gXURB9`zk)73F#~%_9kR;}?34tmRXu2n+ ziYBdvB}VScgx=G73_sSlGAUo*38MxTdxax zVlB&>INw$%YmHv-Drll!u9G*%@+BpV41?_5eC4{!(Qa2%o|=P1EV4hBud*wiqP$Ir z3d#JB=jhTU71*8WN^=rHC1Yf@i*JcEb45c#kxLPOPmOpV#J`d<*BZ&##A}@GJN|V2 zHWmH4LHXzlnUt8O*nK~)pih~2I1;ob>yZC}-CM$ckKk_GfS5FmuXS;7u^jNpI z!`Y|jrgTx%@ZkQUjj)Gu;*#|p?7%_CHwQfOT<`QxBsZrl_tx1D*+**cy9i4d@)gQ_ zK@g+Pv*q}Jv9vvgb-^uYLG4l<#uSzsInkD@bmiOc<3-O%LZeCkb(;#Ruluc9u6-nC z?VlKkdeh|B2ZRp8x*TsrX8;6%v-!}i& zfVMpnFII^q+4!!f@YBc2n1M9UJj>cq&dcwgyVL%%2}AjXlhhExQT@z1`gsk8y4m{$j2q-FXKg)crj z(K10ZB0R0Yh{C{0*QK6^QaN}u<%}2Z)>2m8kRMc;`oZ`A`8KUZX{6DkH}e=&mswQ> zJ^TDG`3|ORh)fxD(Vr>F-8(3YjYh~9&ZvCX3gpg$+{<65{|{L<*eDf0t(J{DJd!^X RenNgL@RtVr)@+T+`VZ_|BQ^j4 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/CapeDafnik.png b/assets/hbm/textures/models/CapeDafnik.png new file mode 100644 index 0000000000000000000000000000000000000000..50ba68d17974e17928566b3ca944c575659b9d69 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQY`6?zK#qG8~eHcB(eheoCO|{ z#S9F52SAuH>slu#P*9@8HKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+iJAxXur#W|OCj zV@QVc+kQu`BL+OopYQ$qf3H capacity) { + energy = capacity; + } + return this; + } + + public NBTTagCompound writeToNBT(NBTTagCompound nbt) { + + if (energy < 0) { + energy = 0; + } + nbt.setInteger("Energy", energy); + return nbt; + } + + public void setCapacity(int capacity) { + + this.capacity = capacity; + + if (energy > capacity) { + energy = capacity; + } + } + + public void setMaxTransfer(int maxTransfer) { + + setMaxReceive(maxTransfer); + setMaxExtract(maxTransfer); + } + + public void setMaxReceive(int maxReceive) { + + this.maxReceive = maxReceive; + } + + public void setMaxExtract(int maxExtract) { + + this.maxExtract = maxExtract; + } + + public int getMaxReceive() { + + return maxReceive; + } + + public int getMaxExtract() { + + return maxExtract; + } + + /** + * This function is included to allow for server -> client sync. Do not call this externally to the containing Tile Entity, as not all IEnergyHandlers + * are guaranteed to have it. + * + * @param energy + */ + public void setEnergyStored(int energy) { + + this.energy = energy; + + if (this.energy > capacity) { + this.energy = capacity; + } else if (this.energy < 0) { + this.energy = 0; + } + } + + /** + * This function is included to allow the containing tile to directly and efficiently modify the energy contained in the EnergyStorage. Do not rely on this + * externally, as not all IEnergyHandlers are guaranteed to have it. + * + * @param energy + */ + public void modifyEnergyStored(int energy) { + + this.energy += energy; + + if (this.energy > capacity) { + this.energy = capacity; + } else if (this.energy < 0) { + this.energy = 0; + } + } + + /* IEnergyStorage */ + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + + int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); + + if (!simulate) { + energy += energyReceived; + } + return energyReceived; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + + int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); + + if (!simulate) { + energy -= energyExtracted; + } + return energyExtracted; + } + + @Override + public int getEnergyStored() { + + return energy; + } + + @Override + public int getMaxEnergyStored() { + + return capacity; + } + +} \ No newline at end of file diff --git a/cofh/api/energy/IEnergyConnection.java b/cofh/api/energy/IEnergyConnection.java new file mode 100644 index 000000000..5d68a132c --- /dev/null +++ b/cofh/api/energy/IEnergyConnection.java @@ -0,0 +1,21 @@ +package cofh.api.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +/** + * Implement this interface on TileEntities which should connect to energy transportation blocks. This is intended for blocks which generate energy but do not + * accept it; otherwise just use IEnergyHandler. + *

+ * Note that {@link IEnergyHandler} is an extension of this. + * + * @author King Lemming + * + */ +public interface IEnergyConnection { + + /** + * Returns TRUE if the TileEntity can connect on a given side. + */ + boolean canConnectEnergy(ForgeDirection from); + +} \ No newline at end of file diff --git a/cofh/api/energy/IEnergyContainerItem.java b/cofh/api/energy/IEnergyContainerItem.java new file mode 100644 index 000000000..24c743809 --- /dev/null +++ b/cofh/api/energy/IEnergyContainerItem.java @@ -0,0 +1,52 @@ +package cofh.api.energy; + +import net.minecraft.item.ItemStack; + +/** + * Implement this interface on Item classes that support external manipulation of their internal energy storages. + *

+ * A reference implementation is provided {@link ItemEnergyContainer}. + * + * @author King Lemming + * + */ +public interface IEnergyContainerItem { + + /** + * Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged. + * + * @param container + * ItemStack to be charged. + * @param maxReceive + * Maximum amount of energy to be sent into the item. + * @param simulate + * If TRUE, the charge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) received by the item. + */ + int receiveEnergy(ItemStack container, int maxReceive, boolean simulate); + + /** + * Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally + * discharged. + * + * @param container + * ItemStack to be discharged. + * @param maxExtract + * Maximum amount of energy to be extracted from the item. + * @param simulate + * If TRUE, the discharge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted from the item. + */ + int extractEnergy(ItemStack container, int maxExtract, boolean simulate); + + /** + * Get the amount of energy currently stored in the container item. + */ + int getEnergyStored(ItemStack container); + + /** + * Get the max amount of energy that can be stored in the container item. + */ + int getMaxEnergyStored(ItemStack container); + +} \ No newline at end of file diff --git a/cofh/api/energy/IEnergyHandler.java b/cofh/api/energy/IEnergyHandler.java new file mode 100644 index 000000000..9e4fe6f78 --- /dev/null +++ b/cofh/api/energy/IEnergyHandler.java @@ -0,0 +1,58 @@ +package cofh.api.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +/** + * Implement this interface on Tile Entities which should handle energy, generally storing it in one or more internal {@link IEnergyStorage} objects. + *

+ * A reference implementation is provided {@link TileEnergyHandler}. + * + * @author King Lemming + * + */ +public interface IEnergyHandler extends IEnergyProvider, IEnergyReceiver { + + // merely a convenience interface (remove these methods in 1.8; provided here for back-compat via compiler doing things) + + /** + * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver. + * + * @param from + * Orientation the energy is received from. + * @param maxReceive + * Maximum amount of energy to receive. + * @param simulate + * If TRUE, the charge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) received. + */ + @Override + int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate); + + /** + * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider. + * + * @param from + * Orientation the energy is extracted from. + * @param maxExtract + * Maximum amount of energy to extract. + * @param simulate + * If TRUE, the extraction will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted. + */ + @Override + int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate); + + + /** + * Returns the amount of energy currently stored. + */ + @Override + int getEnergyStored(ForgeDirection from); + + /** + * Returns the maximum amount of energy that can be stored. + */ + @Override + int getMaxEnergyStored(ForgeDirection from); + +} \ No newline at end of file diff --git a/cofh/api/energy/IEnergyProvider.java b/cofh/api/energy/IEnergyProvider.java new file mode 100644 index 000000000..af1210b95 --- /dev/null +++ b/cofh/api/energy/IEnergyProvider.java @@ -0,0 +1,38 @@ +package cofh.api.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +/** + * Implement this interface on Tile Entities which should provide energy, generally storing it in one or more internal {@link IEnergyStorage} objects. + *

+ * A reference implementation is provided {@link TileEnergyHandler}. + * + * @author King Lemming + * + */ +public interface IEnergyProvider extends IEnergyConnection { + + /** + * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider. + * + * @param from + * Orientation the energy is extracted from. + * @param maxExtract + * Maximum amount of energy to extract. + * @param simulate + * If TRUE, the extraction will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted. + */ + int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate); + + /** + * Returns the amount of energy currently stored. + */ + int getEnergyStored(ForgeDirection from); + + /** + * Returns the maximum amount of energy that can be stored. + */ + int getMaxEnergyStored(ForgeDirection from); + +} \ No newline at end of file diff --git a/cofh/api/energy/IEnergyReceiver.java b/cofh/api/energy/IEnergyReceiver.java new file mode 100644 index 000000000..77c1c0a63 --- /dev/null +++ b/cofh/api/energy/IEnergyReceiver.java @@ -0,0 +1,38 @@ +package cofh.api.energy; + +import net.minecraftforge.common.util.ForgeDirection; + +/** + * Implement this interface on Tile Entities which should receive energy, generally storing it in one or more internal {@link IEnergyStorage} objects. + *

+ * A reference implementation is provided {@link TileEnergyHandler}. + * + * @author King Lemming + * + */ +public interface IEnergyReceiver extends IEnergyConnection { + + /** + * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver. + * + * @param from + * Orientation the energy is received from. + * @param maxReceive + * Maximum amount of energy to receive. + * @param simulate + * If TRUE, the charge will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) received. + */ + int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate); + + /** + * Returns the amount of energy currently stored. + */ + int getEnergyStored(ForgeDirection from); + + /** + * Returns the maximum amount of energy that can be stored. + */ + int getMaxEnergyStored(ForgeDirection from); + +} \ No newline at end of file diff --git a/cofh/api/energy/IEnergyStorage.java b/cofh/api/energy/IEnergyStorage.java new file mode 100644 index 000000000..9be47af0f --- /dev/null +++ b/cofh/api/energy/IEnergyStorage.java @@ -0,0 +1,46 @@ +package cofh.api.energy; + +/** + * An energy storage is the unit of interaction with Energy inventories.
+ * This is not to be implemented on TileEntities. This is for internal use only. + *

+ * A reference implementation can be found at {@link EnergyStorage}. + * + * @author King Lemming + * + */ +public interface IEnergyStorage { + + /** + * Adds energy to the storage. Returns quantity of energy that was accepted. + * + * @param maxReceive + * Maximum amount of energy to be inserted. + * @param simulate + * If TRUE, the insertion will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) accepted by the storage. + */ + int receiveEnergy(int maxReceive, boolean simulate); + + /** + * Removes energy from the storage. Returns quantity of energy that was removed. + * + * @param maxExtract + * Maximum amount of energy to be extracted. + * @param simulate + * If TRUE, the extraction will only be simulated. + * @return Amount of energy that was (or would have been, if simulated) extracted from the storage. + */ + int extractEnergy(int maxExtract, boolean simulate); + + /** + * Returns the amount of energy currently stored. + */ + int getEnergyStored(); + + /** + * Returns the maximum amount of energy that can be stored. + */ + int getMaxEnergyStored(); + +} \ No newline at end of file diff --git a/cofh/api/energy/ItemEnergyContainer.java b/cofh/api/energy/ItemEnergyContainer.java new file mode 100644 index 000000000..3fb5835c5 --- /dev/null +++ b/cofh/api/energy/ItemEnergyContainer.java @@ -0,0 +1,110 @@ +package cofh.api.energy; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +/** + * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own. + * + * @author King Lemming + * + */ +public class ItemEnergyContainer extends Item implements IEnergyContainerItem { + + protected int capacity; + protected int maxReceive; + protected int maxExtract; + + public ItemEnergyContainer() { + + } + + public ItemEnergyContainer(int capacity) { + + this(capacity, capacity, capacity); + } + + public ItemEnergyContainer(int capacity, int maxTransfer) { + + this(capacity, maxTransfer, maxTransfer); + } + + public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) { + + this.capacity = capacity; + this.maxReceive = maxReceive; + this.maxExtract = maxExtract; + } + + public ItemEnergyContainer setCapacity(int capacity) { + + this.capacity = capacity; + return this; + } + + public void setMaxTransfer(int maxTransfer) { + + setMaxReceive(maxTransfer); + setMaxExtract(maxTransfer); + } + + public void setMaxReceive(int maxReceive) { + + this.maxReceive = maxReceive; + } + + public void setMaxExtract(int maxExtract) { + + this.maxExtract = maxExtract; + } + + /* IEnergyContainerItem */ + @Override + public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) { + + if (container.stackTagCompound == null) { + container.stackTagCompound = new NBTTagCompound(); + } + int energy = container.stackTagCompound.getInteger("Energy"); + int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive)); + + if (!simulate) { + energy += energyReceived; + container.stackTagCompound.setInteger("Energy", energy); + } + return energyReceived; + } + + @Override + public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) { + + if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) { + return 0; + } + int energy = container.stackTagCompound.getInteger("Energy"); + int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract)); + + if (!simulate) { + energy -= energyExtracted; + container.stackTagCompound.setInteger("Energy", energy); + } + return energyExtracted; + } + + @Override + public int getEnergyStored(ItemStack container) { + + if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) { + return 0; + } + return container.stackTagCompound.getInteger("Energy"); + } + + @Override + public int getMaxEnergyStored(ItemStack container) { + + return capacity; + } + +} \ No newline at end of file diff --git a/cofh/api/energy/TileEnergyHandler.java b/cofh/api/energy/TileEnergyHandler.java new file mode 100644 index 000000000..ec3db4de0 --- /dev/null +++ b/cofh/api/energy/TileEnergyHandler.java @@ -0,0 +1,65 @@ +package cofh.api.energy; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +/** + * Reference implementation of {@link IEnergyHandler}. Use/extend this or implement your own. + * + * @author King Lemming + * + */ +public class TileEnergyHandler extends TileEntity implements IEnergyHandler { + + protected EnergyStorage storage = new EnergyStorage(32000); + + @Override + public void readFromNBT(NBTTagCompound nbt) { + + super.readFromNBT(nbt); + storage.readFromNBT(nbt); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + + super.writeToNBT(nbt); + storage.writeToNBT(nbt); + } + + /* IEnergyConnection */ + @Override + public boolean canConnectEnergy(ForgeDirection from) { + + return true; + } + + /* IEnergyReceiver */ + @Override + public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { + + return storage.receiveEnergy(maxReceive, simulate); + } + + /* IEnergyProvider */ + @Override + public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { + + return storage.extractEnergy(maxExtract, simulate); + } + + /* IEnergyReceiver and IEnergyProvider */ + @Override + public int getEnergyStored(ForgeDirection from) { + + return storage.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(ForgeDirection from) { + + return storage.getMaxEnergyStored(); + } + +} \ No newline at end of file diff --git a/cofh/api/energy/package-info.java b/cofh/api/energy/package-info.java new file mode 100644 index 000000000..812015c1c --- /dev/null +++ b/cofh/api/energy/package-info.java @@ -0,0 +1,9 @@ +/** + * (C) 2014 Team CoFH / CoFH / Cult of the Full Hub + * http://www.teamcofh.com + */ +@API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHAPI", provides = "CoFHAPI|energy") +package cofh.api.energy; + +import cofh.api.CoFHAPIProps; +import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/cofh/api/package-info.java b/cofh/api/package-info.java new file mode 100644 index 000000000..8f78d17b1 --- /dev/null +++ b/cofh/api/package-info.java @@ -0,0 +1,8 @@ +/** + * (C) 2014 Team CoFH / CoFH / Cult of the Full Hub + * http://www.teamcofh.com + */ +@API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHLib", provides = "CoFHAPI") +package cofh.api; + +import cpw.mods.fml.common.API; \ No newline at end of file diff --git a/com/hbm/blocks/BlockConverterHeRf.java b/com/hbm/blocks/BlockConverterHeRf.java new file mode 100644 index 000000000..6dce34911 --- /dev/null +++ b/com/hbm/blocks/BlockConverterHeRf.java @@ -0,0 +1,41 @@ +package com.hbm.blocks; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockConverterHeRf extends BlockContainer { + + protected BlockConverterHeRf(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityConverterHeRf(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) + { + return true; + } else if(!player.isSneaking()) + { + TileEntityConverterHeRf entity = (TileEntityConverterHeRf) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_converter_he_rf, world, x, y, z); + } + return true; + } else { + return false; + } + } + +} diff --git a/com/hbm/blocks/BlockConverterRfHe.java b/com/hbm/blocks/BlockConverterRfHe.java new file mode 100644 index 000000000..0304e4d9a --- /dev/null +++ b/com/hbm/blocks/BlockConverterRfHe.java @@ -0,0 +1,41 @@ +package com.hbm.blocks; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class BlockConverterRfHe extends BlockContainer { + + protected BlockConverterRfHe(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityConverterRfHe(); + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) + { + return true; + } else if(!player.isSneaking()) + { + TileEntityConverterRfHe entity = (TileEntityConverterRfHe) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_converter_rf_he, world, x, y, z); + } + return true; + } else { + return false; + } + } + +} diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 0140faa45..d99571e80 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -206,6 +206,12 @@ public class ModBlocks { public static Block plasma; public static final int guiID_fusion_multiblock = 27; + public static Block machine_converter_he_rf; + public static final int guiID_converter_he_rf = 28; + + public static Block machine_converter_rf_he; + public static final int guiID_converter_rf_he = 29; + public static Block launch_pad; public static Block launch_pad_generic; public static Block launch_pad_incendiary; @@ -391,6 +397,9 @@ public class ModBlocks { fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); fusion_core = new FusionCore(Material.iron).setBlockName("fusion_core").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":fusion_core_side"); plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":plasma"); + + machine_converter_he_rf = new BlockConverterHeRf(Material.iron).setBlockName("machine_converter_he_rf").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_converter_he_rf"); + machine_converter_rf_he = new BlockConverterRfHe(Material.iron).setBlockName("machine_converter_rf_he").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_converter_rf_he"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":launch_pad"); launch_pad_generic = new LaunchPad(Material.iron).setBlockName("launch_pad_generic").setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":launch_pad"); @@ -544,6 +553,8 @@ public class ModBlocks { GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(machine_battery, machine_battery.getUnlocalizedName()); + GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName()); + GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_on, machine_electric_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_deuterium, machine_deuterium.getUnlocalizedName()); diff --git a/com/hbm/blocks/TileEntityConverterHeRf.java b/com/hbm/blocks/TileEntityConverterHeRf.java new file mode 100644 index 000000000..f1ac28d78 --- /dev/null +++ b/com/hbm/blocks/TileEntityConverterHeRf.java @@ -0,0 +1,108 @@ +package com.hbm.blocks; + +import com.hbm.calc.Location; +import com.hbm.interfaces.IConsumer; + +import cofh.api.energy.EnergyStorage; +import cofh.api.energy.IEnergyHandler; +import cofh.api.energy.IEnergyProvider; +import cofh.api.energy.IEnergyReceiver; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityConverterHeRf extends TileEntity implements IConsumer, IEnergyProvider { + + public int power; + public final int maxPower = 10000; + public EnergyStorage storage = new EnergyStorage(40000, 25000, 25000); + + //Thanks to the great people of Fusion Warfare for helping me with this part. + + @Override + public void updateEntity() { + if (!worldObj.isRemote) { + + if(power >= 1000 && storage.getEnergyStored() + 4000 <= storage.getMaxEnergyStored()) + { + power -= 1000; + storage.setEnergyStored(storage.getEnergyStored() + 4000); + } + if(power >= 100 && storage.getEnergyStored() + 400 <= storage.getMaxEnergyStored()) + { + power -= 100; + storage.setEnergyStored(storage.getEnergyStored() + 400); + } + if(power >= 10 && storage.getEnergyStored() + 40 <= storage.getMaxEnergyStored()) + { + power -= 10; + storage.setEnergyStored(storage.getEnergyStored() + 4); + } + if(power >= 1 && storage.getEnergyStored() + 4 <= storage.getMaxEnergyStored()) + { + power -= 1; + storage.setEnergyStored(storage.getEnergyStored() + 40); + } + + for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { + + Location loc = new Location(worldObj, xCoord, yCoord, zCoord).add(dir); + TileEntity entity = loc.getTileEntity(); + + if (entity != null && entity instanceof IEnergyReceiver) { + + IEnergyReceiver receiver = (IEnergyReceiver) entity; + + int maxExtract = storage.getMaxExtract(); + int maxAvailable = storage.extractEnergy(maxExtract, true); + int energyTransferred = receiver.receiveEnergy(dir.getOpposite(), maxAvailable, false); + + storage.extractEnergy(energyTransferred, false); + } + } + } + } + + @Override + public boolean canConnectEnergy(ForgeDirection from) { + return true; + } + + @Override + public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { + return storage.extractEnergy(maxExtract, simulate); + } + + @Override + public int getEnergyStored(ForgeDirection from) { + return storage.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(ForgeDirection from) { + return storage.getMaxEnergyStored(); + } + + @Override + public void setPower(int i) { + power = i; + } + + @Override + public int getPower() { + return power; + } + + @Override + public int getMaxPower() { + return maxPower; + } + + public int getPowerScaled(int i) { + return (power * i) / maxPower; + } + + public int getFluxScaled(int i) { + return (storage.getEnergyStored() * i) / storage.getMaxEnergyStored(); + } + +} diff --git a/com/hbm/blocks/TileEntityConverterRfHe.java b/com/hbm/blocks/TileEntityConverterRfHe.java new file mode 100644 index 000000000..9809f560e --- /dev/null +++ b/com/hbm/blocks/TileEntityConverterRfHe.java @@ -0,0 +1,214 @@ +package com.hbm.blocks; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.calc.UnionOfTileEntitiesAndBooleans; +import com.hbm.interfaces.IConductor; +import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.ISource; +import com.hbm.lib.Library; + +import cofh.api.energy.EnergyStorage; +import cofh.api.energy.IEnergyProvider; +import cofh.api.energy.IEnergyReceiver; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityConverterRfHe extends TileEntity implements ISource, IEnergyReceiver { + + public int power; + public final int maxPower = 10000; + public List list = new ArrayList(); + public int age = 0; + public EnergyStorage storage = new EnergyStorage(40000, 25000, 25000); + + @Override + public void updateEntity() { + if (!worldObj.isRemote) { + + if(storage.getEnergyStored() >= 4000 && power + 1000 <= maxPower) + { + storage.setEnergyStored(storage.getEnergyStored() - 4000); + power += 1000; + } + if(storage.getEnergyStored() >= 400 && power + 100 <= maxPower) + { + storage.setEnergyStored(storage.getEnergyStored() - 400); + power += 100; + } + if(storage.getEnergyStored() >= 40 && power + 10 <= maxPower) + { + storage.setEnergyStored(storage.getEnergyStored() - 40); + power += 10; + } + if(storage.getEnergyStored() >= 4 && power + 1 <= maxPower) + { + storage.setEnergyStored(storage.getEnergyStored() - 4); + power += 1; + } + } + + age++; + if(age >= 20) + { + age = 0; + } + + if(age == 9 || age == 19) + ffgeuaInit(); + } + + @Override + public boolean canConnectEnergy(ForgeDirection from) { + return true; + } + + @Override + public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { + return storage.receiveEnergy(maxReceive, simulate); + } + + @Override + public int getEnergyStored(ForgeDirection from) { + return storage.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(ForgeDirection from) { + return storage.getMaxEnergyStored(); + } + + @Override + public void ffgeua(int x, int y, int z, boolean newTact) { + Block block = this.worldObj.getBlock(x, y, z); + TileEntity tileentity = this.worldObj.getTileEntity(x, y, z); + + if(block == ModBlocks.factory_titanium_conductor && this.worldObj.getBlock(x, y + 1, z) == ModBlocks.factory_titanium_core) + { + tileentity = this.worldObj.getTileEntity(x, y + 1, z); + } + if(block == ModBlocks.factory_titanium_conductor && this.worldObj.getBlock(x, y - 1, z) == ModBlocks.factory_titanium_core) + { + tileentity = this.worldObj.getTileEntity(x, y - 1, z); + } + if(block == ModBlocks.factory_advanced_conductor && this.worldObj.getBlock(x, y + 1, z) == ModBlocks.factory_advanced_core) + { + tileentity = this.worldObj.getTileEntity(x, y + 1, z); + } + if(block == ModBlocks.factory_advanced_conductor && this.worldObj.getBlock(x, y - 1, z) == ModBlocks.factory_advanced_core) + { + tileentity = this.worldObj.getTileEntity(x, y - 1, z); + } + + if(tileentity instanceof IConductor) + { + if(tileentity instanceof TileEntityCable) + { + if(Library.checkUnionList(((TileEntityCable)tileentity).uoteab, this)) + { + for(int i = 0; i < ((TileEntityCable)tileentity).uoteab.size(); i++) + { + if(((TileEntityCable)tileentity).uoteab.get(i).source == this) + { + if(((TileEntityCable)tileentity).uoteab.get(i).ticked != newTact) + { + ((TileEntityCable)tileentity).uoteab.get(i).ticked = newTact; + ffgeua(x, y + 1, z, getTact()); + ffgeua(x, y - 1, z, getTact()); + ffgeua(x - 1, y, z, getTact()); + ffgeua(x + 1, y, z, getTact()); + ffgeua(x, y, z - 1, getTact()); + ffgeua(x, y, z + 1, getTact()); + } + } + } + } else { + ((TileEntityCable)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleans(this, newTact)); + } + } + if(tileentity instanceof TileEntityWireCoated) + { + if(Library.checkUnionList(((TileEntityWireCoated)tileentity).uoteab, this)) + { + for(int i = 0; i < ((TileEntityWireCoated)tileentity).uoteab.size(); i++) + { + if(((TileEntityWireCoated)tileentity).uoteab.get(i).source == this) + { + if(((TileEntityWireCoated)tileentity).uoteab.get(i).ticked != newTact) + { + ((TileEntityWireCoated)tileentity).uoteab.get(i).ticked = newTact; + ffgeua(x, y + 1, z, getTact()); + ffgeua(x, y - 1, z, getTact()); + ffgeua(x - 1, y, z, getTact()); + ffgeua(x + 1, y, z, getTact()); + ffgeua(x, y, z - 1, getTact()); + ffgeua(x, y, z + 1, getTact()); + } + } + } + } else { + ((TileEntityWireCoated)tileentity).uoteab.add(new UnionOfTileEntitiesAndBooleans(this, newTact)); + } + } + } + + if(tileentity instanceof IConsumer && newTact && !(tileentity instanceof TileEntityMachineBattery && ((TileEntityMachineBattery)tileentity).conducts)) + { + list.add((IConsumer)tileentity); + } + + if(!newTact) + { + int size = list.size(); + if(size > 0) + { + int part = this.power / size; + for(IConsumer consume : list) + { + if(consume.getPower() < consume.getMaxPower()) + { + if(consume.getMaxPower() - consume.getPower() >= part) + { + this.power -= part; + consume.setPower(consume.getPower() + part); + } else { + this.power -= consume.getMaxPower() - consume.getPower(); + consume.setPower(consume.getMaxPower()); + } + } + } + } + list.clear(); + } + } + + @Override + public void ffgeuaInit() { + ffgeua(this.xCoord, this.yCoord + 1, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord - 1, this.zCoord, getTact()); + ffgeua(this.xCoord - 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord + 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord - 1, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord + 1, getTact()); + } + + public boolean getTact() { + if(age >= 0 && age < 10) + { + return true; + } + + return false; + } + + public int getPowerScaled(int i) { + return (power * i) / maxPower; + } + + public int getFluxScaled(int i) { + return (storage.getEnergyStored() * i) / storage.getMaxEnergyStored(); + } + +} diff --git a/com/hbm/blocks/TileEntityMachineCoal.java b/com/hbm/blocks/TileEntityMachineCoal.java index 0a7d3a4d2..475fe2781 100644 --- a/com/hbm/blocks/TileEntityMachineCoal.java +++ b/com/hbm/blocks/TileEntityMachineCoal.java @@ -331,9 +331,11 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory { water -= 1; - if(power + 1 <= maxPower) + if(power + 10 <= maxPower) { power += 10; + } else { + power = maxPower; } } } @@ -427,7 +429,7 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory } } - if(tileentity instanceof IConsumer && newTact && !(tileentity instanceof TileEntityMachineBattery && !((TileEntityMachineBattery)tileentity).conducts)) + if(tileentity instanceof IConsumer && newTact && !(tileentity instanceof TileEntityMachineBattery && ((TileEntityMachineBattery)tileentity).conducts)) { list.add((IConsumer)tileentity); } diff --git a/com/hbm/blocks/TileEntityMachineElectricFurnace.java b/com/hbm/blocks/TileEntityMachineElectricFurnace.java index 47f4960c3..d92c99b30 100644 --- a/com/hbm/blocks/TileEntityMachineElectricFurnace.java +++ b/com/hbm/blocks/TileEntityMachineElectricFurnace.java @@ -248,10 +248,6 @@ public class TileEntityMachineElectricFurnace extends TileEntity implements ISid slots[i] = null; } } - - { - power--; - } } } diff --git a/com/hbm/blocks/TileEntityReactorMultiblock.java b/com/hbm/blocks/TileEntityReactorMultiblock.java index bba54e5ac..e0a44665c 100644 --- a/com/hbm/blocks/TileEntityReactorMultiblock.java +++ b/com/hbm/blocks/TileEntityReactorMultiblock.java @@ -854,7 +854,7 @@ public class TileEntityReactorMultiblock extends TileEntity implements ISidedInv } } - if(tileentity instanceof IConsumer && newTact && !(tileentity instanceof TileEntityMachineBattery && !((TileEntityMachineBattery)tileentity).conducts)) + if(tileentity instanceof IConsumer && newTact && !(tileentity instanceof TileEntityMachineBattery && ((TileEntityMachineBattery)tileentity).conducts)) { list.add((IConsumer)tileentity); } diff --git a/com/hbm/calc/Location.java b/com/hbm/calc/Location.java new file mode 100644 index 000000000..7cef77e3d --- /dev/null +++ b/com/hbm/calc/Location.java @@ -0,0 +1,33 @@ +package com.hbm.calc; + +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class Location { + + public int x; + public int y; + public int z; + public World world; + + public Location(World world, int x, int y, int z) { + this.world = world; + this.x = x; + this.y = y; + this.z = z; + } + + public Location add(int xa, int ya, int za) { + return new Location(world, x + xa, y + ya, z + za); + } + + public Location add(ForgeDirection dir) { + return add(dir.offsetX, dir.offsetY, dir.offsetZ); + } + + public TileEntity getTileEntity() { + return world.getTileEntity(x, y, z); + } + +} diff --git a/com/hbm/gui/ContainerConverterHeRf.java b/com/hbm/gui/ContainerConverterHeRf.java new file mode 100644 index 000000000..a2d165328 --- /dev/null +++ b/com/hbm/gui/ContainerConverterHeRf.java @@ -0,0 +1,76 @@ +package com.hbm.gui; + +import com.hbm.blocks.TileEntityConverterHeRf; +import com.hbm.blocks.TileEntityConverterRfHe; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.item.ItemStack; + +public class ContainerConverterHeRf extends Container { + + private TileEntityConverterHeRf diFurnace; + + private int water; + private int flux; + + public ContainerConverterHeRf(InventoryPlayer invPlayer, TileEntityConverterHeRf tedf) { + + diFurnace = tedf; + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + crafting.sendProgressBarUpdate(this, 0, this.diFurnace.power); + crafting.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored()); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) + { + return null; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return true; + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + + for(int i = 0; i < this.crafters.size(); i++) + { + ICrafting par1 = (ICrafting)this.crafters.get(i); + + if(this.water != this.diFurnace.power) + { + par1.sendProgressBarUpdate(this, 0, this.diFurnace.power); + } + + if(this.flux != this.diFurnace.storage.getEnergyStored()) + { + par1.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored()); + } + } + + this.water = this.diFurnace.power; + this.flux = this.diFurnace.storage.getEnergyStored(); + } + + @Override + public void updateProgressBar(int i, int j) { + if(i == 0) + { + diFurnace.power = j; + } + if(i == 1) + { + diFurnace.storage.setEnergyStored(j); + } + } +} diff --git a/com/hbm/gui/ContainerConverterRfHe.java b/com/hbm/gui/ContainerConverterRfHe.java new file mode 100644 index 000000000..e6b57defb --- /dev/null +++ b/com/hbm/gui/ContainerConverterRfHe.java @@ -0,0 +1,78 @@ +package com.hbm.gui; + +import com.hbm.blocks.TileEntityConverterRfHe; +import com.hbm.blocks.TileEntityReactorMultiblock; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerConverterRfHe extends Container { + + private TileEntityConverterRfHe diFurnace; + + private int water; + private int flux; + + public ContainerConverterRfHe(InventoryPlayer invPlayer, TileEntityConverterRfHe tedf) { + + diFurnace = tedf; + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + crafting.sendProgressBarUpdate(this, 0, this.diFurnace.power); + crafting.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored()); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int p_82846_2_) + { + return null; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return true; + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + + for(int i = 0; i < this.crafters.size(); i++) + { + ICrafting par1 = (ICrafting)this.crafters.get(i); + + if(this.water != this.diFurnace.power) + { + par1.sendProgressBarUpdate(this, 0, this.diFurnace.power); + } + + if(this.flux != this.diFurnace.storage.getEnergyStored()) + { + par1.sendProgressBarUpdate(this, 1, this.diFurnace.storage.getEnergyStored()); + } + } + + this.water = this.diFurnace.power; + this.flux = this.diFurnace.storage.getEnergyStored(); + } + + @Override + public void updateProgressBar(int i, int j) { + if(i == 0) + { + diFurnace.power = j; + } + if(i == 1) + { + diFurnace.storage.setEnergyStored(j); + } + } + +} diff --git a/com/hbm/gui/GUIConverterHeRf.java b/com/hbm/gui/GUIConverterHeRf.java new file mode 100644 index 000000000..336cf5cfd --- /dev/null +++ b/com/hbm/gui/GUIConverterHeRf.java @@ -0,0 +1,47 @@ +package com.hbm.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.TileEntityConverterHeRf; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIConverterHeRf extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_he_rf_converter.png"); + private TileEntityConverterHeRf diFurnace; + + public GUIConverterHeRf(InventoryPlayer invPlayer, TileEntityConverterHeRf tedf) { + super(new ContainerConverterHeRf(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 86; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(diFurnace.power > 0) { + int i = diFurnace.getPowerScaled(52); + drawTexturedModalRect(guiLeft + 28, guiTop + 69 - i, 176, 52 - i, 12, i); + } + + if(diFurnace.storage.getEnergyStored() > 0) { + int i = diFurnace.getFluxScaled(52); + drawTexturedModalRect(guiLeft + 136, guiTop + 69 - i, 188, 52 - i, 12, i); + } + } +} diff --git a/com/hbm/gui/GUIConverterRfHe.java b/com/hbm/gui/GUIConverterRfHe.java new file mode 100644 index 000000000..1cd123733 --- /dev/null +++ b/com/hbm/gui/GUIConverterRfHe.java @@ -0,0 +1,47 @@ +package com.hbm.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.TileEntityConverterRfHe; +import com.hbm.lib.RefStrings; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIConverterRfHe extends GuiContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_rf_he_converter.png"); + private TileEntityConverterRfHe diFurnace; + + public GUIConverterRfHe(InventoryPlayer invPlayer, TileEntityConverterRfHe tedf) { + super(new ContainerConverterRfHe(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 86; + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(diFurnace.power > 0) { + int i = diFurnace.getPowerScaled(52); + drawTexturedModalRect(guiLeft + 136, guiTop + 69 - i, 188, 52 - i, 12, i); + } + + if(diFurnace.storage.getEnergyStored() > 0) { + int i = diFurnace.getFluxScaled(52); + drawTexturedModalRect(guiLeft + 28, guiTop + 69 - i, 176, 52 - i, 12, i); + } + } +} diff --git a/com/hbm/gui/GUIReactorMultiblock.java b/com/hbm/gui/GUIReactorMultiblock.java index 07a064ff8..b49ae3608 100644 --- a/com/hbm/gui/GUIReactorMultiblock.java +++ b/com/hbm/gui/GUIReactorMultiblock.java @@ -50,7 +50,7 @@ public class GUIReactorMultiblock extends GuiContainer { int k = diFurnace.getPowerScaled(70); drawTexturedModalRect(guiLeft + 44, guiTop + 88 - k, 208, 70 - k, 16, k); - int l = diFurnace.getHeatScaled(124); + int l = diFurnace.getHeatScaled(142); drawTexturedModalRect(guiLeft + 26, guiTop + 108, 0, 222, l, 16); } } diff --git a/com/hbm/items/ArmorModel.java b/com/hbm/items/ArmorModel.java index 2a3b97787..aac20b64f 100644 --- a/com/hbm/items/ArmorModel.java +++ b/com/hbm/items/ArmorModel.java @@ -49,6 +49,9 @@ public class ArmorModel extends ItemArmor { if (this == ModItems.cape_hbm) { return armorType == 1; } + if (this == ModItems.cape_dafnik) { + return armorType == 1; + } return armorType == 0; } @@ -79,7 +82,7 @@ public class ArmorModel extends ItemArmor { return this.modelCloak; } } - if (this == ModItems.cape_hbm) { + if (this == ModItems.cape_hbm || this == ModItems.cape_dafnik) { if (armorSlot == 1) { if (this.modelCloak == null) { this.modelCloak = new ModelCloak(); @@ -110,6 +113,9 @@ public class ArmorModel extends ItemArmor { if (stack.getItem() == ModItems.cape_hbm && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.HbMinecraft)) { return "hbm:textures/models/CapeHbm.png"; } + if (stack.getItem() == ModItems.cape_dafnik && entity instanceof EntityPlayer && ((EntityPlayer)entity).getUniqueID().toString().equals(Library.Dafnik)) { + return "hbm:textures/models/CapeDafnik.png"; + } return "hbm:textures/models/CapeUnknown.png"; } @@ -128,5 +134,8 @@ public class ArmorModel extends ItemArmor { if (itemstack.getItem() == ModItems.cape_hbm) { list.add("Only works for HbMinecraft"); } + if (itemstack.getItem() == ModItems.cape_dafnik) { + list.add("Only works for Dafnik"); + } } } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index a97f6174c..5a111a72a 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -452,6 +452,7 @@ public class ModItems { public static Item cape_gasmask; public static Item cape_schrabidium; public static Item cape_hbm; + public static Item cape_dafnik; public static Item nuke_starter_kit; public static Item nuke_advanced_kit; @@ -944,6 +945,7 @@ public class ModItems { cape_gasmask = new ArmorModel(ArmorMaterial.CHAIN, 9, 1).setUnlocalizedName("cape_gasmask").setCreativeTab(MainRegistry.tabNuke).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_gasmask"); cape_schrabidium = new ArmorModel(MainRegistry.enumArmorMaterialSchrabidium, 9, 1).setUnlocalizedName("cape_schrabidium").setCreativeTab(MainRegistry.tabNuke).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_schrabidium"); cape_hbm = new ArmorModel(MainRegistry.enumArmorMaterialEuphemium, 9, 1).setUnlocalizedName("cape_hbm").setCreativeTab(MainRegistry.tabNuke).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_unknown"); + cape_dafnik = new ArmorModel(MainRegistry.enumArmorMaterialEmerald, 9, 1).setUnlocalizedName("cape_dafnik").setCreativeTab(MainRegistry.tabNuke).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cape_dafnik"); smoke1 = new Item().setUnlocalizedName("smoke1").setTextureName(RefStrings.MODID + ":smoke1"); smoke2 = new Item().setUnlocalizedName("smoke2").setTextureName(RefStrings.MODID + ":smoke2"); @@ -1324,6 +1326,7 @@ public class ModItems { GameRegistry.registerItem(cape_gasmask, cape_gasmask.getUnlocalizedName()); GameRegistry.registerItem(cape_schrabidium, cape_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(cape_hbm, cape_hbm.getUnlocalizedName()); + GameRegistry.registerItem(cape_dafnik, cape_dafnik.getUnlocalizedName()); //Tools GameRegistry.registerItem(schrabidium_sword, schrabidium_sword.getUnlocalizedName()); diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index ac1f26ca2..0ab2dd1bf 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -56,7 +56,7 @@ public class HbmWorldGen implements IWorldGenerator { int randPosY = rand.nextInt(35); int randPosZ = j + rand.nextInt(16); - (new WorldGenMinable(ModBlocks.ore_titanium, 4)).generate(world, rand, randPosX, randPosY, randPosZ); + (new WorldGenMinable(ModBlocks.ore_titanium, 6)).generate(world, rand, randPosX, randPosY, randPosZ); } for (int k = 0; k < 5; k++) @@ -77,16 +77,16 @@ public class HbmWorldGen implements IWorldGenerator { (new WorldGenMinable(ModBlocks.ore_aluminium, 6)).generate(world, rand, randPosX, randPosY, randPosZ); } - for (int k = 0; k < 10; k++) + for (int k = 0; k < 12; k++) { int randPosX = i + rand.nextInt(16); int randPosY = rand.nextInt(50); int randPosZ = j + rand.nextInt(16); - (new WorldGenMinable(ModBlocks.ore_copper, 4)).generate(world, rand, randPosX, randPosY, randPosZ); + (new WorldGenMinable(ModBlocks.ore_copper, 6)).generate(world, rand, randPosX, randPosY, randPosZ); } - for (int k = 0; k < 8; k++) + for (int k = 0; k < 6; k++) { int randPosX = i + rand.nextInt(16); int randPosY = rand.nextInt(40); @@ -104,7 +104,7 @@ public class HbmWorldGen implements IWorldGenerator { (new WorldGenMinable(ModBlocks.ore_niter, 4)).generate(world, rand, randPosX, randPosY, randPosZ); } - for (int k = 0; k < 8; k++) + for (int k = 0; k < 10; k++) { int randPosX = i + rand.nextInt(16); int randPosY = rand.nextInt(35); diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index ef1dc4f93..3d70d6912 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -98,8 +98,9 @@ public class Library { public static String book61; - public static /*UUID*/String HbMinecraft = /*UUID.fromString(*/"192af5d7-ed0f-48d8-bd89-9d41af8524f8"/*)*/; - public static UUID LPkukin = UUID.fromString("937c9804-e11f-4ad2-a5b1-42e62ac73077"); + public static String HbMinecraft = "192af5d7-ed0f-48d8-bd89-9d41af8524f8"; + public static String LPkukin = "937c9804-e11f-4ad2-a5b1-42e62ac73077"; + public static String Dafnik = "???"; public static boolean checkArmor(EntityPlayer player, Item helmet, Item plate, Item legs, Item boots) { diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 159c67cc1..639a26953 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -367,7 +367,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.reactor_element), 1), new Object[] { "SCS", "CSC", "SCS", 'S', ModItems.ingot_steel, 'C', ModItems.rod_quad_empty }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.reactor_control), 1), new Object[] { "SLS", "SLS", "SLS", 'S', ModItems.ingot_steel, 'L', ModItems.ingot_lead }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.reactor_conductor), 1), new Object[] { "SWS", "FFF", "SWS", 'S', ModItems.ingot_steel, 'W', Item.getItemFromBlock(ModBlocks.red_wire_coated), 'F', ModItems.fuse }); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.reactor_computer), 1), new Object[] { "CWC", "CRC", "CWC", 'C', ModItems.circuit_gold, 'W', Item.getItemFromBlock(ModBlocks.red_wire_coated), 'R', Item.getItemFromBlock(ModBlocks.reactor_conductor) }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.reactor_computer), 1), new Object[] { "CWC", "CRC", "CWC", 'C', ModItems.circuit_red_copper, 'W', Item.getItemFromBlock(ModBlocks.red_wire_coated), 'R', Item.getItemFromBlock(ModBlocks.reactor_conductor) }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.reactor_hatch), 1), new Object[] { "BBB", "BFB", "BBB", 'B', Item.getItemFromBlock(ModBlocks.brick_concrete), 'F', Item.getItemFromBlock(Blocks.furnace) }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.fusion_conductor), 1), new Object[] { "SSS", "CCC", "SSS", 'S', ModItems.plate_steel, 'C', ModItems.coil_advanced_alloy }); @@ -375,7 +375,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.fusion_motor), 1), new Object[] { "MTM", "TTT", "MTM", 'T', ModItems.ingot_titanium, 'M', ModItems.motor }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.fusion_heater), 1), new Object[] { "TTT", "CCC", "TTT", 'T', ModItems.ingot_tungsten, 'C', ModItems.coil_tungsten }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.fusion_hatch), 1), new Object[] { "TTT", "TFT", "TTT", 'T', Item.getItemFromBlock(ModBlocks.fusion_heater), 'F', Item.getItemFromBlock(Blocks.furnace) }); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.fusion_core), 1), new Object[] { "CWC", "CRC", "CWC", 'C', ModItems.circuit_gold, 'W', Item.getItemFromBlock(ModBlocks.red_wire_coated), 'E', Item.getItemFromBlock(ModBlocks.fusion_center) }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.fusion_core), 1), new Object[] { "CWC", "CRC", "CWC", 'C', ModItems.circuit_gold, 'W', Item.getItemFromBlock(ModBlocks.red_wire_coated), 'R', Item.getItemFromBlock(ModBlocks.fusion_center) }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_light), 8), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_concrete), 8), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.stone }); diff --git a/com/hbm/main/GUIHandler.java b/com/hbm/main/GUIHandler.java index 24a384412..2d3439e9b 100644 --- a/com/hbm/main/GUIHandler.java +++ b/com/hbm/main/GUIHandler.java @@ -2,6 +2,8 @@ package com.hbm.main; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.TileEntityBombMulti; +import com.hbm.blocks.TileEntityConverterHeRf; +import com.hbm.blocks.TileEntityConverterRfHe; import com.hbm.blocks.TileEntityCoreAdvanced; import com.hbm.blocks.TileEntityCoreTitanium; import com.hbm.blocks.TileEntityDiFurnace; @@ -30,6 +32,8 @@ import com.hbm.blocks.TileEntityTestNuke; import com.hbm.gui.ContainerBombMulti; import com.hbm.gui.ContainerDiFurnace; import com.hbm.gui.ContainerCentrifuge; +import com.hbm.gui.ContainerConverterHeRf; +import com.hbm.gui.ContainerConverterRfHe; import com.hbm.gui.ContainerCoreAdvanced; import com.hbm.gui.ContainerCoreTitanium; import com.hbm.gui.ContainerElectricFurnace; @@ -54,6 +58,8 @@ import com.hbm.gui.ContainerRtgFurnace; import com.hbm.gui.ContainerTestNuke; import com.hbm.gui.ContainerUF6Tank; import com.hbm.gui.GUIBombMulti; +import com.hbm.gui.GUIConverterHeRf; +import com.hbm.gui.GUIConverterRfHe; import com.hbm.gui.GUICoreAdvanced; import com.hbm.gui.GUICoreTitanium; import com.hbm.gui.GUIFusionMultiblock; @@ -301,6 +307,22 @@ public class GUIHandler implements IGuiHandler { return new ContainerFusionMultiblock(player.inventory, (TileEntityFusionMultiblock) entity); } } + + case ModBlocks.guiID_converter_he_rf: + { + if(entity instanceof TileEntityConverterHeRf) + { + return new ContainerConverterHeRf(player.inventory, (TileEntityConverterHeRf) entity); + } + } + + case ModBlocks.guiID_converter_rf_he: + { + if(entity instanceof TileEntityConverterRfHe) + { + return new ContainerConverterRfHe(player.inventory, (TileEntityConverterRfHe) entity); + } + } } return null; } @@ -521,6 +543,22 @@ public class GUIHandler implements IGuiHandler { return new GUIFusionMultiblock(player.inventory, (TileEntityFusionMultiblock) entity); } } + + case ModBlocks.guiID_converter_he_rf: + { + if(entity instanceof TileEntityConverterHeRf) + { + return new GUIConverterHeRf(player.inventory, (TileEntityConverterHeRf) entity); + } + } + + case ModBlocks.guiID_converter_rf_he: + { + if(entity instanceof TileEntityConverterRfHe) + { + return new GUIConverterRfHe(player.inventory, (TileEntityConverterRfHe) entity); + } + } } } return null; diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 865cdf95d..72b42296f 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -20,6 +20,8 @@ import cpw.mods.fml.common.ModMetadata; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.TileEntityBombMulti; import com.hbm.blocks.TileEntityCable; +import com.hbm.blocks.TileEntityConverterHeRf; +import com.hbm.blocks.TileEntityConverterRfHe; import com.hbm.blocks.TileEntityCoreAdvanced; import com.hbm.blocks.TileEntityCoreTitanium; import com.hbm.blocks.TileEntityCrashedBomb; @@ -226,6 +228,8 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityFusionMultiblock.class, "tileentity_fusion_multiblock"); GameRegistry.registerTileEntity(TileEntityCrashedBomb.class, "tileentity_crashed_balefire"); GameRegistry.registerTileEntity(TileEntityCable.class, "tileentity_cable"); + GameRegistry.registerTileEntity(TileEntityConverterHeRf.class, "tileentity_converter_herf"); + GameRegistry.registerTileEntity(TileEntityConverterRfHe.class, "tileentity_converter_rfhe"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true);