From 6acfea1b32b391a4071fe9553c36ec9ccde79375 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 24 Oct 2015 21:20:27 +0200 Subject: [PATCH 01/73] Fix Chocolate Toast --- .../actuallyadditions/booklet/InitBooklet.java | 2 +- .../config/values/ConfigCrafting.java | 2 +- .../actuallyadditions/crafting/FoodCrafting.java | 10 +++++----- .../items/metalists/TheFoods.java | 2 +- .../assets/actuallyadditions/lang/en_US.lang | 2 +- .../textures/items/itemFoodChocoToast.png | Bin 327 -> 0 bytes 6 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemFoodChocoToast.png diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index c6f51faa2..05930161b 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -95,7 +95,7 @@ public class InitBooklet{ //No RF Using Items new BookletChapter("wings", entryItemsNonRF, new ItemStack(InitItems.itemWingsOfTheBats), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BAT_WING.ordinal())), new PageCrafting(2, ItemCrafting.recipeWings).setNoText()).setSpecial(); - new BookletChapter("foods", entryItemsNonRF, new ItemStack(InitItems.itemFoods, 1, TheFoods.HAMBURGER.ordinal()), new PageCrafting(1, FoodCrafting.recipePizza).setNoText(), new PageFurnace(2, new ItemStack(InitItems.itemFoods, 1, TheFoods.RICE_BREAD.ordinal())).setNoText(), new PageCrafting(3, FoodCrafting.recipeHamburger).setNoText(), new PageCrafting(4, FoodCrafting.recipeBigCookie).setNoText(), new PageCrafting(5, FoodCrafting.recipeSubSandwich).setNoText(), new PageCrafting(6, FoodCrafting.recipeFrenchFry).setNoText(), new PageCrafting(7, FoodCrafting.recipeFrenchFries).setNoText(), new PageCrafting(8, FoodCrafting.recipeFishNChips).setNoText(), new PageCrafting(9, FoodCrafting.recipeCheese).setNoText(), new PageCrafting(10, FoodCrafting.recipePumpkinStew).setNoText(), new PageCrafting(11, FoodCrafting.recipeCarrotJuice).setNoText(), new PageCrafting(12, FoodCrafting.recipeSpaghetti).setNoText(), new PageCrafting(13, FoodCrafting.recipeNoodle).setNoText(), new PageCrafting(14, FoodCrafting.recipeChocolate).setNoText(), new PageCrafting(15, FoodCrafting.recipeChocolateCake).setNoText(), new PageCrafting(16, FoodCrafting.recipeToast).setNoText(), new PageFurnace(17, new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal())).setNoText()); + new BookletChapter("foods", entryItemsNonRF, new ItemStack(InitItems.itemFoods, 1, TheFoods.HAMBURGER.ordinal()), new PageCrafting(1, FoodCrafting.recipePizza).setNoText(), new PageFurnace(2, new ItemStack(InitItems.itemFoods, 1, TheFoods.RICE_BREAD.ordinal())).setNoText(), new PageCrafting(3, FoodCrafting.recipeHamburger).setNoText(), new PageCrafting(4, FoodCrafting.recipeBigCookie).setNoText(), new PageCrafting(5, FoodCrafting.recipeSubSandwich).setNoText(), new PageCrafting(6, FoodCrafting.recipeFrenchFry).setNoText(), new PageCrafting(7, FoodCrafting.recipeFrenchFries).setNoText(), new PageCrafting(8, FoodCrafting.recipeFishNChips).setNoText(), new PageCrafting(9, FoodCrafting.recipeCheese).setNoText(), new PageCrafting(10, FoodCrafting.recipePumpkinStew).setNoText(), new PageCrafting(11, FoodCrafting.recipeCarrotJuice).setNoText(), new PageCrafting(12, FoodCrafting.recipeSpaghetti).setNoText(), new PageCrafting(13, FoodCrafting.recipeNoodle).setNoText(), new PageCrafting(14, FoodCrafting.recipeChocolate).setNoText(), new PageCrafting(15, FoodCrafting.recipeChocolateCake).setNoText(), new PageCrafting(16, FoodCrafting.recipeToast).setNoText(), new PageFurnace(17, new ItemStack(InitItems.itemFoods, 1, TheFoods.BAGUETTE.ordinal())).setNoText(), new PageCrafting(18, FoodCrafting.recipeChocolateToast).setNoText()); new BookletChapter("leafBlower", entryItemsNonRF, new ItemStack(InitItems.itemLeafBlowerAdvanced), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeLeafBlower).setNoText(), new PageCrafting(3, ItemCrafting.recipeLeafBlowerAdvanced).setNoText()).setImportant(); ArrayList aiotPages = new ArrayList(); aiotPages.add(new PageTextOnly(aiotPages.size()+1)); diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java index 93bf4fa85..0ee5a67ae 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java @@ -52,7 +52,7 @@ public enum ConfigCrafting{ CHOCOLATE("Chocolate", ConfigCategories.FOOD_CRAFTING), CHOCOLATE_CAKE("Chocolate Cake", ConfigCategories.FOOD_CRAFTING), TOAST("Toast", ConfigCategories.FOOD_CRAFTING), - CHOCOTOAST("ChocoToast", ConfigCategories.FOOD_CRAFTING), + CHOCOLATE_TOAST("Chocolate Toast", ConfigCategories.FOOD_CRAFTING), LEAF_BLOWER("Leaf Blower", ConfigCategories.ITEMS_CRAFTING), LEAF_BLOWER_ADVANCED("Advanced Leaf Blower", ConfigCategories.ITEMS_CRAFTING), diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java index bcc0b7629..bd9a50fbf 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java @@ -40,7 +40,7 @@ public class FoodCrafting{ public static IRecipe recipeChocolate; public static IRecipe recipeChocolateCake; public static IRecipe recipeToast; - public static IRecipe recipeChocoToast; + public static IRecipe recipeChocolateToast; public static void init(){ @@ -197,10 +197,10 @@ public class FoodCrafting{ recipeToast = Util.GetRecipes.lastIRecipe(); } - //ChocoToast: - if(ConfigCrafting.CHOCOTOAST.isEnabled()){ - GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CHOCOTOAST.ordinal()), new ItemStack(InitItems.itemFoods, 1, TheFoods.TOAST.ordinal()), new ItemStack(InitItems.itemFoods, 1, TheFoods.CHOCOLATE.ordinal())); - recipeChocoToast = Util.GetRecipes.lastIRecipe(); + //Chocolate Toast + if(ConfigCrafting.CHOCOLATE_TOAST.isEnabled()){ + GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemFoods, 1, TheFoods.CHOCOLATE_TOAST.ordinal()), new ItemStack(InitItems.itemFoods, 1, TheFoods.TOAST.ordinal()), new ItemStack(InitItems.itemFoods, 1, TheFoods.CHOCOLATE.ordinal())); + recipeChocolateToast = Util.GetRecipes.lastIRecipe(); } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java index 6f444ad62..7b6a703d6 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java @@ -36,7 +36,7 @@ public enum TheFoods{ RICE("Rice", 2, 1F, false, 10, EnumRarity.uncommon), RICE_BREAD("RiceBread", 8, 3F, false, 25, EnumRarity.uncommon), DOUGHNUT("Doughnut", 4, 0.5F, false, 10, EnumRarity.epic), - CHOCOTOAST("ChocoToast", 8, 1.4F, false, 40, EnumRarity.rare); + CHOCOLATE_TOAST("ChocolateToast", 8, 1.4F, false, 40, EnumRarity.rare); public final String name; public final int healAmount; diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index cefb56546..1b1c9cd19 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -229,7 +229,7 @@ item.actuallyadditions.itemFoodHamburger.name=Hamburger item.actuallyadditions.itemFoodBigCookie.name=Big Cookie item.actuallyadditions.itemFoodSubmarineSandwich.name=Submarine Sandwich item.actuallyadditions.itemFoodToast.name=Toast -item.actuallyadditions.itemFoodChocoToast.name=Toast covered in Chocolate +item.actuallyadditions.itemFoodChocolateToast.name=Toast o' Chocolate item.actuallyadditions.itemFoodChocolate.name=Chocolate item.actuallyadditions.itemFoodChocolateCake.name=Chocolate Cake item.actuallyadditions.itemFoodNoodle.name=Noodle diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemFoodChocoToast.png b/src/main/resources/assets/actuallyadditions/textures/items/itemFoodChocoToast.png deleted file mode 100644 index 2d10d1738c8bc738cfb705b20d1a72cef7be4983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~mxPd>WJCVeN}$jcPZ!4!i_^(}{{OdUR&D5PbUM)F zd%-1=Y4zrFcWMuMTwql@CG`L1%^MOM9I|UgeEn;TPHa~d~ P=syNeS3j3^P6 Date: Sat, 24 Oct 2015 21:20:47 +0200 Subject: [PATCH 02/73] Textures! --- .../blocks/models/modelPinkFluffyUnicloud.png | Bin 0 -> 4845 bytes .../textures/items/itemFoodChocolateToast.png | Bin 0 -> 327 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/actuallyadditions/textures/blocks/models/modelPinkFluffyUnicloud.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemFoodChocolateToast.png diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/models/modelPinkFluffyUnicloud.png b/src/main/resources/assets/actuallyadditions/textures/blocks/models/modelPinkFluffyUnicloud.png new file mode 100644 index 0000000000000000000000000000000000000000..f666706e44bb27faf15667b855b003d436497afd GIT binary patch literal 4845 zcmai0g;&&F6aKB#vUH1tw6OG2(y=rP2rSYiv4oT$Dc#-eB1)%(qQIgwND4?VAT3f# zhrq}C7kua5XP!If%$$4fbLPyQxF1jz+JOLPZ6aVW21$CpkGZkw%Y?I36-f zu+I7}Iiff=e(-7~u-Ii9bGA8h^KnLQtL6yZG)B+?CeBtD(Gv?Lu2f>C_!-gP)3>rN zpb!S(@BqlcO?Iqa*X$tRJXl7Cm#u@~3jp$)Bmx5++65g#j4`)lzm@XLL7|bL4)3(b zTHsJ>Kp`MmsSHq11%;w>xeS0JT)=wB_SqWngdebe6tX!9grd*$0zrUTCMyl7C=Fnt zvX4~;9HoJpv8VAWfUyuj?V!~o3C!{XLK;R6>OlP`pktJrs1X1Y144SSQ9J-{AYeVf z&h7_9<^j~Ihek4gdF#lxpm$2;HOjPbNUDUHf%!cNjEn@BxkokVc&Wv0?%Cuk2z2@9 z(Zj+-$$lOU13*z4&E0E{uKh+y>qbY#lbcDc_fVF4x{Vm7r`?B&Q5-QS>*_WS%j(Kp8xC`K1P%>j-?YuKErONsQvpybo-BKlC4MM zS&K20dQFegGg&!5@d#GR7N?ZX)5|$=Yqz@0cZDOjEC$p&%Yg#Z_$w@IaZa@!ksEt= zteyeDVVisB4{k6{sAI&+nD6a@{IyyUClKnOk?siqmdYFg$iXK0elP$i7llFV6&a2@ z@AGxwGj`%(JBj{Ti$^MP^mHkaD?#i+8DCiQ)PyT>M~~DqL9GRUC@_h3=s8Abc#sNo z8Ga^}^&q>n0T*_1W5Nh=6$ijnHmvippl9*M?8#udyr^^5PIX+$1P+#OvDA8OT4`eH z!us(@7DIKWL)jPiBxB4~ThpWm09g3HXpEY0W>}-1><{9P@RkaR2a&4ph`!r-3+JcM z78QJd@!^4NqWIgb@70cE^C@!hexZ(E_X$LLo(l=|bt^SI<|E9o9co~!A+GLwQ2(?B zr!DTpcC5h{moiMHgHRmTSBb@jSy9~>VXQN&Ucti1Axbe%C_#u5sn_+0Eu%u~16M1> zMbG_bFyRmygM34D1K&Ourf684 zufJIF7D*wNVyaa8wpstZUQ7j*=*xV`kqBB1tWT_ABQX&ap2sNiBnZ=dG02M@5R+UvPRS_8;84e*+DlH9y>QoIy4Av?Me`Hr1R-vEl7%&*1 zDy1u8s!$c~Ncoarlj}HqlWs(}F1$pqsKIIt)5k(&OW)+j$Lc~-9sM#)tcR;%WbTy@ zv@Q3VsVzaas`9NQTtrjEs7e1Q(?OnKE!Xq>wYLu87I%5hQE>bc^#RW+4?~$KqD9!= z+@&fzC)>DMy;`qYZKqwlZm%3&)~?cKaur6Z*suA>{E-?eWfTv+WiV&3SPm(t)s~ey zsS~JjDP?%urtJIGt$aVX@QY<=A;P_U$-jN;k}*i|8hPz{S$?8MY>eMT%z?i^JbGWI zSIpC0hDor0;jbRtqFVu8YLjJ?vl5xsGA>g*rJAHlmgv-HzQ(cU+UMF=%!SXz%B7|K zTYEoWU%RD@r%W0ljp!d49(gx1ohMcxD?9_+D%dKRDOmnwZR%&r*Id#3*YHVm~(WF|7uH~F=t8FW%C~wip(5Wt*Ms?T!ZT{9=`H8-MV-|m*uGzIY z$OiR{4)v+Gu6sYDJtL?!DCt_3fFx#)w3^A3DcI}73u>vSQcL-xulMDHdXKZW1yROh z-)TPv`({}54Nswoh}ZY-0r*e7jd6LRH(5e1%QeBeaNRJ}$1Qe2TfsD= z+L`)KrM^{XHV1Tar*bdetjVp(NG!pYOss|_IzA128q)1{FSLqUhKI1<+T8}+jsxYP zoFEiVT$o~**}bdtfLE+vljWrr>`xo#_7oF~S`=v%Q^IS*H#%!s9S3$(Ygx~>a!1of zok*je1pk`;PGGZXlh7SZ{3t3W$|zbs*(28Y!MJdanD00i?zOCZshq96RDcrJm3+^y zDF&6R5^$E8muMAjmG2X9Fd3dQMjLB9*J6|ufYyn-J^!-&Z|^8(6}?Kd7D$&XIAG!7 z|8}(NII5hsQh<_ADq8^&tMfSXk0Lp=f;N%!kjj@c8RFl?)P-Ub92XytorRl2nRO1; zq1plIyJ;9Pe~w;}QofCr$VZi_7z7Dou|TSjHs6QE6(%dyE*z1bmg=cg#j2grjQWk* zbnqFfv5#uJ>2*u^B*>ga@Xe(uwFb|GAJVK;_6upsJp(0ZMA;iTd>x4!l+3O!@? zZW>%jm3V#d=5~*=i*hBsxinhKh@Z)Lv%SVyvQfsnnZUUwU?**!Y56h5G$D)BPnqW3 zQ6uet_~izD;LA@UPGXq!x^I=;L)m|Q`;2h;jG07g-X}4zW`$t#p$`*^Nzhp-|1e** zz##w1?3r1s?y%hW^zWsBe`*U4$zF@fnD}cRA-_4zZ--B2pbp0p(OKxAV1Wy)^}@U6 zz%AR+WoI(?gI03yl?j#Gge_@|^r-paXYa$tg$*jB&qn$0rL0_kd;gZX$(YpbZ+qRA zU)N&p(y|}W{xQ(uY@4A_Vs!Di-TyD`?etWkr0in*QGokd@7c*R?PBnYN7ti6ZF9bl z_G>Y^7^`E2J;gcrV$77h*$sB~02|`m;ahYxj#WFukBS((Njpg)gX5*-r3^)rMDG+n zmXnlRm49)){jVH8W;e!FNO$w@W~h#iRxtQ{YG-D2Ja_zU&S6f*SJzji*S|Y<=-)5& zb@efS`Q|4gY&tXdyiBIM{)#1p`_}QI;l$v3`BeseM#e2JPVUh^TM_<+ zyLl5ArKqh401e5nuJkhQd=^`EeQf{;-~@os2mrXaz2j{Fcqs$`zpVj4Di;9g+|#Xk zRRI7D)=*YN`pxf}j=3`!k}q*Yeh9;djw1~fLyN$p8)_@KN>xuNa+rY=V6`jExSeW*57|QBa6t0 zq%W;q&F*6UOS`-1F708BYdJB^uREuKxYdeS6q2Z7u`yKK5`w zzD_ag#^-&|2!yVnu;#9ndr@bV`?9&5+a*+G=2PR}tU9bHiXOI5S~+t)KKdZ;)YahTDk zaG&yn0(Uo6wZd+USHnZgEqimTE;YpCEy2nu! z)?vsF`#@jMO0Q()GT;v!{e0IM`6sF2s^TXp)Q^J3TnW$1B%b=Jxc4{#G{eM*o)V`s zZg`md`YG|_Rb{E*!3(x(Ov%zXwJN34;GRbQLqk&@o=hm~WVscDFQvtfhv<o z;&DtTKb}-o^Gp4MKPMAT*C!opuE;+)O>Mj=y;6IS;w^hmljw3}mP#lF_$ymN-RR6Q zmNqzmEZ!mqzV*35Lc6&q#QbUQCy6(?cX;#qw}o5HC?mevB0% zVN|*WR@kQ>Zg-2MFnOUIm(P)q!-b}zxX4nIRIm6>;=MB7Eo&+CmeFv5T_HYf16^Dj z6m;yNOD3U~u2Gbh!~eZ!85dBw&lCMJ$P@Pk6c1tAx}Ay#s5vJw9Yb-*uWT+srJ?IR zRX4GQ{5Tj1l(M zY@Bk%zINL$4HTL`{tMsaBuLul?kNxldNvUycXiz)a%5m;PGpeJU&>$IbSyKr^PXU) z1k?Jv=ee#|yq>pAPUTmjs1YRtHu!oDtySY#_2WVaHa4tVVU}RDU<-D4D-6_%q|xN~x3V_4xD+gPPfu6_YIX%58S{TE@{k zL`&Sq#gqRP84Xsf^p7mkWAC%7ice|(35PQFUDQ{xhH-lF!2RCsf1Ii`a9#S=_1fWH z`O9ls9$f!SI(?mt5}V5ljY*z5gvHCWsUq&cBtEM`>=x0cgKXA@qi}t6z8lFw_9*?* zZF)>qDN7R~t62PK)hJ~LzbPOwQ_o$fa>HlG+3jg0BkXM~-XK>*dB;>U$2eZU%R?%S zw7Rwudoi(MJPfSXK-PGnP}+FGQtl2?cV{&`qKcm;NDmqsb45H|`P(dAS=z~@8tct?7v>o3w*0>4=6mH!W8|_^$oFOHWuD(98zCg0q+OChWQ6459 z*K=?)OWo%zTGa>$nO7x%`aPh*AgXMWnv~~urJ}0fI$1E|w8KvlGFU~h218ECs5;N2 z^Gc;9J`I+IG_^ejYw1;hMp#m^$c$sG+?**hbgRK4V{e44^g6eAIC=2%j&RaP_@+{W z1~baKUK^~8pm{Eynl7WFysOFuQzj=C3p4bDcCLFTp9?tJmUAw<``=q9Hq)=I%cbo7 zC^UsL@buyhzJj#RDto1`WfqRUM#nyQl>f8c2&{?vyc}eG&u0@P<~}y!G4B{39%kpp5=uO2`FV{$?XZM7znrFx)&mzf9RpX7D=b$p65d zuTZh5_jZQ`G4JTTWJCVeN}$jcPZ!4!i_^(}{{OdUR&D5PbUM)F zd%-1=Y4zrFcWMuMTwql@CG`L1%^MOM9I|UgeEn;TPHa~d~ P=syNeS3j3^P6 Date: Sun, 25 Oct 2015 14:30:59 +0100 Subject: [PATCH 03/73] Changed Creative Tab Handling a bit --- .../actuallyadditions/blocks/InitBlocks.java | 14 +++++++------- .../actuallyadditions/creative/CreativeTab.java | 2 +- .../ellpeck/actuallyadditions/util/BlockUtil.java | 12 ++---------- .../ellpeck/actuallyadditions/util/ItemUtil.java | 6 +----- 4 files changed, 11 insertions(+), 23 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java index dc08c5274..93940a757 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java @@ -188,19 +188,19 @@ public class InitBlocks{ BlockUtil.register(blockFermentingBarrel); blockRice = new BlockPlant("blockRice", 6, 1, 2); - BlockUtil.register(blockRice, false); + BlockUtil.register(blockRice); CompatUtil.registerMFRPlant(blockRice); blockCanola = new BlockPlant("blockCanola", 4, 3, 3); - BlockUtil.register(blockCanola, false); + BlockUtil.register(blockCanola); CompatUtil.registerMFRPlant(blockCanola); blockFlax = new BlockPlant("blockFlax", 6, 2, 4); - BlockUtil.register(blockFlax, false); + BlockUtil.register(blockFlax); CompatUtil.registerMFRPlant(blockFlax); blockCoffee = new BlockPlant("blockCoffee", 6, 2, 2); - BlockUtil.register(blockCoffee, false); + BlockUtil.register(blockCoffee); CompatUtil.registerMFRPlant(blockCoffee); blockCompost = new BlockCompost(); @@ -267,7 +267,7 @@ public class InitBlocks{ BlockUtil.register(blockPhantomBooster); blockWildPlant = new BlockWildPlant(); - BlockUtil.register(blockWildPlant, BlockWildPlant.TheItemBlock.class, false); + BlockUtil.register(blockWildPlant, BlockWildPlant.TheItemBlock.class); registerFluids(); } @@ -287,7 +287,7 @@ public class InitBlocks{ //Canola Block if(fluidCanolaOil.getBlock() == null || ConfigBoolValues.PREVENT_CANOLA_BLOCK_OVERRIDE.isEnabled()){ blockCanolaOil = new BlockFluidFlowing(fluidCanolaOil, Material.water, "blockCanolaOil"); - BlockUtil.register(blockCanolaOil, false); + BlockUtil.register(blockCanolaOil); } else{ errorAlreadyRegistered("Canola Oil Block"); @@ -308,7 +308,7 @@ public class InitBlocks{ //Oil Block if(fluidOil.getBlock() == null || ConfigBoolValues.PREVENT_OIL_BLOCK_OVERRIDE.isEnabled()){ blockOil = new BlockFluidFlowing(fluidOil, Material.water, "blockOil"); - BlockUtil.register(blockOil, false); + BlockUtil.register(blockOil); } else{ errorAlreadyRegistered("Oil Block"); diff --git a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java index ef045fffa..d668cdcf5 100644 --- a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java +++ b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java @@ -39,7 +39,7 @@ public class CreativeTab extends CreativeTabs{ @Override public Item getTabIconItem(){ - return Item.getItemFromBlock(InitBlocks.blockPhantomLiquiface); + return InitItems.itemLexicon; } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java b/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java index f21d02579..a435df838 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java @@ -19,11 +19,7 @@ import net.minecraft.item.ItemBlock; public class BlockUtil{ public static void register(Block block, Class itemBlock){ - register(block, itemBlock, true); - } - - public static void register(Block block, Class itemBlock, boolean addTab){ - block.setCreativeTab(addTab ? CreativeTab.instance : null); + block.setCreativeTab(CreativeTab.instance); block.setBlockName(createUnlocalizedName(block)); GameRegistry.registerBlock(block, itemBlock, ((IActAddItemOrBlock)block).getName()); } @@ -33,10 +29,6 @@ public class BlockUtil{ } public static void register(Block block){ - register(block, ItemBlockBase.class, true); - } - - public static void register(Block block, boolean addTab){ - register(block, ItemBlockBase.class, addTab); + register(block, ItemBlockBase.class); } } diff --git a/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java b/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java index 0e97bcca5..8fc5883b2 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java @@ -36,11 +36,7 @@ public class ItemUtil{ } public static void register(Item item){ - register(item, true); - } - - public static void register(Item item, boolean addTab){ - item.setCreativeTab(addTab ? CreativeTab.instance : null); + item.setCreativeTab(CreativeTab.instance); item.setUnlocalizedName(createUnlocalizedName(item)); GameRegistry.registerItem(item, ((IActAddItemOrBlock)item).getName()); } From c494edc88b334b4bf45e5a29a9859b32c43cc0a4 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sun, 25 Oct 2015 23:19:01 +0100 Subject: [PATCH 04/73] Added SimpleOres AIOTs --- .../config/values/ConfigBoolValues.java | 3 +- .../items/InitForeignPaxels.java | 84 +++++++++++++----- .../actuallyadditions/items/InitItems.java | 16 ++-- .../items/tools/ItemAllToolAA.java | 27 ++++-- .../assets/actuallyadditions/lang/en_US.lang | 5 ++ .../textures/items/diamondPaxel.png | Bin 442 -> 0 bytes .../textures/items/emeraldPaxel.png | Bin 477 -> 0 bytes .../textures/items/goldPaxel.png | Bin 486 -> 0 bytes .../textures/items/ironPaxel.png | Bin 473 -> 0 bytes .../textures/items/obsidianPaxel.png | Bin 456 -> 0 bytes .../textures/items/paxelMTBronze.png | Bin 496 -> 0 bytes .../textures/items/paxelMTGlowstone.png | Bin 492 -> 0 bytes .../textures/items/paxelMTLapisLazuli.png | Bin 501 -> 0 bytes .../textures/items/paxelMTObsidian.png | Bin 456 -> 0 bytes .../textures/items/paxelMTOsmium.png | Bin 497 -> 0 bytes .../textures/items/paxelMTSteel.png | Bin 503 -> 0 bytes .../textures/items/paxelTFBronze.png | Bin 496 -> 0 bytes .../textures/items/paxelTFCopper.png | Bin 495 -> 0 bytes .../textures/items/paxelTFElectrum.png | Bin 495 -> 0 bytes .../textures/items/paxelTFInvar.png | Bin 500 -> 0 bytes .../textures/items/paxelTFLead.png | Bin 501 -> 0 bytes .../textures/items/paxelTFNickel.png | Bin 496 -> 0 bytes .../textures/items/paxelTFPlatinum.png | Bin 507 -> 0 bytes .../textures/items/paxelTFSilver.png | Bin 479 -> 0 bytes .../textures/items/paxelTFTin.png | Bin 503 -> 0 bytes .../textures/items/quartzPaxel.png | Bin 420 -> 0 bytes .../textures/items/stonePaxel.png | Bin 465 -> 0 bytes .../textures/items/woodenPaxel.png | Bin 467 -> 0 bytes 28 files changed, 101 insertions(+), 34 deletions(-) delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/diamondPaxel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/emeraldPaxel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/goldPaxel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/ironPaxel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/obsidianPaxel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelMTBronze.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelMTGlowstone.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelMTLapisLazuli.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelMTObsidian.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelMTOsmium.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelMTSteel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFBronze.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFCopper.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFElectrum.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFInvar.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFLead.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFNickel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFPlatinum.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFSilver.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/paxelTFTin.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/quartzPaxel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/stonePaxel.png delete mode 100644 src/main/resources/assets/actuallyadditions/textures/items/woodenPaxel.png diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java index 90e927631..0cf99c68c 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java @@ -34,7 +34,8 @@ public enum ConfigBoolValues{ TF_PAXELS("Thermal Foundation Paxels", ConfigCategories.OTHER, true, "If Paxels made of Thermal Foundation Materials should exist"), MT_PAXELS("MekanismTools Paxels", ConfigCategories.OTHER, true, "If Paxels made of MekanismTools Materials should exist"), - DUPLICATE_PAXELS("Allow Duplicate Paxels", ConfigCategories.OTHER, true, "If Paxels are allowed to have Duplicates (for Example ActuallyAdditions' Obsidian and MekanismTools' Obsidian)"), + SO_PAXELS("Simpleores Paxels", ConfigCategories.OTHER, true, "If Paxels made of SimpleOres Materials should exist"), + NR_PAXLES("NetherRocks Paxels", ConfigCategories.OTHER, true, "If Paxels made of Netherrock Materials should exist"), DO_RICE_GEN("Rice Gen", ConfigCategories.WORLD_GEN, true, "If Rice should generate in the World"), DO_CANOLA_GEN("Canola Gen", ConfigCategories.WORLD_GEN, true, "If Canola should generate in the World"), diff --git a/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java b/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java index f7d97186e..0199ee876 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java +++ b/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java @@ -27,37 +27,76 @@ import net.minecraftforge.oredict.ShapelessOreRecipe; public class InitForeignPaxels{ - public static final String[] MT_NAMES = new String[]{"Obsidian", "LapisLazuli", "Osmium", "Bronze", "Glowstone", "Steel"}; - private static final String THERMAL_FOUNDATION = "ThermalFoundation"; + //MekanismTools private static final String MEKANISM_TOOLS = "MekanismTools"; - private static final String[] TF_NAMES = new String[]{"Copper", "Tin", "Silver", "Lead", "Nickel", "Electrum", "Bronze", "Platinum", "Invar"}; + public static final int[] MT_COLORS = new int[]{4166, 2248890, 8882649, 12410135, 11451392, 3684412}; + public static final String[] MT_NAMES = new String[]{"Obsidian", "LapisLazuli", "Osmium", "Bronze", "Glowstone", "Steel"}; private static final String[] MT_REPAIR_NAMES = new String[]{"ingotRefinedObsidian", "gemLapis", "ingotOsmium", "ingotBronze", "ingotRefinedGlowstone", "ingotSteel"}; - public static Item[] tfPaxels = new Item[9]; private static Item[] mtPaxels = new Item[6]; + //ThermalFoundation + private static final String THERMAL_FOUNDATION = "ThermalFoundation"; + public static final int[] TF_COLORS = new int[]{13332762, 5407943, 5407895, 5394789, 12960613, 12960653, 12410135, 2999795, 10143162}; + private static final String[] TF_NAMES = new String[]{"Copper", "Tin", "Silver", "Lead", "Nickel", "Electrum", "Bronze", "Platinum", "Invar"}; + public static Item[] tfPaxels = new Item[9]; + + //SimpleOres + private static final String SIMPLE_ORES = "simpleores"; + public static final int[] SO_COLORS = new int[]{9409450, 2040021, 5714944, 526344, 545032}; + private static final String[] SO_NAMES = new String[]{"tin", "mythril", "copper", "onyx", "adamantium"}; + private static final String[] SO_REPAIR_NAMES = new String[]{"ingotTin", "ingotMythril", "ingotCopper", "gemOnyx", "ingotAdamantium"}; + public static Item[] soPaxels = new Item[5]; + public static void init(){ + //SimpleOres + if(ConfigBoolValues.SO_PAXELS.isEnabled()){ + if(Loader.isModLoaded(SIMPLE_ORES)){ + ModUtil.LOGGER.info("Initializing "+SIMPLE_ORES+" AIOTs..."); + + for(int i = 0; i < soPaxels.length; i++){ + Item axe = ItemUtil.getItemFromName(SIMPLE_ORES+":"+SO_NAMES[i]+"_axe"); + Item pickaxe = ItemUtil.getItemFromName(SIMPLE_ORES+":"+SO_NAMES[i]+"_pickaxe"); + Item hoe = ItemUtil.getItemFromName(SIMPLE_ORES+":"+SO_NAMES[i]+"_hoe"); + Item sword = ItemUtil.getItemFromName(SIMPLE_ORES+":"+SO_NAMES[i]+"_sword"); + Item shovel = ItemUtil.getItemFromName(SIMPLE_ORES+":"+SO_NAMES[i]+"_shovel"); + + if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){ + Item.ToolMaterial material = ((ItemTool)axe).func_150913_i(); + soPaxels[i] = new ItemAllToolAA(material, SO_REPAIR_NAMES[i], "paxelSO"+SO_NAMES[i], EnumRarity.rare, SO_COLORS[i]); + ItemUtil.register(soPaxels[i]); + + if(ConfigCrafting.PAXELS.isEnabled()){ + GameRegistry.addRecipe(new ShapelessOreRecipe(soPaxels[i], axe, pickaxe, hoe, sword, shovel)); + ToolCrafting.recipesPaxels.add(Util.GetRecipes.lastIRecipe()); + } + } + } + } + else{ + ModUtil.LOGGER.info(SIMPLE_ORES+" not loaded, can't initialize Special AIOTs."); + } + } + //MekanismTools if(ConfigBoolValues.MT_PAXELS.isEnabled()){ if(Loader.isModLoaded(MEKANISM_TOOLS)){ ModUtil.LOGGER.info("Initializing "+MEKANISM_TOOLS+" AIOTs..."); for(int i = 0; i < mtPaxels.length; i++){ - if(!(!ConfigBoolValues.DUPLICATE_PAXELS.isEnabled() && (i == 0 || (i == 3 && ConfigBoolValues.TF_PAXELS.isEnabled() && Loader.isModLoaded(THERMAL_FOUNDATION))))){ - Item axe = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Axe"); - Item pickaxe = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Pickaxe"); - Item hoe = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Hoe"); - Item sword = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Sword"); - Item shovel = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Shovel"); + Item axe = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Axe"); + Item pickaxe = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Pickaxe"); + Item hoe = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Hoe"); + Item sword = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Sword"); + Item shovel = ItemUtil.getItemFromName(MEKANISM_TOOLS+":"+MT_NAMES[i]+"Shovel"); - if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){ - Item.ToolMaterial material = ((ItemTool)axe).func_150913_i(); - mtPaxels[i] = new ItemAllToolAA(material, MT_REPAIR_NAMES[i], "paxelMT"+MT_NAMES[i], EnumRarity.rare); - ItemUtil.register(mtPaxels[i]); + if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){ + Item.ToolMaterial material = ((ItemTool)axe).func_150913_i(); + mtPaxels[i] = new ItemAllToolAA(material, MT_REPAIR_NAMES[i], "paxelMT"+MT_NAMES[i], EnumRarity.rare, MT_COLORS[i]); + ItemUtil.register(mtPaxels[i]); - if(ConfigCrafting.PAXELS.isEnabled()){ - GameRegistry.addRecipe(new ShapelessOreRecipe(mtPaxels[i], axe, pickaxe, hoe, sword, shovel)); - ToolCrafting.recipesPaxels.add(Util.GetRecipes.lastIRecipe()); - } + if(ConfigCrafting.PAXELS.isEnabled()){ + GameRegistry.addRecipe(new ShapelessOreRecipe(mtPaxels[i], axe, pickaxe, hoe, sword, shovel)); + ToolCrafting.recipesPaxels.add(Util.GetRecipes.lastIRecipe()); } } } @@ -67,7 +106,7 @@ public class InitForeignPaxels{ } } - //Thermal Foundation + //ThermalFoundation if(ConfigBoolValues.TF_PAXELS.isEnabled()){ if(Loader.isModLoaded(THERMAL_FOUNDATION)){ ModUtil.LOGGER.info("Initializing "+THERMAL_FOUNDATION+" AIOTs..."); @@ -81,7 +120,7 @@ public class InitForeignPaxels{ if(axe != null && pickaxe != null && hoe != null && sword != null && shovel != null && axe instanceof ItemTool){ Item.ToolMaterial material = ((ItemTool)axe).func_150913_i(); - tfPaxels[i] = new ItemAllToolAA(material, "ingot"+TF_NAMES[i], "paxelTF"+TF_NAMES[i], EnumRarity.rare); + tfPaxels[i] = new ItemAllToolAA(material, "ingot"+TF_NAMES[i], "paxelTF"+TF_NAMES[i], EnumRarity.rare, TF_COLORS[i]); ItemUtil.register(tfPaxels[i]); if(ConfigCrafting.PAXELS.isEnabled()){ @@ -108,5 +147,10 @@ public class InitForeignPaxels{ CreativeTab.instance.add(item); } } + for(Item item : soPaxels){ + if(item != null){ + CreativeTab.instance.add(item); + } + } } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/InitItems.java b/src/main/java/ellpeck/actuallyadditions/items/InitItems.java index d50739037..4614e6b86 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/InitItems.java +++ b/src/main/java/ellpeck/actuallyadditions/items/InitItems.java @@ -291,14 +291,14 @@ public class InitItems{ itemHoeQuartz = new ItemHoeAA(InitToolMaterials.toolMaterialQuartz, "gemQuartzBlack", "itemHoeQuartz", EnumRarity.rare); ItemUtil.registerItems(new Item[]{itemPickaxeQuartz, itemAxeQuartz, itemShovelQuartz, itemSwordQuartz, itemHoeQuartz}); - woodenPaxel = new ItemAllToolAA(Item.ToolMaterial.WOOD, "plankWood", "woodenPaxel", EnumRarity.uncommon); - stonePaxel = new ItemAllToolAA(Item.ToolMaterial.STONE, "stone", "stonePaxel", EnumRarity.uncommon); - ironPaxel = new ItemAllToolAA(Item.ToolMaterial.IRON, "ingotIron", "ironPaxel", EnumRarity.rare); - goldPaxel = new ItemAllToolAA(Item.ToolMaterial.GOLD, "ingotGold", "goldPaxel", EnumRarity.rare); - diamondPaxel = new ItemAllToolAA(Item.ToolMaterial.EMERALD, "gemDiamond", "diamondPaxel", EnumRarity.epic); - emeraldPaxel = new ItemAllToolAA(InitToolMaterials.toolMaterialEmerald, "gemEmerald", "emeraldPaxel", EnumRarity.epic); - obsidianPaxel = new ItemAllToolAA(InitToolMaterials.toolMaterialObsidian, "obsidian", "obsidianPaxel", EnumRarity.epic); - quartzPaxel = new ItemAllToolAA(InitToolMaterials.toolMaterialQuartz, "gemQuartzBlack", "quartzPaxel", EnumRarity.rare); + woodenPaxel = new ItemAllToolAA(Item.ToolMaterial.WOOD, "plankWood", "woodenPaxel", EnumRarity.uncommon, 5192733); + stonePaxel = new ItemAllToolAA(Item.ToolMaterial.STONE, "stone", "stonePaxel", EnumRarity.uncommon, 7040621); + ironPaxel = new ItemAllToolAA(Item.ToolMaterial.IRON, "ingotIron", "ironPaxel", EnumRarity.rare, 10920613); + goldPaxel = new ItemAllToolAA(Item.ToolMaterial.GOLD, "ingotGold", "goldPaxel", EnumRarity.rare, 16770048); + diamondPaxel = new ItemAllToolAA(Item.ToolMaterial.EMERALD, "gemDiamond", "diamondPaxel", EnumRarity.epic, 3250376); + emeraldPaxel = new ItemAllToolAA(InitToolMaterials.toolMaterialEmerald, "gemEmerald", "emeraldPaxel", EnumRarity.epic, 7723338); + obsidianPaxel = new ItemAllToolAA(InitToolMaterials.toolMaterialObsidian, "obsidian", "obsidianPaxel", EnumRarity.epic, 4166); + quartzPaxel = new ItemAllToolAA(InitToolMaterials.toolMaterialQuartz, "gemQuartzBlack", "quartzPaxel", EnumRarity.rare, 1710103); ItemUtil.registerItems(new Item[]{woodenPaxel, stonePaxel, ironPaxel, goldPaxel, diamondPaxel, emeraldPaxel, obsidianPaxel, quartzPaxel}); } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java index 05fe224f8..4120c08b5 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java @@ -37,16 +37,20 @@ import java.util.Set; @SuppressWarnings("unchecked") public class ItemAllToolAA extends ItemTool implements IActAddItemOrBlock{ + private IIcon overlayIcon; + private int color; + private String name; private EnumRarity rarity; private String repairItem; - public ItemAllToolAA(ToolMaterial toolMat, String repairItem, String unlocalizedName, EnumRarity rarity){ + public ItemAllToolAA(ToolMaterial toolMat, String repairItem, String unlocalizedName, EnumRarity rarity, int color){ super(4.0F, toolMat, Sets.newHashSet()); this.repairItem = repairItem; this.name = unlocalizedName; this.rarity = rarity; + this.color = color; this.setMaxDamage(this.getMaxDamage()*4); } @@ -91,13 +95,26 @@ public class ItemAllToolAA extends ItemTool implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) - public void registerIcons(IIconRegister iconReg){ - this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()); + public int getColorFromItemStack(ItemStack stack, int pass){ + return pass > 0 ? this.color : super.getColorFromItemStack(stack, pass); } @Override - public IIcon getIcon(ItemStack stack, int pass){ - return this.itemIcon; + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamageForRenderPass(int damage, int pass){ + return pass > 0 ? this.overlayIcon : super.getIconFromDamageForRenderPass(damage, pass); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister iconReg){ + this.itemIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":itemPaxel"); + this.overlayIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":itemPaxelOverlay"); + } + + @Override + public boolean requiresMultipleRenderPasses(){ + return true; } @Override diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 1b1c9cd19..016c6a7b6 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -171,6 +171,11 @@ item.actuallyadditions.paxelMTLapisLazuli.name=MT Lapis Lazuli AIOT item.actuallyadditions.paxelMTOsmium.name=MT Osmium AIOT item.actuallyadditions.paxelMTBronze.name=MT Bronze AIOT item.actuallyadditions.paxelMTSteel.name=MT Steel AIOT +item.actuallyadditions.paxelSOadamantium.name=SO Adamantium AIOT +item.actuallyadditions.paxelSOcopper.name=SO Copper AIOT +item.actuallyadditions.paxelSOtin.name=SO Tin AIOT +item.actuallyadditions.paxelSOonyx.name=SO Onyx AIOT +item.actuallyadditions.paxelSOmythril.name=SO Mythril AIOT item.actuallyadditions.itemPhantomConnector.name=Phantom Connector item.actuallyadditions.itemMiscCup.name=Empty Cup item.actuallyadditions.itemCoffee.name=Cup with Coffee diff --git a/src/main/resources/assets/actuallyadditions/textures/items/diamondPaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/diamondPaxel.png deleted file mode 100644 index 6c809a31277dcec74c4846fdb32b12c24fe4a8bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)1Ov=?v;?)fqubI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfeKrAZRmNnOm0y8EvY8S|xv6<2KrRD=b5Uwy zNotBhd1gt5g1e`0K#E=}I|BowoTrOph{fr-lQw!Eb`UvMFP`k!wA8C*l49P{*}E)u zTkI(L!e1cZUVfd6ug|Y(#q8$lg$g3>;>KRb7d;B_Ub*Fnh)uikM78VP-)8rHfA@Xg z`wI0LuCGNU<)5cDo$pUr%k;hfMkQZo(>9L>=cIq6He6|tu(549DDX>u)xEdOE8=+G z%R65XQxevdI;;^AkiVd6u>jX+fx1J!pUnjoiWW1!$#Xu~X3%tdH_JJ`3mNIfu4ao= zZ>&BzJ*4@S_=j7f3}JG6qT&|Zs&1UD&AL2g=7Y7psZj^5{pUWsvSi!IpPN3~a84IH zxakaM&pB83+`}Tj7d$(?>V3-ghdU=dn|Y*osoBB#_hL#+T+dIfcvtfLOKk4Phf%L) i{}d8_aQ^v^{(X$S&ZX&=tBntWg3!~|&t;ucLK6T>!m{)L diff --git a/src/main/resources/assets/actuallyadditions/textures/items/emeraldPaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/emeraldPaxel.png deleted file mode 100644 index e184b240074f4eb0072246ca6b1a0f08d2e28fe9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4j1P){0a5?}010qNS#tmY3ljhU3ljkVnw%H_000McNliru-v$s1Br#lus2BhM03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00BWsL_t(I%bk+DN&`U@ zhQFD_FhMO;5&}Y2@Y;w78jBR#Ng4%f!B(Ha%2)6O1Pe<`CD_LQG8spVM8jv^-AL=X z^q}uGq@nbfnbp!zIxs;mGta~({6%RfEe-Xj^Y6QX#ntkT4m|8Zq8;=;$A9z%MXHcC TCj4fU00000NkvXXu0mjfIDy8^ diff --git a/src/main/resources/assets/actuallyadditions/textures/items/goldPaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/goldPaxel.png deleted file mode 100644 index c0750f43da2714139c2f6bc3027e791a5b49c86a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 486 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)1Ov=?v;?)fqubI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfeKrAZRo<*mPwxSRWHUn|N}Tg^b5rw5fLsO!=c3fa zlGGH1^30M91$R&1fE2w{b_NDUFHaZ85R21uC)s)&4iITQ?>%|O@&!NGFD>-rd=$oV zJ*Bkp#WIVR3F>#PUnuN2=9n(-IK8YiH(dRA(83P4jYqESKlaa~NcKp8uT=8+PY?F} z-dp^xx<8TOC7U{r*4+mo`7=WH#wpx=pmMBKLp0jQ+(MM=cSWV`!5c568f1SKdfkBYy7r_XiiHcirW>^_DxLTy_Gx1)t-z{nwa3 zpY&&8&^h-sC%3=3xGnAS;foJ9^Rx4DT)y(u=)&mDHhr3 a_P`sfeKrAZRkdS&GV_2!vY8S|xv6<2KrRD=b5Uwy zNotBhd1gt5g1e`0K#E=}I|Bowt*47)h{fr-lMS;EIY_k4@AlG=ZE;%Ad_!1f*R*D< z9VKrsoxQu!UbTDw!p%RJf&5a77YRb@69r^~xb%cvW~~qQUTfI(zT&&>_kH)v%e#zI zdIZl+HFR@vS$27)MDmiVRn1$&B$HEYbG^>#d-@w29{V?)$h29|`K zF_$t-UX<;Q$e#L(+h0w1la8{d&>;gA-{4O+>Zgsewo1)D+xD>F$LtLC#;swcR&x(M z{8D8rb3AeP-FF8VUfsAL_ukfX|Ew>+Yd_f>FO99apT03dgWynPU&+T33=Wju z-7B@6r*6mYM{oa5j@)B6V@uStKc8m3IWX^e;L4Cw!c#1>*RH(&`l+qGz3J0!l{?F& zqp~{}d2G2BG~>aPdG&Gk@12Z#-F)tUHn+H|3zxb71m+7_ThINQdq31?&Z5g_pEZL* N*wfX|Wt~$(699E`!jJ#} diff --git a/src/main/resources/assets/actuallyadditions/textures/items/obsidianPaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/obsidianPaxel.png deleted file mode 100644 index 4915838bb4183a1d347b89c6d854af8da55f58e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)1Ov=?v;?)fqubI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfeKrAZ6~Xiu9T$K?vY8S|xv6<2KrRD=b5Uwy zNotBhd1gt5g1e`0K#E=}I|Bowj;D)bh{fr-6VLh`au8|Ve>-zE>s^6PR$-IED-GP}bug|=(xc6tF;X0|u vdZl_<;&O6Z^-3N-l~TQ&FstwBe%?C9Q?Dlb@mVZz2L-67tDnm{r-UW|nuN14 diff --git a/src/main/resources/assets/actuallyadditions/textures/items/paxelMTBronze.png b/src/main/resources/assets/actuallyadditions/textures/items/paxelMTBronze.png deleted file mode 100644 index 26e5bb41b6e06a87be1897b155bfbb2ccc28342a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~JC7)j@x4PDKzRn)%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6_|fq^l^)5S5w;`H1}d%X__h#Wod9sPUFlB|VG7Od=MIljZ9 zTjSB92M-=8?XdXPFTh?{ygpz>?46^J9%xym2x!TAWxj3i3YA*>GJM_SrL#GSQFy9#K+3b{A4PSwRsZujpmzmQwMXr=f>{g96#*#}h)WX$}) z!LxQ-=M~qb(>WMs%zm1)*5!aZi^(jtb9$?7Zxl7oy(V@jq|$i9Zo^hT@dtH`>>p*i z`q`Kn9_m-98F3vpD4cPk`S;qlO~QLDOoEC z0s)rN0&$kv_%)Jxi!V;eD7*JBcd!w&ua)-TlboUjnqb8g))UKZl@||^T-p75v z_ZGja?N4NQIm<&LWS3gd>c9nQseL8BDstBkYV7j4?y}1ww)ypx1CxUp)*U>2;PYhH zE&JaEtiJm2x5MAF>-H3CMYgvJgxRd-cr`0z;T9HTKma~b{lq2cD&8}L}bG(^N$~% z7&3T#X+G|LsY2H~;=YOE@+R9(jfnZ@4(+HtUVHP^%qi}c^6{bd2a^{wS-hXDa4J$R z=)lpOFK2!}mGOOM)ObBWv~kwe${^83C*dPAXR4<+xrPdQgtp8(S6}Viz1FSKi9flc fwAp_CWBXrh|L@N7|5_9L2^8p_u6{1-oD!MWFU8GbZ8()Nlj2>E@cM*00CJ^L_t(I%bk)>O9D|8 z#m}2Dd6SqG2}wSSFlcETp-r@Ck(&r2TD1@g+_vf?wCM{3K}8g8TDOfB1+8Y2Ns)yA zCV~hPbuwmds}Xa?(LAfiefRgyx!lLlhXVc>S!byqIJI?-h4}*jfTx>-rE*1O0e_4( z)=rRqs9-ueh?~2%2P|-T=@44!3)NZ{0MPjPM6L(|0Ij4WEEF7{ZlYXK8Eb{NlV_;c z4HOGHw6|A$H{Jmv7^V)!WSC|H`O-x*5dg4m(E%VFT8Aug7-kIx?Xn5m9&l139;DmH z2~3G3hz!UQN9JV@bv@6zZXpp5(&V^;(8x2Mvip!FZtIcU;KjL7T&o|*OYE<=YBn;l?mVe7dFJQ4#qWAHI9mF-e%^bN z#V%vc;~UW~iy6OZweNXkF-4|tk-yD)w&v+K*(`U&+pGGyshs3!(D9aFvt?B)`2KgI z1)uA(hs)~QvfL*95l|P*v|@8GbrujwmH498$&eCS(vX$P@69uF8B1b46LZ8-%kI~! zVpTbQ*C!didG|x&@vB2@M|Zuu^7X=Zi#(3_`>_HuFGr+)NZozx@MZS%>l<}0-%LGM z{ypD#gW!_IeIfWO0>r5 zdGC93<0e6ojwLC@Yx|hi%f|`Li(K;OV~5#^g_@fu2{(Fpt$Q;+IqdU~!-Wm!*nA5z zzl)sK2>z|hbYTNemja{C<|etGNqa4it$EUt(SDszuONr}v_^6mw@H@0hi2g$E2lsp zv2=ThwqS#Vh^&Iy_Qpk3g*n~tzx!~%%evrgy;^YQPaeVe8*DEZWW;^CnXR)}hhd82 zhc{dLTh_Zgd@1JoxomFWod;*1YF;`Y8pmB<0Jw4jQYfnatDUHQJti z{hoi}{LZhrw#j?$%-^cFVevr&&H_nycE%p4PYbTrE j?6hogvA$tKT4xo^1W=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<3fz`z*o>Eak-aeD5g{oYK8636$yuT)>5P&Pfz{zcKmTZ>#X zI5Sr-+`rg#k)qTR!|tYx^30Alj!BCYH98z(qM8mUTIzfW@_yv7cgOOVF1tUQ?7w{a zv)%mXziTVv+Z30$B&W=^J$&Fd`|*ymXB4N`GTc9Za8lF>V^yiePtNJZap%vF=x1>F z&cJ==hR>pqbq<%k6qH{4G6#l3$f|gb{=S6jY}qWu^AYNEZdp4mzS;CGuz8hO;QIQe zjsywc3Jd-odFGqPZY{(>`;@)$)vyFYL>$Ez4?c?G5SUIwZDwyPBh%eblKz} zcU+2|U%={Vk_-iZAG|b_|MSdxot{5XIGX=CoBA`?JGP-87rnBb{3-9;%hyTbGCXYu z3g=WanLqE4X*@4qaKAD)bYY}wLN#yTB+b$pYJrnZ8Xi=z_V+#YZIQ-F6|W-y=ll2e p9o_s{x@eD#!y4f&cE{_#aC^i}dpPGWV*x1qJzf1=);T3K0RR`)#e)C< diff --git a/src/main/resources/assets/actuallyadditions/textures/items/paxelTFBronze.png b/src/main/resources/assets/actuallyadditions/textures/items/paxelTFBronze.png deleted file mode 100644 index 5443785130717da2a61d53fb7efaa4fe2259ebb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~JC7)X5oEak-aeD5gz21idM2?>Kj{d!7N!G$83s!cs9N%Hl zt?_8lg9ne4c36Dt7ho?eULUX`_Ri5q545aO1hizmGT*j$g-We`8NP1v(pe_Q=6&4v zyZZT^-*Sfqfl;$!7zeliuv+mk1|Wz9LD$dQX`_vXJBm@$X7fOoyD#Qk`u zzgv4^Rx&cIxN6OCiiN>0@ z;90w^^NQ=z=^P9*WvF)I#blP+Ila}kH;NkPUK2YMQfa(lw_&TF_=7q|_Kz}M z{cOw(5A`e5jJOUP6wWx&{Cn-&CgD96@`t8=Yx;fY_<<#H>dz;CZkI2pIKaVjT4e|PYJ0gTe~DWM4fJB!I( diff --git a/src/main/resources/assets/actuallyadditions/textures/items/paxelTFCopper.png b/src/main/resources/assets/actuallyadditions/textures/items/paxelTFCopper.png deleted file mode 100644 index a17df28de6df4d8b87118d946ab2d464b9cc089a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVWFU8GbZ8()Nlj2>E@cM*00C1;L_t(I%bk)zC`UNb1Swy^kI(TJy#pcyoa_`wXfXf)002ovPDHLkV1oQ{(0%{_ diff --git a/src/main/resources/assets/actuallyadditions/textures/items/paxelTFElectrum.png b/src/main/resources/assets/actuallyadditions/textures/items/paxelTFElectrum.png deleted file mode 100644 index f8fd4936de5a16561840ef84792d57a7523de982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495 zcmVWFU8GbZ8()Nlj2>E@cM*00C1;L_t(I%bk)zC`UNb1Swy^kI(TJy#pcyoa_`wXfXf)002ovPDHLkV1mpoqPQgC)skL4mO!=2?Xf9+iz}vmzbpUz zPIV@M2+)Nms5Z?>N}KOTPSk>YmhW*~wjb=ZdYrUZZxwn%((vi*T1>;!tJxC8ReMF1qHsRtDnm{r-UW|4%*7! diff --git a/src/main/resources/assets/actuallyadditions/textures/items/paxelTFLead.png b/src/main/resources/assets/actuallyadditions/textures/items/paxelTFLead.png deleted file mode 100644 index c12a7b28f9c6079c40da1f7dba12aee6fc76c085..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 501 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~JC7(6m%K~wSD=t=W=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<3fz`z*k>Eak-aeD5g{oYK8636$yuhbG1l_*b%y>*h;mtEJF zmsQu)WDD!1JO7njyn|g___7>x^*EhOxE@{TKRqGj*FsrV(K4^^CaTxwUVmC%bMN`* zy8Y)r@8hxcm>BA`J}71CC(GVRztxwV(E6As+qIM_IAv9~_G=hKhKz9m>#s2RzTjyinirPAF{^u;`ec30ReZ50xf4T1|Ys>e`R@*;tNRW`5 zSM2xTiH)IVQo)M*mCwFD74U6k(^;>`CA9RBq!4Roj_{6|mWz5KyB8@;)bNO%TmSu* n*k{Y$9RApj(x&_KAKU+8(lMPir!-qc5ES~Ju6{1-oD!M<9xuVn diff --git a/src/main/resources/assets/actuallyadditions/textures/items/paxelTFNickel.png b/src/main/resources/assets/actuallyadditions/textures/items/paxelTFNickel.png deleted file mode 100644 index 9272ffbe431d77b480d5cf3c8ff208d1221a6d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~JC7)X%Eu*-b^wKBGeaUuobz*YQ}arITm}Z`qSVBa z)D(sC%#sWRcTeAd6une-1_s6uPZ!4!i_>!_?e#t!AaeA)cl7TyOR^R&S+KI3<@gSZ zZjDEa9z1xYw8P?CzW{q-@%n%jv3HI>dZ1;MBA_MfmHD>4D^zOj%kXuRm(DUdHt*xU z-__6W{FXZ`5F|R$U`>eY5+5r!^OLDS-kvGPp1-$EJCGN*N z{oUFVvyzcv#Z_yDQ!EU=ds*aqlB}n-OuH)iy4}CO{6cR1qLtzk^+P^}WFJ&HkTLTE z2hZAVomX6!PUm2lG5cxGT9*UvEGDzm&greTy;0OS_nO$DkV@kXyA50Y#2?f#vVWB6 z>StqSc&J~YX2f;apm4^C=HF}IHVN;skUuo_Ths4D#}6!tQ-41BbGv*&#Ub|o19OBe zEdAY^B*bga8NXlao~dV*R>>RrsAP7OYUHDo*$2*^X`GOxdrC+>@)7gg`tP^Ij9*IJ jl-ninnti|h@%k^UheBouxxUz+1qygiS3j3^P6)xxOIhkxRI?c8@?}jODoYkF*mIOe(6`sasQHr3n|E7XpH+6<|M>S_ z`}^;EkM}QR_w4d|5jts6(AssuZ_IorEfTuF);X-(*fa3uqc0NIPui$8FJ@r4$JHa} z`r*Tmrj&IoN=_?3brv@;D186Zw!q(^qK-3C_uP&6h}~9)-F@Akt?Zfoo2hGQ`HW?q zS$i4P&p-6eR}j1V-}lNCh1ExA8tu;5IcMiqUki)2{KGj-j18qxw~B6fYt}Mpzm7KG zVa}T_+`jvEh3*nbhJv{d4tU7NOtp6TR`#IGGP=sbx+3vdbHt*akbSqzH1nU=6a?io z)!tM5z<18Bac;4O0nhn_{eRC$udd_z$sV;%vBM}<%}AxgC{pc3+OwA*H(pz$a7v}4 vDEj&Tz0;0H#j2k^u6Km7A%5PgpXL7;+&O2T7uYLdk03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00BcuL_t(I%bk<4OF~f? z#eetm-VnJcgb7cZg4UMi1_^>|{sDJ&=uhzAP52gyiLM- zz0P<%W;7ZhBFyJ=00Edzr{wc_YPA|+7%KHw+-x?9qKL_4!f-fbHk%ZLi~J$%H(*=!cAb$Ws{=R%=CCX-2@`SzwH zXQji$HjFXS@At(RBO4R!GIOz5OmJ%bW1wHR7G{i*_4;C@b1o5WS7?B0wYv9pegiw; Vp^i0@5qtmu002ovPDHLkV1n$<$u9r^ diff --git a/src/main/resources/assets/actuallyadditions/textures/items/paxelTFTin.png b/src/main/resources/assets/actuallyadditions/textures/items/paxelTFTin.png deleted file mode 100644 index 07e82efe6dcba40c209eb8de26a2119e4e2e2a97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~JC7)nbm^D1>_8#e%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK2YokTKfR#WBR<^xVm|-iHGuTF?6itq7HAN)o-is9Q)WDWI^Y zTcDjw@7&!l?i_th`yIO<1PI8)FewSmaam&Fk@+_-*HKqgr0egl+Pgm z^8L;jHvS;q$qzzTB?iqc-sNFCF>8iO>FWtwbeBn~&6Pb`SUSB`ii?RsMg2oTz4*%- z#+P@bJ2+a`3ju?`W`BKxjYUK2(@>S%?v48k9zBs*TExn~-c{w@<`d%f2c=uyXYty3 zy6g-(npyMSJTSOvNv>h7=A(#nkD^2t9SC^5hm(!r+Den+x(P;&k!xJc4@k4@_jk&v z7S=Zh$~dW8$h>iU{85J8I{L%!C~NUM3CV74wXrT*(OI)Yii-OpcdAvmyldC!ddGQZ zj=EdB!gtm?<#GKj8Aexbf0F82cKK;;n~1OaahAJpY((YqWVL4bbuHUo`mg?aVZ`$} lGW@$IFfb%vE}mEaoIfF9&ddgj7Yd;8_jL7hS?83{1OOB0yz~G7 diff --git a/src/main/resources/assets/actuallyadditions/textures/items/quartzPaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/quartzPaxel.png deleted file mode 100644 index 6e5e35defcbf78fee77fe115bc82d438ff393051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP~yQHw0(x-{M&w)a+nIRD+&iT2ysd*(pE(3#eQEFmI zYKlU6W=V#EyQgnJie4%^0|O(6r;B5V#p$_$hJHs31m=8|at+fG(urLn{DD6v}*Y~`@fRtaSn76tKC_H%{l8D2tR=Wm$J=0Y8vBxpx(`*G3va~5E_iJv zaM7_pQpx^a=#L+F9==w;aB-`i=Kj6)=T97)QOfRp>dc&8L*@PZVqU*JCY#ed^J?|_ z-|`m41zu^{#+@@GXZ~DKbZhqBoLO$0`_&u1bsD<;dfyO#By!^2h{$=dpuqBU^>bP0 Hl+XkKuWp)1 diff --git a/src/main/resources/assets/actuallyadditions/textures/items/stonePaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/stonePaxel.png deleted file mode 100644 index 449737ee18a65818b9a2d14fe6ef5d2d53918e50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP){0a5?}010qNS#tmY3ljhU3ljkVnw%H_000McNliru-v$s1B{!`8JZt~}03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00A{gL_t(I%bk%iYr;Sn zhM!A3BrPsI1DVX)#i2_^>Dr~gqm%!@LHrpGf}^Wo*N%cqK`dQU>QGD^ge-^nbxKgw zD8AEichCF2-<{$Hg<&Z9+Pwwt^?LZe&tkElaw#EK9LFk$=kqzuW|PrqbZC%+?RJ|a zNm#8`hzMDh0SHjQolb{1j+NSnyWK99lABpe|Jh zh@uFsHP%{YvsnQj8JyBf$po$S(H*A@ zetvr3<1^*^Cp+7;QkFb;|2=?fwHl7&ls70#uGi~$o_F5hTym~zwMxI=FCOr~;F_6( zAUNJM#)vUS-d-E>*tnOnUopnW$<5(#C?^lEklF|LXS-Jav$>h~a*|6T00000NkvXX Hu0mjfm1e}9 diff --git a/src/main/resources/assets/actuallyadditions/textures/items/woodenPaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/woodenPaxel.png deleted file mode 100644 index d808766612e71481e0b8c145d92eeda433253b68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP){0a5?}010qNS#tmY3ljhU3ljkVnw%H_000McNliru-v$s1DHl5>Q>Xv{03B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00B2iL_t(I%bk(EP69y` zM$esHR!0aD5)4~_jfJ5zCMHG-OKfb^M=lDVX0xm*7ai^&->{U- zc+?{JaHq)4U5|&Sfz0#Siz;7Ux2IseV*TF1qRM$~vzk$hXTCVDn(b< z@dZwGu*}Ts+01NEJIZKB&8?jDrUuU&Rg?O-gd`3Qzasf-f^V8YljmS#CguPD002ov JPDHLkV1hXTx|{$2 From c88575e151e2c2d9ad59a048ad279e61ee65fe9c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sun, 25 Oct 2015 23:19:17 +0100 Subject: [PATCH 05/73] New AIOT Textures --- .../textures/items/itemPaxel.png | Bin 0 -> 291 bytes .../textures/items/itemPaxelOverlay.png | Bin 0 -> 370 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemPaxel.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemPaxelOverlay.png diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemPaxel.png b/src/main/resources/assets/actuallyadditions/textures/items/itemPaxel.png new file mode 100644 index 0000000000000000000000000000000000000000..56f2ff5fb5bcd1cb0eb25ac062604afdde2ea178 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p>QK$!8;-MT+OLG}_)Usv|~?2^L5Qbq}>^MFDUC9V-A!TD(= z<%vb93~dIoxCe|nPd1JyKox;Tbd_%H3<$lGAR!*V(J^0HRW8;xzI z38Kr)43$2fu2j*9vwHctph#$9`~^cMS!F2EGV z^|a>yE;;?njdLT@K_GQ7`Dy3=HI4_9mmY~<=Xmfk*Y23+rsbk#JK0$Ifku6_o}~Ag Xxp2Y;ah@|k$1r%h`njxgN@xNAGD&2n literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemPaxelOverlay.png b/src/main/resources/assets/actuallyadditions/textures/items/itemPaxelOverlay.png new file mode 100644 index 0000000000000000000000000000000000000000..2c68cb14a24422b09fe3ffe1cf446274610c8318 GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85p>QK$!8;-MT+OLG}_)Usv|~?2^L5Qbq}>^MFDUC9V-A!TD(= z<%vb93~dIoxCe|nPd1Jzvcba4!^@IN|vFITgHh+FL?n@OA3D|gi| znBAAx#IcS`sqX3Sg3BS7r|l}SSm1fiP=dF|&|cV8P~?4+e}GjV^J9yB{5$*uN@^m- zCT`E&%~tZ!=KPD_a=w=rtjk`KndLm?dg<1S;+6NyXUuBD4KQp7_;6?qOn=c{Sr_nPuw`a$>GUGM4=B-kwP-DZ?q zukG!iUo(l@wN8CH1N(_ci^E6LZ?gR;-ZA+-lieG>cdR}i7 Date: Sun, 25 Oct 2015 23:22:26 +0100 Subject: [PATCH 06/73] Remove unnecessary Config --- .../actuallyadditions/config/values/ConfigBoolValues.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java index 0cf99c68c..de166621b 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java @@ -35,7 +35,6 @@ public enum ConfigBoolValues{ TF_PAXELS("Thermal Foundation Paxels", ConfigCategories.OTHER, true, "If Paxels made of Thermal Foundation Materials should exist"), MT_PAXELS("MekanismTools Paxels", ConfigCategories.OTHER, true, "If Paxels made of MekanismTools Materials should exist"), SO_PAXELS("Simpleores Paxels", ConfigCategories.OTHER, true, "If Paxels made of SimpleOres Materials should exist"), - NR_PAXLES("NetherRocks Paxels", ConfigCategories.OTHER, true, "If Paxels made of Netherrock Materials should exist"), DO_RICE_GEN("Rice Gen", ConfigCategories.WORLD_GEN, true, "If Rice should generate in the World"), DO_CANOLA_GEN("Canola Gen", ConfigCategories.WORLD_GEN, true, "If Canola should generate in the World"), From f520c87d94d082b33ab3df55712541bcb4833728 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 26 Oct 2015 22:28:49 +0100 Subject: [PATCH 07/73] Added Laser Relay Renderer. Differently than originally planned, but it works and looks nice. Thanks to xdjackiexd though --- .../blocks/render/ModelLaserRelay.java | 21 ----- .../blocks/render/RenderLaserRelay.java | 5 -- .../items/ItemLaserWrench.java | 1 + .../items/ItemPhantomConnector.java | 2 +- .../tile/TileEntityLaserRelay.java | 83 +++++-------------- .../actuallyadditions/util/WorldPos.java | 5 ++ 6 files changed, 28 insertions(+), 89 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java index ac9b60b27..063fe66c7 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java @@ -10,15 +10,9 @@ package ellpeck.actuallyadditions.blocks.render; -import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; -import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; -import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.client.model.ModelRenderer; -import net.minecraft.tileentity.TileEntity; import org.lwjgl.opengl.GL11; -import java.util.ArrayList; - /** * Made by Canitzp. * Thanks. Seriously. It looks really awesome. I don't think I could do this. @@ -185,21 +179,6 @@ public class ModelLaserRelay extends ModelBaseAA{ return "modelLaserRelay"; } - @Override - public void renderExtra(float f, TileEntity tile){ - TileEntityLaserRelay relay = (TileEntityLaserRelay)tile; - WorldPos firstWP = new WorldPos(relay.getWorldObj(), relay.xCoord, relay.yCoord, relay.zCoord); - ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(firstWP); - if(network != null){ - for(LaserRelayConnectionHandler.ConnectionPair aPair : network){ - TileEntityLaserRelay firstRelay = (TileEntityLaserRelay) aPair.firstRelay.getTileEntity(); - if(aPair.contains(firstWP) && aPair.firstRelay.isEqual(firstWP)){ - firstRelay.drawLine(aPair.firstRelay, aPair.secondRelay); - } - } - } - } - @Override public boolean doesRotate(){ return true; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java index e65b9524a..b80383699 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java @@ -11,7 +11,6 @@ package ellpeck.actuallyadditions.blocks.render; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; @@ -54,11 +53,7 @@ public class RenderLaserRelay extends RenderTileEntity{ } theModel.render(0.0625F); - //A Random texture, so it is a smooth Laser! - bindTexture(new ResourceLocation("actuallyadditions:textures/blocks/blockBreaker.png")); - theModel.renderExtra(0.0625F, tile); GL11.glPopMatrix(); - } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java index c556a4ffd..ed2d05d5e 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java @@ -60,6 +60,7 @@ public class ItemLaserWrench extends Item implements IActAddItemOrBlock{ } else{ player.addChatComponentMessage(new ChatComponentText(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".laser.cantConnect.desc"))); + ItemPhantomConnector.clearStorage(stack); } } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java index 546ff22a9..8eded08e5 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java @@ -83,7 +83,7 @@ public class ItemPhantomConnector extends Item implements IActAddItemOrBlock{ int y = tag.getInteger("YCoordOfTileStored"); int z = tag.getInteger("ZCoordOfTileStored"); World world = DimensionManager.getWorld(tag.getInteger("WorldOfTileStored")); - if(x != 0 && y != 0 && z != 0 && world != null){ + if(!(x == 0 && y == 0 && z == 0) && world != null){ return new WorldPos(world, x, y, z); } } diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index ff0910afe..8de4be113 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -13,20 +13,16 @@ package ellpeck.actuallyadditions.tile; import cofh.api.energy.IEnergyReceiver; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; -import net.minecraft.client.Minecraft; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraftforge.common.util.ForgeDirection; -import org.lwjgl.opengl.GL11; import java.util.ArrayList; public class TileEntityLaserRelay extends TileEntityBase implements IEnergyReceiver{ - private GLColor laserColor = GLColor.RED_PURE; - @Override public void invalidate(){ super.invalidate(); @@ -36,8 +32,27 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei } @Override - public boolean canUpdate(){ - return false; + public void updateEntity(){ + if(this.worldObj.isRemote){ + if(this.worldObj.rand.nextInt(4) == 0){ + WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); + ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); + if(network != null){ + for(LaserRelayConnectionHandler.ConnectionPair aPair : network){ + if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ + int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); + int difY = aPair.firstRelay.getY()-aPair.secondRelay.getY(); + int difZ = aPair.firstRelay.getZ()-aPair.secondRelay.getZ(); + + double distance = aPair.firstRelay.toVec().distanceTo(aPair.secondRelay.toVec()); + for(double i = 0; i <= 1; i += 1/(distance*4)){ + this.worldObj.spawnParticle("reddust", (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0, 0, 0); + } + } + } + } + } + } } @Override @@ -100,60 +115,4 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei public boolean canConnectEnergy(ForgeDirection from){ return true; } - - public void drawLine(WorldPos firstPos, WorldPos secondPos){ - double x = firstPos.getX() - secondPos.getX(); - double y = firstPos.getY() - secondPos.getY() + 1; - double z = -(firstPos.getZ() - secondPos.getZ()); - double relativePlayerBlockLocation = Minecraft.getMinecraft().thePlayer.posY - firstPos.getY(); - float f; - if(relativePlayerBlockLocation < 10) f=5; - else if(relativePlayerBlockLocation < 20 && relativePlayerBlockLocation > 10) f = 4; - else if(relativePlayerBlockLocation < 30 && relativePlayerBlockLocation > 20) f = 3; - else if(relativePlayerBlockLocation < 40 && relativePlayerBlockLocation > 30) f = 2; - else if(relativePlayerBlockLocation < 50 && relativePlayerBlockLocation > 40) f = 1; - else f=1; - GL11.glPushMatrix(); - GL11.glLineWidth(f); - GL11.glBegin(GL11.GL_LINE_STRIP); - { - GL11.glColor3f(this.laserColor.getRed(), this.laserColor.getGreen(), this.laserColor.getBlue()); - GL11.glVertex3d(x, y, z); - GL11.glVertex3d(0, 1, 0); - } - GL11.glEnd(); - GL11.glLineWidth(1); - GL11.glPopMatrix(); - } - - public void changeLineColor(GLColor color){this.laserColor = color;} - - - //Colors for the Laser: - public enum GLColor{ - - RED_PURE(1.0F, 0, 0), - GREEN_PURE(0, 1.0F, 0), - BLUE_PURE(0, 0, 1.0F), - DARK_YELLOW(1, 1, 0); - - private float red, green, blue; - GLColor(float red, float green, float blue){ - this.red = red; - this.green = green; - this.blue = blue; - } - - public float getRed() { - return red; - } - - public float getGreen() { - return green; - } - - public float getBlue() { - return blue; - } - } } diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java b/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java index be5b6f6c1..883fdb591 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java @@ -14,6 +14,7 @@ import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; @@ -84,4 +85,8 @@ public class WorldPos{ public String toString(){ return "["+this.x+", "+this.y+", "+this.z+" in world "+this.worldID+"]"; } + + public Vec3 toVec(){ + return Vec3.createVectorHelper(this.x, this.y, this.z); + } } From ad5698dcd6e3e61c674d6901fb2a7e40cd72af9e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 26 Oct 2015 22:47:26 +0100 Subject: [PATCH 08/73] Phantomface Particles --- .../tile/TileEntityPhantomface.java | 15 +++++++++++++++ .../ellpeck/actuallyadditions/util/WorldUtil.java | 1 + 2 files changed, 16 insertions(+) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java index 787f1ffef..3aad3319f 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java @@ -53,6 +53,21 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP WorldUtil.updateTileAndTilesAround(this); } } + else{ + if(this.boundPosition != null){ + if(this.worldObj.rand.nextInt(2) == 0){ + double d1 = (double)((float)this.boundPosition.getY()+worldObj.rand.nextFloat()); + int i1 = worldObj.rand.nextInt(2)*2-1; + int j1 = worldObj.rand.nextInt(2)*2-1; + double d4 = ((double)worldObj.rand.nextFloat()-0.5D)*0.125D; + double d2 = (double)this.boundPosition.getZ()+0.5D+0.25D*(double)j1; + double d5 = (double)(worldObj.rand.nextFloat()*1.0F*(float)j1); + double d0 = (double)this.boundPosition.getX()+0.5D+0.25D*(double)i1; + double d3 = (double)(worldObj.rand.nextFloat()*1.0F*(float)i1); + worldObj.spawnParticle("portal", d0, d1, d2, d3, d4, d5); + } + } + } } public static int upgradeRange(int defaultRange, World world, int x, int y, int z){ diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java index c3d292bc9..babde58f6 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java @@ -116,6 +116,7 @@ public class WorldUtil{ tile.getWorldObj().markBlockForUpdate(tile.xCoord, tile.yCoord-1, tile.zCoord); tile.getWorldObj().markBlockForUpdate(tile.xCoord, tile.yCoord, tile.zCoord+1); tile.getWorldObj().markBlockForUpdate(tile.xCoord, tile.yCoord, tile.zCoord-1); + tile.getWorldObj().markBlockForUpdate(tile.xCoord, tile.yCoord, tile.zCoord); tile.markDirty(); } From fa424644c755f47d3c5674904a232d16f8ce3799 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 27 Oct 2015 08:16:36 +0100 Subject: [PATCH 09/73] Added Laser Relay Particle Config Option --- .../actuallyadditions/config/values/ConfigBoolValues.java | 3 ++- .../ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java index de166621b..a5af772d6 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java @@ -56,7 +56,8 @@ public enum ConfigBoolValues{ SHOW_BOOKLET_INFO("Booklet Quick Opening Info", ConfigCategories.TOOL_VALUES, true, "If the 'Press key for more information'-text should show when the item has a page in the booklet"), GIVE_BOOKLET_ON_FIRST_CRAFT("Give Booklet on First Craft", ConfigCategories.OTHER, true, "If the booklet should be given to the player when he first crafts something from the Mod"), - ENABLE_SEASONAL("Seasonal Mode", ConfigCategories.OTHER, true, "If Seasonal Mode is enabled"); + ENABLE_SEASONAL("Seasonal Mode", ConfigCategories.OTHER, true, "If Seasonal Mode is enabled"), + LESS_LASER_RELAY_PARTICLES("Laser Relay: Particles", ConfigCategories.MACHINE_VALUES, false, "If the Laser Relay should have less laser particles to prevent lag"); public final String name; public final String category; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 8de4be113..0661d6f59 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -11,6 +11,7 @@ package ellpeck.actuallyadditions.tile; import cofh.api.energy.IEnergyReceiver; +import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; import net.minecraft.nbt.NBTTagCompound; @@ -34,7 +35,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void updateEntity(){ if(this.worldObj.isRemote){ - if(this.worldObj.rand.nextInt(4) == 0){ + if(this.worldObj.rand.nextInt(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 8 : 4) == 0){ WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); if(network != null){ @@ -45,7 +46,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei int difZ = aPair.firstRelay.getZ()-aPair.secondRelay.getZ(); double distance = aPair.firstRelay.toVec().distanceTo(aPair.secondRelay.toVec()); - for(double i = 0; i <= 1; i += 1/(distance*4)){ + for(double i = 0; i <= 1; i += 1/(distance*(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 2 : 4))){ this.worldObj.spawnParticle("reddust", (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0, 0, 0); } } From b8ba00ed839a7d40feb93a7a2c26367299f1a78e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 27 Oct 2015 20:28:48 +0100 Subject: [PATCH 10/73] Made Laser Particles render up to a range of 64 instead of the default 16 --- .../tile/TileEntityLaserRelay.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 0661d6f59..30c37cc2d 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -14,6 +14,8 @@ import cofh.api.energy.IEnergyReceiver; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityReddustFX; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -35,19 +37,21 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void updateEntity(){ if(this.worldObj.isRemote){ - if(this.worldObj.rand.nextInt(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 8 : 4) == 0){ + if(this.worldObj.rand.nextInt(2) == 0){ WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); if(network != null){ for(LaserRelayConnectionHandler.ConnectionPair aPair : network){ if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ - int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); - int difY = aPair.firstRelay.getY()-aPair.secondRelay.getY(); - int difZ = aPair.firstRelay.getZ()-aPair.secondRelay.getZ(); + if(Minecraft.getMinecraft().thePlayer.getDistance(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ()) <= 64){ + int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); + int difY = aPair.firstRelay.getY()-aPair.secondRelay.getY(); + int difZ = aPair.firstRelay.getZ()-aPair.secondRelay.getZ(); - double distance = aPair.firstRelay.toVec().distanceTo(aPair.secondRelay.toVec()); - for(double i = 0; i <= 1; i += 1/(distance*(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 2 : 4))){ - this.worldObj.spawnParticle("reddust", (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0, 0, 0); + double distance = aPair.firstRelay.toVec().distanceTo(aPair.secondRelay.toVec()); + for(double i = 0; i <= 1; i += 1/(distance*(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : 4))){ + Minecraft.getMinecraft().effectRenderer.addEffect(new EntityReddustFX(this.worldObj, (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0, 0, 0)); + } } } } From c901a1fe05e3a0203d926b1ec7d8dcaa5336edab Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 27 Oct 2015 20:31:39 +0100 Subject: [PATCH 11/73] Removed Pink Fluffy Unicloud Name because of serverz --- .../ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java | 6 ------ src/main/resources/assets/actuallyadditions/lang/en_US.lang | 1 - 2 files changed, 7 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java index a10491cc6..bbae639d8 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java @@ -14,7 +14,6 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.ActuallyAdditions; import ellpeck.actuallyadditions.inventory.GuiHandler; -import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.tile.TileEntitySmileyCloud; import ellpeck.actuallyadditions.util.AssetUtil; import ellpeck.actuallyadditions.util.IActAddItemOrBlock; @@ -91,11 +90,6 @@ public class BlockSmileyCloud extends BlockContainerBase implements IActAddItemO } } - @Override - public String getUnlocalizedName(){ - return super.getUnlocalizedName()+(ClientProxy.bulletForMyValentine ? "Valentine" : ""); - } - @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack){ int rotation = MathHelper.floor_double((double)(player.rotationYaw*4.0F/360.0F)+0.5D) & 3; diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 016c6a7b6..4da4eddba 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -102,7 +102,6 @@ tile.actuallyadditions.blockFlax.name=Flax Plant tile.actuallyadditions.blockCoffeeMachine.name=Coffee Machine tile.actuallyadditions.blockXPSolidifier.name=Experience Solidifier tile.actuallyadditions.blockSmileyCloud.name=Smiley Cloud -tile.actuallyadditions.blockSmileyCloudValentine.name=Pink Fluffy Unicloud tile.actuallyadditions.blockLeafGenerator.name=Leaf-Eating Generator tile.actuallyadditions.blockDirectionalBreaker.name=Long-Range Breaker tile.actuallyadditions.blockRangedCollector.name=Ranged Collector From 9661f9e817415a354e828a6fa33c470c8ae73c6f Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 27 Oct 2015 20:40:33 +0100 Subject: [PATCH 12/73] Reverted Particle Range Change as it didn't work on servers and I can't really fix that right now --- .../tile/TileEntityLaserRelay.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 30c37cc2d..a45ab3d43 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -14,8 +14,6 @@ import cofh.api.energy.IEnergyReceiver; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; -import net.minecraft.client.Minecraft; -import net.minecraft.client.particle.EntityReddustFX; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -43,15 +41,13 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei if(network != null){ for(LaserRelayConnectionHandler.ConnectionPair aPair : network){ if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ - if(Minecraft.getMinecraft().thePlayer.getDistance(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ()) <= 64){ - int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); - int difY = aPair.firstRelay.getY()-aPair.secondRelay.getY(); - int difZ = aPair.firstRelay.getZ()-aPair.secondRelay.getZ(); + int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); + int difY = aPair.firstRelay.getY()-aPair.secondRelay.getY(); + int difZ = aPair.firstRelay.getZ()-aPair.secondRelay.getZ(); - double distance = aPair.firstRelay.toVec().distanceTo(aPair.secondRelay.toVec()); - for(double i = 0; i <= 1; i += 1/(distance*(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : 4))){ - Minecraft.getMinecraft().effectRenderer.addEffect(new EntityReddustFX(this.worldObj, (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0, 0, 0)); - } + double distance = aPair.firstRelay.toVec().distanceTo(aPair.secondRelay.toVec()); + for(double i = 0; i <= 1; i += 1/(distance*(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : 4))){ + this.worldObj.spawnParticle("reddust", (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0, 0, 0); } } } From 7671b408c8e534db50ca7597ca7b40e582b4057b Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 27 Oct 2015 20:58:42 +0100 Subject: [PATCH 13/73] Fixed Server --- .../items/ItemLaserWrench.java | 15 ++++++-------- .../items/ItemPhantomConnector.java | 20 ++++++++----------- .../misc/LaserRelayConnectionHandler.java | 7 ++----- .../actuallyadditions/util/WorldPos.java | 10 +++++++++- 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java index ed2d05d5e..1ca546064 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java @@ -86,15 +86,12 @@ public class ItemLaserWrench extends Item implements IActAddItemOrBlock{ public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ WorldPos coords = ItemPhantomConnector.getStoredPosition(stack); if(coords != null){ - World world = coords.getWorld(); - if(world != null){ - list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); - list.add("X: "+coords.getX()); - list.add("Y: "+coords.getY()); - list.add("Z: "+coords.getZ()); - list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+world.provider.dimensionId); - list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); - } + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); + list.add("X: "+coords.getX()); + list.add("Y: "+coords.getY()); + list.add("Z: "+coords.getZ()); + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+coords.getWorldID()); + list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); } } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java index 8eded08e5..12f0005a1 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java @@ -29,7 +29,6 @@ import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; import java.util.List; @@ -82,8 +81,8 @@ public class ItemPhantomConnector extends Item implements IActAddItemOrBlock{ int x = tag.getInteger("XCoordOfTileStored"); int y = tag.getInteger("YCoordOfTileStored"); int z = tag.getInteger("ZCoordOfTileStored"); - World world = DimensionManager.getWorld(tag.getInteger("WorldOfTileStored")); - if(!(x == 0 && y == 0 && z == 0) && world != null){ + int world = tag.getInteger("WorldOfTileStored"); + if(!(x == 0 && y == 0 && z == 0)){ return new WorldPos(world, x, y, z); } } @@ -126,15 +125,12 @@ public class ItemPhantomConnector extends Item implements IActAddItemOrBlock{ public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld){ WorldPos coords = getStoredPosition(stack); if(coords != null){ - World world = coords.getWorld(); - if(world != null){ - list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); - list.add("X: "+coords.getX()); - list.add("Y: "+coords.getY()); - list.add("Z: "+coords.getZ()); - list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+world.provider.dimensionId); - list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); - } + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".boundTo.desc")+":"); + list.add("X: "+coords.getX()); + list.add("Y: "+coords.getY()); + list.add("Z: "+coords.getZ()); + list.add(StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".inWorld.desc")+" "+coords.getWorldID()); + list.add(EnumChatFormatting.ITALIC+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".clearStorage.desc")); } } diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 7c35769ea..01e04324f 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -17,8 +17,6 @@ import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; -import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.util.ForgeDirection; import java.util.ArrayList; @@ -215,11 +213,10 @@ public class LaserRelayConnectionHandler{ public static ConnectionPair readFromNBT(NBTTagCompound compound, String name){ WorldPos[] pos = new WorldPos[2]; for(int i = 0; i < pos.length; i++){ - World aWorld = DimensionManager.getWorld(compound.getInteger("world"+name+i)); int anX = compound.getInteger("x"+name+i); int aY = compound.getInteger("y"+name+i); int aZ = compound.getInteger("z"+name+i); - pos[i] = new WorldPos(aWorld, anX, aY, aZ); + pos[i] = new WorldPos(compound.getInteger("world"+name+i), anX, aY, aZ); } return new ConnectionPair(pos[0], pos[1]); } @@ -236,7 +233,7 @@ public class LaserRelayConnectionHandler{ public void writeToNBT(NBTTagCompound compound, String name){ for(int i = 0; i < 2; i++){ WorldPos relay = i == 0 ? this.firstRelay : this.secondRelay; - compound.setInteger("world"+name+i, relay.getWorld().provider.dimensionId); + compound.setInteger("world"+name+i, relay.getWorldID()); compound.setInteger("x"+name+i, relay.getX()); compound.setInteger("y"+name+i, relay.getY()); compound.setInteger("z"+name+i, relay.getZ()); diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java b/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java index 883fdb591..db9e46645 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java @@ -26,12 +26,20 @@ public class WorldPos{ private int worldID; public WorldPos(World world, int x, int y, int z){ - this.worldID = world.provider.dimensionId; + this(world.provider.dimensionId, x, y, z); + } + + public WorldPos(int worldID, int x, int y, int z){ + this.worldID = worldID; this.x = x; this.y = y; this.z = z; } + public int getWorldID(){ + return this.worldID; + } + public TileEntity getTileEntity(){ return this.getWorld() != null ? this.getWorld().getTileEntity(this.x, this.y, this.z) : null; } From 1549882d3ab6a04e5df7cdf211127d8051dcc36d Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 27 Oct 2015 23:09:23 +0100 Subject: [PATCH 14/73] Fix Server again --- .../tile/TileEntityLaserRelay.java | 31 ++++++++++------ .../tile/TileEntityPhantomface.java | 36 +++++++++++-------- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index a45ab3d43..4c2795d89 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -11,9 +11,13 @@ package ellpeck.actuallyadditions.tile; import cofh.api.energy.IEnergyReceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; +import net.minecraft.client.Minecraft; +import net.minecraft.client.particle.EntityReddustFX; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; @@ -27,27 +31,32 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void invalidate(){ super.invalidate(); - if(!worldObj.isRemote){ - LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); - } + LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); } @Override public void updateEntity(){ if(this.worldObj.isRemote){ - if(this.worldObj.rand.nextInt(2) == 0){ - WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); - ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); - if(network != null){ - for(LaserRelayConnectionHandler.ConnectionPair aPair : network){ - if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ + this.renderParticles(); + } + } + + @SideOnly(Side.CLIENT) + public void renderParticles(){ + if(this.worldObj.rand.nextInt(2) == 0){ + WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); + ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); + if(network != null){ + for(LaserRelayConnectionHandler.ConnectionPair aPair : network){ + if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ + if(Minecraft.getMinecraft().thePlayer.getDistance(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ()) <= 64){ int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); int difY = aPair.firstRelay.getY()-aPair.secondRelay.getY(); int difZ = aPair.firstRelay.getZ()-aPair.secondRelay.getZ(); double distance = aPair.firstRelay.toVec().distanceTo(aPair.secondRelay.toVec()); - for(double i = 0; i <= 1; i += 1/(distance*(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : 4))){ - this.worldObj.spawnParticle("reddust", (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0, 0, 0); + for(double i = 0; i <= 1; i += 1/(distance*(ConfigBoolValues.LESS_LASER_RELAY_PARTICLES.isEnabled() ? 1 : 5))){ + Minecraft.getMinecraft().effectRenderer.addEffect(new EntityReddustFX(this.worldObj, (difX*i)+aPair.secondRelay.getX()+0.5, (difY*i)+aPair.secondRelay.getY()+0.5, (difZ*i)+aPair.secondRelay.getZ()+0.5, 0.75F, 0, 0, 0)); } } } diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java index 3aad3319f..8bfab305a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java @@ -10,6 +10,8 @@ package ellpeck.actuallyadditions.tile; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.blocks.BlockPhantom; import ellpeck.actuallyadditions.blocks.InitBlocks; import ellpeck.actuallyadditions.config.values.ConfigIntValues; @@ -19,7 +21,6 @@ import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import net.minecraftforge.common.DimensionManager; public class TileEntityPhantomface extends TileEntityInventoryBase implements IPhantomTile{ @@ -55,21 +56,26 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP } else{ if(this.boundPosition != null){ - if(this.worldObj.rand.nextInt(2) == 0){ - double d1 = (double)((float)this.boundPosition.getY()+worldObj.rand.nextFloat()); - int i1 = worldObj.rand.nextInt(2)*2-1; - int j1 = worldObj.rand.nextInt(2)*2-1; - double d4 = ((double)worldObj.rand.nextFloat()-0.5D)*0.125D; - double d2 = (double)this.boundPosition.getZ()+0.5D+0.25D*(double)j1; - double d5 = (double)(worldObj.rand.nextFloat()*1.0F*(float)j1); - double d0 = (double)this.boundPosition.getX()+0.5D+0.25D*(double)i1; - double d3 = (double)(worldObj.rand.nextFloat()*1.0F*(float)i1); - worldObj.spawnParticle("portal", d0, d1, d2, d3, d4, d5); - } + this.renderParticles(); } } } + @SideOnly(Side.CLIENT) + public void renderParticles(){ + if(this.worldObj.rand.nextInt(2) == 0){ + double d1 = (double)((float)this.boundPosition.getY()+worldObj.rand.nextFloat()); + int i1 = worldObj.rand.nextInt(2)*2-1; + int j1 = worldObj.rand.nextInt(2)*2-1; + double d4 = ((double)worldObj.rand.nextFloat()-0.5D)*0.125D; + double d2 = (double)this.boundPosition.getZ()+0.5D+0.25D*(double)j1; + double d5 = (double)(worldObj.rand.nextFloat()*1.0F*(float)j1); + double d0 = (double)this.boundPosition.getX()+0.5D+0.25D*(double)i1; + double d3 = (double)(worldObj.rand.nextFloat()*1.0F*(float)i1); + worldObj.spawnParticle("portal", d0, d1, d2, d3, d4, d5); + } + } + public static int upgradeRange(int defaultRange, World world, int x, int y, int z){ int newRange = defaultRange; for(int i = 0; i < 3; i++){ @@ -137,7 +143,7 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP @Override public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ super.writeSyncableNBT(compound, sync); - if(this.hasBoundPosition()){ + if(this.boundPosition != null){ compound.setInteger("XCoordOfTileStored", boundPosition.getX()); compound.setInteger("YCoordOfTileStored", boundPosition.getY()); compound.setInteger("ZCoordOfTileStored", boundPosition.getZ()); @@ -151,8 +157,8 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP int x = compound.getInteger("XCoordOfTileStored"); int y = compound.getInteger("YCoordOfTileStored"); int z = compound.getInteger("ZCoordOfTileStored"); - World world = DimensionManager.getWorld(compound.getInteger("WorldOfTileStored")); - if(x != 0 && y != 0 && z != 0 && world != null){ + int world = compound.getInteger("WorldOfTileStored"); + if(!(x == 0 && y == 0 && z == 0)){ this.boundPosition = new WorldPos(world, x, y, z); this.markDirty(); } From 3218b8b326290162264c0f55a6695b208f22824e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 14:46:04 +0100 Subject: [PATCH 15/73] So much fix server --- .../blocks/BlockBreaker.java | 4 +++ .../blocks/BlockCanolaPress.java | 2 ++ .../blocks/BlockCoalGenerator.java | 3 ++ .../blocks/BlockCoffeeMachine.java | 1 + .../blocks/BlockColoredLamp.java | 25 +++++++++------- .../blocks/BlockCompost.java | 1 + .../blocks/BlockDirectionalBreaker.java | 4 +++ .../blocks/BlockDropper.java | 4 +++ .../blocks/BlockEnergizer.java | 3 ++ .../actuallyadditions/blocks/BlockFeeder.java | 2 ++ .../blocks/BlockFermentingBarrel.java | 2 ++ .../blocks/BlockFishingNet.java | 1 + .../blocks/BlockFluidCollector.java | 4 +++ .../blocks/BlockFluidFlowing.java | 3 ++ .../blocks/BlockFurnaceDouble.java | 5 ++++ .../blocks/BlockFurnaceSolar.java | 1 + .../blocks/BlockGeneric.java | 1 + .../blocks/BlockGiantChest.java | 3 ++ .../blocks/BlockGreenhouseGlass.java | 1 + .../blocks/BlockGrinder.java | 4 +++ .../blocks/BlockHeatCollector.java | 3 ++ .../blocks/BlockInputter.java | 1 + .../blocks/BlockItemRepairer.java | 3 ++ .../blocks/BlockLampPowerer.java | 3 ++ .../blocks/BlockLaserRelay.java | 1 + .../blocks/BlockLavaFactoryController.java | 2 ++ .../blocks/BlockLeafGenerator.java | 3 ++ .../actuallyadditions/blocks/BlockMisc.java | 7 ++++- .../blocks/BlockOilGenerator.java | 3 ++ .../blocks/BlockOreMagnet.java | 3 ++ .../blocks/BlockPhantom.java | 2 ++ .../blocks/BlockPhantomBooster.java | 1 + .../actuallyadditions/blocks/BlockPlant.java | 5 +++- .../blocks/BlockRangedCollector.java | 1 + .../blocks/BlockSmileyCloud.java | 1 + .../blocks/BlockTreasureChest.java | 5 ++++ .../blocks/BlockWildPlant.java | 4 +-- .../blocks/BlockXPSolidifier.java | 4 +++ .../booklet/BookletChapter.java | 8 ++--- .../booklet/BookletIndexEntry.java | 10 +++---- .../items/InitForeignPaxels.java | 14 ++++----- .../actuallyadditions/items/ItemArmorAA.java | 1 + .../actuallyadditions/items/ItemBattery.java | 1 + .../actuallyadditions/items/ItemBucketAA.java | 1 + .../items/ItemChestToCrateUpgrade.java | 1 + .../actuallyadditions/items/ItemCoffee.java | 1 + .../items/ItemCrafterOnAStick.java | 1 + .../actuallyadditions/items/ItemDrill.java | 1 + .../items/ItemDrillUpgrade.java | 1 + .../actuallyadditions/items/ItemDust.java | 1 + .../items/ItemFertilizer.java | 1 + .../actuallyadditions/items/ItemFoods.java | 5 +++- .../items/ItemGrowthRing.java | 1 + .../items/ItemHairyBall.java | 1 + .../actuallyadditions/items/ItemJams.java | 1 + .../actuallyadditions/items/ItemKnife.java | 1 + .../items/ItemLaserWrench.java | 1 + .../items/ItemLeafBlower.java | 1 + .../items/ItemMagnetRing.java | 1 + .../actuallyadditions/items/ItemMisc.java | 5 +++- .../items/ItemPhantomConnector.java | 1 + .../items/ItemPotionRing.java | 1 + .../items/ItemResonantRice.java | 1 + .../actuallyadditions/items/ItemSeed.java | 1 + .../items/ItemSpecialDrop.java | 5 +++- .../items/ItemTeleStaff.java | 1 + .../items/ItemWaterRemovalRing.java | 1 + .../items/ItemWingsOfTheBats.java | 1 + .../items/tools/ItemAllToolAA.java | 17 ++++++----- .../items/tools/ItemAxeAA.java | 1 + .../items/tools/ItemHoeAA.java | 1 + .../items/tools/ItemPickaxeAA.java | 1 + .../items/tools/ItemShovelAA.java | 1 + .../items/tools/ItemSwordAA.java | 1 + .../actuallyadditions/misc/RenderSpecial.java | 2 +- .../tile/TileEntityInputter.java | 26 ++++++++-------- .../tile/TileEntityLaserRelay.java | 12 ++++---- .../tile/TileEntityPhantomface.java | 30 +++++++++---------- .../actuallyadditions/util/BlockUtil.java | 8 ++--- 79 files changed, 215 insertions(+), 82 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java index b5c4f7a12..0ce77d71e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java @@ -32,7 +32,9 @@ import net.minecraft.world.World; public class BlockBreaker extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon frontIcon; + @SideOnly(Side.CLIENT) private IIcon topIcon; private boolean isPlacer; @@ -52,6 +54,7 @@ public class BlockBreaker extends BlockContainerBase implements IActAddItemOrBlo } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side != meta && (side == 0 || side == 1)){ @@ -64,6 +67,7 @@ public class BlockBreaker extends BlockContainerBase implements IActAddItemOrBlo } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 0 || side == 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java index 2a120a94a..910a43791 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java @@ -29,6 +29,7 @@ import net.minecraft.world.World; public class BlockCanolaPress extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; public BlockCanolaPress(){ @@ -45,6 +46,7 @@ public class BlockCanolaPress extends BlockContainerBase implements IActAddItemO } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return side == 1 || side == 0 ? this.topIcon : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java index b76b4f162..aabe11828 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java @@ -32,7 +32,9 @@ import java.util.Random; public class BlockCoalGenerator extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockCoalGenerator(){ @@ -50,6 +52,7 @@ public class BlockCoalGenerator extends BlockContainerBase implements IActAddIte } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return side <= 1 ? (side == 0 ? this.bottomIcon : this.topIcon) : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java index 07ed3f308..c2c6d8ed1 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java @@ -54,6 +54,7 @@ public class BlockCoffeeMachine extends BlockContainerBase implements IActAddIte } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java index 90d7931a6..d254c4f4f 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java @@ -37,7 +37,8 @@ public class BlockColoredLamp extends Block implements IActAddItemOrBlock{ public static TheColoredLampColors[] allLampTypes = TheColoredLampColors.values(); public boolean isOn; - private IIcon[] textures = new IIcon[allLampTypes.length]; + @SideOnly(Side.CLIENT) + private IIcon[] textures; public BlockColoredLamp(boolean isOn){ super(Material.redstoneLight); @@ -58,6 +59,7 @@ public class BlockColoredLamp extends Block implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return meta >= allLampTypes.length ? null : textures[meta]; } @@ -127,6 +129,7 @@ public class BlockColoredLamp extends Block implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconReg){ + this.textures = new IIcon[allLampTypes.length]; for(int i = 0; i < allLampTypes.length; i++){ this.textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+((IActAddItemOrBlock)InitBlocks.blockColoredLamp).getName()+allLampTypes[i].name+(isOn ? "On" : "")); } @@ -145,11 +148,6 @@ public class BlockColoredLamp extends Block implements IActAddItemOrBlock{ this.setMaxDamage(0); } - @Override - public int getMetadata(int damage){ - return damage; - } - @Override public String getItemStackDisplayName(ItemStack stack){ if(stack.getItemDamage() >= allLampTypes.length){ @@ -158,15 +156,20 @@ public class BlockColoredLamp extends Block implements IActAddItemOrBlock{ return StringUtil.localize(this.getUnlocalizedName(stack)+".name")+(((BlockColoredLamp)this.field_150939_a).isOn ? " ("+StringUtil.localize("tooltip."+ModUtil.MOD_ID_LOWER+".onSuffix.desc")+")" : ""); } + @Override + public String getUnlocalizedName(ItemStack stack){ + return InitBlocks.blockColoredLamp.getUnlocalizedName()+allLampTypes[stack.getItemDamage()].name; + } + + @Override + public int getMetadata(int damage){ + return damage; + } + @Override public EnumRarity getRarity(ItemStack stack){ EnumRarity rarity = ((IActAddItemOrBlock)this.field_150939_a).getRarity(stack); return rarity == null ? EnumRarity.common : rarity; } - - @Override - public String getUnlocalizedName(ItemStack stack){ - return InitBlocks.blockColoredLamp.getUnlocalizedName()+allLampTypes[stack.getItemDamage()].name; - } } } \ No newline at end of file diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java index f30e32a6a..4727be853 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java @@ -57,6 +57,7 @@ public class BlockCompost extends BlockContainerBase implements IActAddItemOrBlo } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java index 2b5157e47..badd8980b 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java @@ -32,7 +32,9 @@ import net.minecraft.world.World; public class BlockDirectionalBreaker extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon frontIcon; + @SideOnly(Side.CLIENT) private IIcon topIcon; public BlockDirectionalBreaker(){ @@ -49,6 +51,7 @@ public class BlockDirectionalBreaker extends BlockContainerBase implements IActA } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side != meta && (side == 0 || side == 1)){ @@ -61,6 +64,7 @@ public class BlockDirectionalBreaker extends BlockContainerBase implements IActA } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 0 || side == 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java index 508b29c38..0ddcfe509 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java @@ -32,7 +32,9 @@ import net.minecraft.world.World; public class BlockDropper extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon frontIcon; + @SideOnly(Side.CLIENT) private IIcon topIcon; public BlockDropper(){ @@ -49,6 +51,7 @@ public class BlockDropper extends BlockContainerBase implements IActAddItemOrBlo } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side != meta && (side == 0 || side == 1)){ @@ -61,6 +64,7 @@ public class BlockDropper extends BlockContainerBase implements IActAddItemOrBlo } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 0 || side == 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java index d79593005..45e0319ca 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java @@ -30,7 +30,9 @@ import net.minecraft.world.World; public class BlockEnergizer extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon sideIcon; private boolean isEnergizer; @@ -49,6 +51,7 @@ public class BlockEnergizer extends BlockContainerBase implements IActAddItemOrB } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return side == 1 ? this.topIcon : (side == 0 ? this.blockIcon : this.sideIcon); } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java index b4a65dc9f..7aaef3fbc 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java @@ -29,6 +29,7 @@ import net.minecraft.world.World; public class BlockFeeder extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; public BlockFeeder(){ @@ -45,6 +46,7 @@ public class BlockFeeder extends BlockContainerBase implements IActAddItemOrBloc } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return (side == 0 || side == 1) ? this.topIcon : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java index 1d67b3dfc..1f81b3b96 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java @@ -29,6 +29,7 @@ import net.minecraft.world.World; public class BlockFermentingBarrel extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon iconTop; public BlockFermentingBarrel(){ @@ -51,6 +52,7 @@ public class BlockFermentingBarrel extends BlockContainerBase implements IActAdd } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return side <= 1 ? this.iconTop : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java index f027772b7..0845f3981 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java @@ -51,6 +51,7 @@ public class BlockFishingNet extends BlockContainerBase implements IActAddItemOr } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java index 7459967b5..1b331c073 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java @@ -32,7 +32,9 @@ import net.minecraft.world.World; public class BlockFluidCollector extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon frontIcon; + @SideOnly(Side.CLIENT) private IIcon topIcon; private boolean isPlacer; @@ -52,6 +54,7 @@ public class BlockFluidCollector extends BlockContainerBase implements IActAddIt } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side != meta && (side == 0 || side == 1)){ @@ -64,6 +67,7 @@ public class BlockFluidCollector extends BlockContainerBase implements IActAddIt } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 0 || side == 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java index 46c28cccf..bf9517eeb 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java @@ -26,7 +26,9 @@ import net.minecraftforge.fluids.Fluid; public class BlockFluidFlowing extends BlockFluidClassic implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) public IIcon stillIcon; + @SideOnly(Side.CLIENT) public IIcon flowingIcon; private String name; @@ -48,6 +50,7 @@ public class BlockFluidFlowing extends BlockFluidClassic implements IActAddItemO } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return side <= 1 ? this.stillIcon : this.flowingIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java index 20e319a87..eee7c2878 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java @@ -35,8 +35,11 @@ import java.util.Random; public class BlockFurnaceDouble extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon onIcon; + @SideOnly(Side.CLIENT) private IIcon frontIcon; public BlockFurnaceDouble(){ @@ -54,6 +57,7 @@ public class BlockFurnaceDouble extends BlockContainerBase implements IActAddIte } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side == 1){ @@ -69,6 +73,7 @@ public class BlockFurnaceDouble extends BlockContainerBase implements IActAddIte } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java index 9259da42d..f2d0a9d81 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java @@ -53,6 +53,7 @@ public class BlockFurnaceSolar extends BlockContainerBase implements IActAddItem } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java index be67c0426..125403510 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java @@ -35,6 +35,7 @@ public class BlockGeneric extends Block implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java index 54775aa24..486eb1be3 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java @@ -29,7 +29,9 @@ import net.minecraft.world.World; public class BlockGiantChest extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockGiantChest(){ @@ -46,6 +48,7 @@ public class BlockGiantChest extends BlockContainerBase implements IActAddItemOr } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return side == 1 ? this.topIcon : (side == 0 ? this.bottomIcon : this.blockIcon); } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java index f838d0d6e..7eca03e4f 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java @@ -48,6 +48,7 @@ public class BlockGreenhouseGlass extends BlockContainerBase implements IActAddI } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java index 11b6cfc58..e0a401b32 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java @@ -34,8 +34,11 @@ import java.util.Random; public class BlockGrinder extends BlockContainerBase implements IActAddItemOrBlock{ private final boolean isDouble; + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon onIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockGrinder(boolean isDouble){ @@ -54,6 +57,7 @@ public class BlockGrinder extends BlockContainerBase implements IActAddItemOrBlo } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 1 && meta != 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java index d8d1648ab..8869ea63c 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java @@ -27,7 +27,9 @@ import net.minecraft.world.World; public class BlockHeatCollector extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockHeatCollector(){ @@ -44,6 +46,7 @@ public class BlockHeatCollector extends BlockContainerBase implements IActAddIte } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return side == 1 ? this.topIcon : (side == 0 ? this.bottomIcon : this.blockIcon); } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java index 84d2737fb..c385a85e1 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java @@ -54,6 +54,7 @@ public class BlockInputter extends BlockContainerBase implements IActAddItemOrBl } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java index 51c30c724..068276a25 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java @@ -30,7 +30,9 @@ import net.minecraft.world.World; public class BlockItemRepairer extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockItemRepairer(){ @@ -48,6 +50,7 @@ public class BlockItemRepairer extends BlockContainerBase implements IActAddItem } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java index 679a1b89f..cb5b04752 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java @@ -30,6 +30,7 @@ import net.minecraftforge.common.util.ForgeDirection; public class BlockLampPowerer extends Block implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon frontIcon; public BlockLampPowerer(){ @@ -41,6 +42,7 @@ public class BlockLampPowerer extends Block implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side == meta){ @@ -50,6 +52,7 @@ public class BlockLampPowerer extends Block implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 3){ return this.frontIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java index 9b79eb1f2..ab5545c1a 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java @@ -45,6 +45,7 @@ public class BlockLaserRelay extends BlockContainerBase implements IActAddItemOr } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java index 531428eac..43eaf9d52 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java @@ -28,6 +28,7 @@ import net.minecraft.world.World; public class BlockLavaFactoryController extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; public BlockLavaFactoryController(){ @@ -44,6 +45,7 @@ public class BlockLavaFactoryController extends BlockContainerBase implements IA } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return side == 1 ? this.topIcon : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java index b60cbe6c5..5a06cda2d 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java @@ -28,7 +28,9 @@ import net.minecraft.world.World; public class BlockLeafGenerator extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockLeafGenerator(){ @@ -45,6 +47,7 @@ public class BlockLeafGenerator extends BlockContainerBase implements IActAddIte } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return side <= 1 ? (side == 0 ? this.bottomIcon : this.topIcon) : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java index 8608cf29f..9074dc03e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java @@ -31,9 +31,12 @@ import java.util.List; public class BlockMisc extends Block implements IActAddItemOrBlock{ public static final TheMiscBlocks[] allMiscBlocks = TheMiscBlocks.values(); - public IIcon[] textures = new IIcon[allMiscBlocks.length]; + @SideOnly(Side.CLIENT) + public IIcon[] textures; + @SideOnly(Side.CLIENT) private IIcon stoneCasingSeasonalTop; + @SideOnly(Side.CLIENT) private IIcon stoneCasingSeasonal; public BlockMisc(){ @@ -44,6 +47,7 @@ public class BlockMisc extends Block implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ if(ClientProxy.jingleAllTheWay && metadata == TheMiscBlocks.STONE_CASING.ordinal() && side != 0){ return side == 1 ? this.stoneCasingSeasonalTop : this.stoneCasingSeasonal; @@ -67,6 +71,7 @@ public class BlockMisc extends Block implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconReg){ + this.textures = new IIcon[allMiscBlocks.length]; for(int i = 0; i < textures.length; i++){ textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+allMiscBlocks[i].name); } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java index 1afcd85d6..5fba34347 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java @@ -32,7 +32,9 @@ import java.util.Random; public class BlockOilGenerator extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockOilGenerator(){ @@ -50,6 +52,7 @@ public class BlockOilGenerator extends BlockContainerBase implements IActAddItem } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return side <= 1 ? (side == 0 ? this.bottomIcon : this.topIcon) : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java index 5a0a0332e..de2264fab 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java @@ -29,7 +29,9 @@ import net.minecraft.world.World; public class BlockOreMagnet extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; public BlockOreMagnet(){ @@ -46,6 +48,7 @@ public class BlockOreMagnet extends BlockContainerBase implements IActAddItemOrB } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return (side == 1 ? this.topIcon : (side == 0 ? this.bottomIcon : this.blockIcon)); } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java index 6cc4b063f..fc557c1a3 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java @@ -37,6 +37,7 @@ public class BlockPhantom extends BlockContainerBase implements IActAddItemOrBlo public Type type; public int range; + @SideOnly(Side.CLIENT) private IIcon iconSeasonal; public BlockPhantom(Type type){ @@ -80,6 +81,7 @@ public class BlockPhantom extends BlockContainerBase implements IActAddItemOrBlo } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return (this.type == Type.FACE && ClientProxy.pumpkinBlurPumpkinBlur && side > 1) ? this.iconSeasonal : this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java index f9d37a8b7..fde34920c 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java @@ -48,6 +48,7 @@ public class BlockPhantomBooster extends BlockContainerBase implements IActAddIt } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java index 37cfd1176..088321f3d 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java @@ -31,14 +31,16 @@ public class BlockPlant extends BlockCrops implements IActAddItemOrBlock{ public Item seedItem; public Item returnItem; public int returnMeta; + @SideOnly(Side.CLIENT) private IIcon[] textures; + private int stages; private String name; private int minDropAmount; private int addDropAmount; public BlockPlant(String name, int stages, int minDropAmount, int addDropAmount){ this.name = name; - this.textures = new IIcon[stages]; + this.stages = stages; this.minDropAmount = minDropAmount; this.addDropAmount = addDropAmount; } @@ -80,6 +82,7 @@ public class BlockPlant extends BlockCrops implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconReg){ + this.textures = new IIcon[this.stages]; for(int i = 0; i < this.textures.length; i++){ textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+"Stage"+(i+1)); } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java index 7f8de83d2..d321f5046 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java @@ -43,6 +43,7 @@ public class BlockRangedCollector extends BlockContainerBase implements IActAddI } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java index bbae639d8..fdc89a61b 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java @@ -51,6 +51,7 @@ public class BlockSmileyCloud extends BlockContainerBase implements IActAddItemO } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return this.blockIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java index 0872cfbc9..9e6a62e98 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java @@ -36,8 +36,11 @@ import java.util.Random; public class BlockTreasureChest extends Block implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon bottomIcon; + @SideOnly(Side.CLIENT) private IIcon frontIcon; public BlockTreasureChest(){ @@ -50,6 +53,7 @@ public class BlockTreasureChest extends Block implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side == 1){ @@ -65,6 +69,7 @@ public class BlockTreasureChest extends Block implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 1){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java index 284c4909b..51a09a3a0 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java @@ -33,7 +33,6 @@ import java.util.List; public class BlockWildPlant extends BlockBush implements IActAddItemOrBlock{ public static final TheWildPlants[] allWildPlants = TheWildPlants.values(); - public IIcon[] textures = new IIcon[allWildPlants.length]; public BlockWildPlant(){ this.setStepSound(soundTypeGrass); @@ -45,6 +44,7 @@ public class BlockWildPlant extends BlockBush implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ return metadata >= allWildPlants.length ? null : allWildPlants[metadata].wildVersionOf.getIcon(0, 7); } @@ -98,8 +98,8 @@ public class BlockWildPlant extends BlockBush implements IActAddItemOrBlock{ this.setMaxDamage(0); } - @SideOnly(Side.CLIENT) @Override + @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int meta){ return this.field_150939_a.getIcon(0, meta); } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java index b8e5a4feb..036541aa3 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java @@ -35,7 +35,9 @@ import net.minecraft.world.World; public class BlockXPSolidifier extends BlockContainerBase implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon topIcon; + @SideOnly(Side.CLIENT) private IIcon frontIcon; public BlockXPSolidifier(){ @@ -52,6 +54,7 @@ public class BlockXPSolidifier extends BlockContainerBase implements IActAddItem } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ int meta = world.getBlockMetadata(x, y, z); if(side == 1 || side == 0){ @@ -64,6 +67,7 @@ public class BlockXPSolidifier extends BlockContainerBase implements IActAddItem } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta){ if(side == 1 || side == 0){ return this.topIcon; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java b/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java index c611f05ce..3399dbae1 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java @@ -44,14 +44,14 @@ public class BookletChapter{ return this.unlocalizedName; } - public String getLocalizedName(){ - return StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".chapter."+this.unlocalizedName+".name"); - } - public String getNameWithColor(){ return this.color+this.getLocalizedName(); } + public String getLocalizedName(){ + return StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".chapter."+this.unlocalizedName+".name"); + } + public BookletChapter setImportant(){ this.color = EnumChatFormatting.DARK_GREEN; return this; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java b/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java index 140d7259b..3ad7bd543 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java @@ -19,8 +19,8 @@ import java.util.ArrayList; public class BookletIndexEntry{ private final String unlocalizedName; - private EnumChatFormatting color; public ArrayList chapters = new ArrayList(); + private EnumChatFormatting color; public BookletIndexEntry(String unlocalizedName){ this.unlocalizedName = unlocalizedName; @@ -37,14 +37,14 @@ public class BookletIndexEntry{ this.chapters.add(chapter); } - public String getLocalizedName(){ - return StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".indexEntry."+this.unlocalizedName+".name"); - } - public String getNameWithColor(){ return this.color+this.getLocalizedName(); } + public String getLocalizedName(){ + return StringUtil.localize("booklet."+ModUtil.MOD_ID_LOWER+".indexEntry."+this.unlocalizedName+".name"); + } + public BookletIndexEntry setImportant(){ this.color = EnumChatFormatting.DARK_GREEN; return this; diff --git a/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java b/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java index 0199ee876..47d3b927d 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java +++ b/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java @@ -27,25 +27,23 @@ import net.minecraftforge.oredict.ShapelessOreRecipe; public class InitForeignPaxels{ - //MekanismTools - private static final String MEKANISM_TOOLS = "MekanismTools"; public static final int[] MT_COLORS = new int[]{4166, 2248890, 8882649, 12410135, 11451392, 3684412}; public static final String[] MT_NAMES = new String[]{"Obsidian", "LapisLazuli", "Osmium", "Bronze", "Glowstone", "Steel"}; + public static final int[] TF_COLORS = new int[]{13332762, 5407943, 5407895, 5394789, 12960613, 12960653, 12410135, 2999795, 10143162}; + public static final int[] SO_COLORS = new int[]{9409450, 2040021, 5714944, 526344, 545032}; + //MekanismTools + private static final String MEKANISM_TOOLS = "MekanismTools"; private static final String[] MT_REPAIR_NAMES = new String[]{"ingotRefinedObsidian", "gemLapis", "ingotOsmium", "ingotBronze", "ingotRefinedGlowstone", "ingotSteel"}; - private static Item[] mtPaxels = new Item[6]; - //ThermalFoundation private static final String THERMAL_FOUNDATION = "ThermalFoundation"; - public static final int[] TF_COLORS = new int[]{13332762, 5407943, 5407895, 5394789, 12960613, 12960653, 12410135, 2999795, 10143162}; private static final String[] TF_NAMES = new String[]{"Copper", "Tin", "Silver", "Lead", "Nickel", "Electrum", "Bronze", "Platinum", "Invar"}; - public static Item[] tfPaxels = new Item[9]; - //SimpleOres private static final String SIMPLE_ORES = "simpleores"; - public static final int[] SO_COLORS = new int[]{9409450, 2040021, 5714944, 526344, 545032}; private static final String[] SO_NAMES = new String[]{"tin", "mythril", "copper", "onyx", "adamantium"}; private static final String[] SO_REPAIR_NAMES = new String[]{"ingotTin", "ingotMythril", "ingotCopper", "gemOnyx", "ingotAdamantium"}; + public static Item[] tfPaxels = new Item[9]; public static Item[] soPaxels = new Item[5]; + private static Item[] mtPaxels = new Item[6]; public static void init(){ //SimpleOres diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java b/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java index 9229d96df..a7f9d1077 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java @@ -45,6 +45,7 @@ public class ItemArmorAA extends ItemArmor implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java b/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java index cec653f67..6c4850cbe 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java @@ -40,6 +40,7 @@ public class ItemBattery extends ItemEnergy{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java b/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java index fc642384c..08ceb4c10 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java @@ -44,6 +44,7 @@ public class ItemBucketAA extends ItemBucket implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java b/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java index cb58a1ead..55c5b3980 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java @@ -86,6 +86,7 @@ public class ItemChestToCrateUpgrade extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java b/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java index 558c50db2..1b9c9e3e6 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java @@ -188,6 +188,7 @@ public class ItemCoffee extends ItemFood implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java b/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java index 8754e6030..ca4692a84 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java @@ -50,6 +50,7 @@ public class ItemCrafterOnAStick extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java b/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java index a6d04ecc7..2fa3df505 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java @@ -247,6 +247,7 @@ public class ItemDrill extends ItemEnergy{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java b/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java index ec2dd8463..8614f6e1e 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java @@ -67,6 +67,7 @@ public class ItemDrillUpgrade extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java b/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java index 4f0eaf00b..1925aed89 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java @@ -73,6 +73,7 @@ public class ItemDust extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java b/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java index e4fceb846..47abf04d0 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java @@ -48,6 +48,7 @@ public class ItemFertilizer extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java b/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java index f2b4608cf..369c88874 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java @@ -28,7 +28,8 @@ import java.util.List; public class ItemFoods extends ItemFood implements IActAddItemOrBlock{ public static final TheFoods[] allFoods = TheFoods.values(); - public IIcon[] textures = new IIcon[allFoods.length]; + @SideOnly(Side.CLIENT) + public IIcon[] textures; public ItemFoods(){ super(0, 0.0F, false); @@ -74,6 +75,7 @@ public class ItemFoods extends ItemFood implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1){ return par1 >= textures.length ? null : textures[par1]; } @@ -104,6 +106,7 @@ public class ItemFoods extends ItemFood implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconReg){ + this.textures = new IIcon[allFoods.length]; for(int i = 0; i < textures.length; i++){ textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+allFoods[i].name); } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java index 91f1d8826..d515ff346 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java @@ -111,6 +111,7 @@ public class ItemGrowthRing extends ItemEnergy{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java b/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java index efd342d74..4b5349052 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java @@ -60,6 +60,7 @@ public class ItemHairyBall extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java b/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java index 0206b62ec..ad7b5c851 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java @@ -33,6 +33,7 @@ import java.util.List; public class ItemJams extends ItemFood implements IActAddItemOrBlock{ public static final TheJams[] allJams = TheJams.values(); + @SideOnly(Side.CLIENT) public IIcon overlayIcon; public ItemJams(){ diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java b/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java index 7ae823edd..26f54bafc 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java @@ -75,6 +75,7 @@ public class ItemKnife extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java index 1ca546064..ee3d3f1e2 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java @@ -107,6 +107,7 @@ public class ItemLaserWrench extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java index e29ffae57..5418e8309 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java @@ -131,6 +131,7 @@ public class ItemLeafBlower extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java index eeb235bec..510eca331 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java @@ -75,6 +75,7 @@ public class ItemMagnetRing extends ItemEnergy{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java b/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java index 703ec328b..eecaa168a 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java @@ -27,13 +27,15 @@ import java.util.List; public class ItemMisc extends Item implements IActAddItemOrBlock{ public static final TheMiscItems[] allMiscItems = TheMiscItems.values(); - public IIcon[] textures = new IIcon[allMiscItems.length]; + @SideOnly(Side.CLIENT) + public IIcon[] textures; public ItemMisc(){ this.setHasSubtypes(true); } @Override + @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1){ return par1 >= textures.length ? null : textures[par1]; } @@ -64,6 +66,7 @@ public class ItemMisc extends Item implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconReg){ + this.textures = new IIcon[allMiscItems.length]; for(int i = 0; i < textures.length; i++){ textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+allMiscItems[i].name); } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java index 12f0005a1..f49c715dc 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java @@ -146,6 +146,7 @@ public class ItemPhantomConnector extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java index f1c93079f..905785632 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java @@ -117,6 +117,7 @@ public class ItemPotionRing extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java b/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java index b4daf9607..b6b7f82c6 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java @@ -45,6 +45,7 @@ public class ItemResonantRice extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java b/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java index ea2bf912d..59ab0ddbe 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java @@ -53,6 +53,7 @@ public class ItemSeed extends ItemSeeds implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java b/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java index b5904d646..b7e0d088c 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java @@ -32,13 +32,15 @@ public class ItemSpecialDrop extends Item implements IActAddItemOrBlock{ public static final int SOLID_XP_AMOUNT = 8; public static final TheSpecialDrops[] allDrops = TheSpecialDrops.values(); - public IIcon[] textures = new IIcon[allDrops.length]; + @SideOnly(Side.CLIENT) + public IIcon[] textures; public ItemSpecialDrop(){ this.setHasSubtypes(true); } @Override + @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1){ return par1 >= textures.length ? null : textures[par1]; } @@ -90,6 +92,7 @@ public class ItemSpecialDrop extends Item implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister iconReg){ + this.textures = new IIcon[allDrops.length]; for(int i = 0; i < textures.length; i++){ textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+allDrops[i].name); } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java b/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java index 6a0fd1f18..20964ad39 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java @@ -91,6 +91,7 @@ public class ItemTeleStaff extends ItemEnergy{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java index 8c348b9cd..398ca3a22 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java @@ -84,6 +84,7 @@ public class ItemWaterRemovalRing extends ItemEnergy{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java b/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java index 40ece5a05..4bb255738 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java @@ -104,6 +104,7 @@ public class ItemWingsOfTheBats extends Item implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java index 4120c08b5..69b7a6ee4 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java @@ -37,6 +37,7 @@ import java.util.Set; @SuppressWarnings("unchecked") public class ItemAllToolAA extends ItemTool implements IActAddItemOrBlock{ + @SideOnly(Side.CLIENT) private IIcon overlayIcon; private int color; @@ -88,15 +89,20 @@ public class ItemAllToolAA extends ItemTool implements IActAddItemOrBlock{ } } + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass){ + return pass > 0 ? this.color : super.getColorFromItemStack(stack, pass); + } + @Override public EnumRarity getRarity(ItemStack stack){ return this.rarity; } @Override - @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int pass){ - return pass > 0 ? this.color : super.getColorFromItemStack(stack, pass); + public boolean requiresMultipleRenderPasses(){ + return true; } @Override @@ -112,11 +118,6 @@ public class ItemAllToolAA extends ItemTool implements IActAddItemOrBlock{ this.overlayIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":itemPaxelOverlay"); } - @Override - public boolean requiresMultipleRenderPasses(){ - return true; - } - @Override public boolean canHarvestBlock(Block block, ItemStack stack){ return this.hasExtraWhitelist(block) || block.getMaterial().isToolNotRequired() || (block == Blocks.snow_layer || block == Blocks.snow || (block == Blocks.obsidian ? this.toolMaterial.getHarvestLevel() == 3 : (block != Blocks.diamond_block && block != Blocks.diamond_ore ? (block != Blocks.emerald_ore && block != Blocks.emerald_block ? (block != Blocks.gold_block && block != Blocks.gold_ore ? (block != Blocks.iron_block && block != Blocks.iron_ore ? (block != Blocks.lapis_block && block != Blocks.lapis_ore ? (block != Blocks.redstone_ore && block != Blocks.lit_redstone_ore ? (block.getMaterial() == Material.rock || (block.getMaterial() == Material.iron || block.getMaterial() == Material.anvil)) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 1) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2) : this.toolMaterial.getHarvestLevel() >= 2))); diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java index 957ca5a4b..32aa628c8 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java @@ -57,6 +57,7 @@ public class ItemAxeAA extends ItemAxe implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java index 0d6907ae3..d20113a47 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java @@ -59,6 +59,7 @@ public class ItemHoeAA extends ItemHoe implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java index 4811282a2..fd2c7cef6 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java @@ -57,6 +57,7 @@ public class ItemPickaxeAA extends ItemPickaxe implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java index 34f570275..eddc57e64 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java @@ -59,6 +59,7 @@ public class ItemShovelAA extends ItemSpade implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java index 1ba255897..7fb6bdf86 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java @@ -59,6 +59,7 @@ public class ItemSwordAA extends ItemSword implements IActAddItemOrBlock{ } @Override + @SideOnly(Side.CLIENT) public IIcon getIcon(ItemStack stack, int pass){ return this.itemIcon; } diff --git a/src/main/java/ellpeck/actuallyadditions/misc/RenderSpecial.java b/src/main/java/ellpeck/actuallyadditions/misc/RenderSpecial.java index e803629a5..91afbee47 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/RenderSpecial.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/RenderSpecial.java @@ -42,7 +42,7 @@ public class RenderSpecial{ } if(ClientProxy.pumpkinBlurPumpkinBlur){ - this.theThingToRender = new ItemStack(Calendar.getInstance().get(Calendar.DAY_OF_MONTH) % 2 == 0 ? Blocks.lit_pumpkin : Blocks.pumpkin); + this.theThingToRender = new ItemStack(Calendar.getInstance().get(Calendar.DAY_OF_MONTH)%2 == 0 ? Blocks.lit_pumpkin : Blocks.pumpkin); size = 0.3F; offsetUp = 0; } diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java index ca9179606..b52d0ca85 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java @@ -400,19 +400,6 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt this.markDirty(); } - @Override - public void readSyncableNBT(NBTTagCompound compound, boolean sync){ - this.sideToPut = compound.getInteger("SideToPut"); - this.slotToPutStart = compound.getInteger("SlotToPut"); - this.slotToPutEnd = compound.getInteger("SlotToPutEnd"); - this.sideToPull = compound.getInteger("SideToPull"); - this.slotToPullStart = compound.getInteger("SlotToPull"); - this.slotToPullEnd = compound.getInteger("SlotToPullEnd"); - this.isPullWhitelist = compound.getBoolean("PullWhitelist"); - this.isPutWhitelist = compound.getBoolean("PutWhitelist"); - super.readSyncableNBT(compound, sync); - } - @Override public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ super.writeSyncableNBT(compound, sync); @@ -426,6 +413,19 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt compound.setBoolean("PutWhitelist", this.isPutWhitelist); } + @Override + public void readSyncableNBT(NBTTagCompound compound, boolean sync){ + this.sideToPut = compound.getInteger("SideToPut"); + this.slotToPutStart = compound.getInteger("SlotToPut"); + this.slotToPutEnd = compound.getInteger("SlotToPutEnd"); + this.sideToPull = compound.getInteger("SideToPull"); + this.slotToPullStart = compound.getInteger("SlotToPull"); + this.slotToPullEnd = compound.getInteger("SlotToPullEnd"); + this.isPullWhitelist = compound.getBoolean("PullWhitelist"); + this.isPutWhitelist = compound.getBoolean("PutWhitelist"); + super.readSyncableNBT(compound, sync); + } + @Override public boolean isItemValidForSlot(int i, ItemStack stack){ return i == 0; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 4c2795d89..b13be45cb 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -28,12 +28,6 @@ import java.util.ArrayList; public class TileEntityLaserRelay extends TileEntityBase implements IEnergyReceiver{ - @Override - public void invalidate(){ - super.invalidate(); - LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); - } - @Override public void updateEntity(){ if(this.worldObj.isRemote){ @@ -41,6 +35,12 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei } } + @Override + public void invalidate(){ + super.invalidate(); + LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); + } + @SideOnly(Side.CLIENT) public void renderParticles(){ if(this.worldObj.rand.nextInt(2) == 0){ diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java index 8bfab305a..8c868bbb5 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java @@ -61,21 +61,6 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP } } - @SideOnly(Side.CLIENT) - public void renderParticles(){ - if(this.worldObj.rand.nextInt(2) == 0){ - double d1 = (double)((float)this.boundPosition.getY()+worldObj.rand.nextFloat()); - int i1 = worldObj.rand.nextInt(2)*2-1; - int j1 = worldObj.rand.nextInt(2)*2-1; - double d4 = ((double)worldObj.rand.nextFloat()-0.5D)*0.125D; - double d2 = (double)this.boundPosition.getZ()+0.5D+0.25D*(double)j1; - double d5 = (double)(worldObj.rand.nextFloat()*1.0F*(float)j1); - double d0 = (double)this.boundPosition.getX()+0.5D+0.25D*(double)i1; - double d3 = (double)(worldObj.rand.nextFloat()*1.0F*(float)i1); - worldObj.spawnParticle("portal", d0, d1, d2, d3, d4, d5); - } - } - public static int upgradeRange(int defaultRange, World world, int x, int y, int z){ int newRange = defaultRange; for(int i = 0; i < 3; i++){ @@ -102,6 +87,21 @@ public class TileEntityPhantomface extends TileEntityInventoryBase implements IP return false; } + @SideOnly(Side.CLIENT) + public void renderParticles(){ + if(this.worldObj.rand.nextInt(2) == 0){ + double d1 = (double)((float)this.boundPosition.getY()+worldObj.rand.nextFloat()); + int i1 = worldObj.rand.nextInt(2)*2-1; + int j1 = worldObj.rand.nextInt(2)*2-1; + double d4 = ((double)worldObj.rand.nextFloat()-0.5D)*0.125D; + double d2 = (double)this.boundPosition.getZ()+0.5D+0.25D*(double)j1; + double d5 = (double)(worldObj.rand.nextFloat()*1.0F*(float)j1); + double d0 = (double)this.boundPosition.getX()+0.5D+0.25D*(double)i1; + double d3 = (double)(worldObj.rand.nextFloat()*1.0F*(float)i1); + worldObj.spawnParticle("portal", d0, d1, d2, d3, d4, d5); + } + } + @Override public boolean isBoundThingInRange(){ if(this.hasBoundPosition()){ diff --git a/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java b/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java index a435df838..66fa60af2 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java @@ -18,6 +18,10 @@ import net.minecraft.item.ItemBlock; public class BlockUtil{ + public static void register(Block block){ + register(block, ItemBlockBase.class); + } + public static void register(Block block, Class itemBlock){ block.setCreativeTab(CreativeTab.instance); block.setBlockName(createUnlocalizedName(block)); @@ -27,8 +31,4 @@ public class BlockUtil{ public static String createUnlocalizedName(Block block){ return ModUtil.MOD_ID_LOWER+"."+((IActAddItemOrBlock)block).getName(); } - - public static void register(Block block){ - register(block, ItemBlockBase.class); - } } From 723b44833f00430172d53e3fa51e3a34b48f05de Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 17:50:15 +0100 Subject: [PATCH 16/73] Changing Update Checking and Versioning, testing! --- update/changelog.md | 12 ++++++++++++ update/changelog.txt | 1 - update/newestVersion.txt | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 update/changelog.md delete mode 100644 update/changelog.txt diff --git a/update/changelog.md b/update/changelog.md new file mode 100644 index 000000000..53f363a9a --- /dev/null +++ b/update/changelog.md @@ -0,0 +1,12 @@ +# 1.7.10-r1 +- Finally out of beta! ~ +- Added the Laser Relay, a block that works like a cable to transfer RF, only without the cable but with LAZORZ +- Added Laser Wrench (Texture by MineLoad) +- Moved server-side Player Data to WorldSavedData because ExtendedEntityProperties doesn't work properly +- Made PersistentClientData less write-y +- Added Booklet Priority Colors & Changed Selection Design +- Added Valentine's Day Seasonal +- Chocolate Toast (canitzp) +- New AIOT Textures +- AIOT Integration for SimpleOres 2 +- Changed Ball Of Hair Name to "Ball Of Fur", addedBooklet Page \ No newline at end of file diff --git a/update/changelog.txt b/update/changelog.txt deleted file mode 100644 index c17e715b0..000000000 --- a/update/changelog.txt +++ /dev/null @@ -1 +0,0 @@ -Added Seasonal Mode: Halloween & Christmas! \o/ & Bugfixes & Experimental new Server -> Client Syncing that should work better \ No newline at end of file diff --git a/update/newestVersion.txt b/update/newestVersion.txt index f34f3a624..4e0debcd3 100644 --- a/update/newestVersion.txt +++ b/update/newestVersion.txt @@ -1 +1 @@ -1.7.10-0.0.9.4 \ No newline at end of file +1.7.10-r1 \ No newline at end of file From b1d070595b2cc54d366ee43d1a555c0d60124872 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 18:28:30 +0100 Subject: [PATCH 17/73] New Update Checker System & New Versioning! o/ --- build.gradle | 2 +- .../actuallyadditions/blocks/InitBlocks.java | 5 --- .../actuallyadditions/booklet/GuiBooklet.java | 41 +++++++++---------- .../inventory/gui/GuiOreMagnet.java | 1 - .../update/ThreadUpdateChecker.java | 35 ++++++++-------- .../update/UpdateChecker.java | 10 ++--- .../update/UpdateCheckerClientNotifier.java | 22 +++------- .../assets/actuallyadditions/lang/en_US.lang | 10 ++--- update/newestVersion.txt | 2 +- 9 files changed, 55 insertions(+), 73 deletions(-) diff --git a/build.gradle b/build.gradle index e9d1da032..aa6b6fa89 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ buildscript { apply plugin: 'forge' apply plugin: 'maven' -version = "1.7.10-0.0.9.4" +version = "1.7.10-r1" group = "ellpeck.actuallyadditions" archivesBaseName = "ActuallyAdditions" diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java index 93940a757..70803ac65 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java @@ -99,11 +99,6 @@ public class InitBlocks{ public static Block blockLaserRelay; - //TODO: Plan for Laser Power Transmitters: - //TODO: When there is a block in the way, they don't render their laser and don't transmit - //TODO: They stay connected and can be connected together even though they're blocked - //TODO: If blocked, they display the block coords blocking them on right-click - public static void init(){ ModUtil.LOGGER.info("Initializing Blocks..."); diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index 8a4be7990..cf3517719 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -16,10 +16,7 @@ import ellpeck.actuallyadditions.booklet.page.BookletPage; import ellpeck.actuallyadditions.config.GuiConfiguration; import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.update.UpdateChecker; -import ellpeck.actuallyadditions.util.AssetUtil; -import ellpeck.actuallyadditions.util.ModUtil; -import ellpeck.actuallyadditions.util.StringUtil; -import ellpeck.actuallyadditions.util.Util; +import ellpeck.actuallyadditions.util.*; import ellpeck.actuallyadditions.util.playerdata.PersistentClientData; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; @@ -27,6 +24,7 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.IChatComponent; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; @@ -149,20 +147,16 @@ public class GuiBooklet extends GuiScreen{ } //Update Checker Hover Text if(x >= this.guiLeft-11 && x <= this.guiLeft-11+10 && y >= this.guiTop-11 && y <= this.guiTop-11+10){ - if(UpdateChecker.doneChecking){ - ArrayList list = new ArrayList(); - if(UpdateChecker.checkFailed){ - list.add(EnumChatFormatting.DARK_RED+"The Update Check failed!"); - list.add("Check your log for more Information!"); - } - else if(UpdateChecker.updateVersion > UpdateChecker.clientVersion){ - list.add(EnumChatFormatting.GOLD+"There is an Update available!"); - list.add(EnumChatFormatting.ITALIC+"You have: "+ModUtil.VERSION+", Newest: "+UpdateChecker.updateVersionS); - list.addAll(this.fontRendererObj.listFormattedStringToWidth(EnumChatFormatting.ITALIC+"Updates include: "+UpdateChecker.changelog, TOOLTIP_SPLIT_LENGTH)); - list.add(EnumChatFormatting.GRAY+"Click this button to visit the download page!"); - } - this.func_146283_a(list, x, y); + ArrayList list = new ArrayList(); + if(UpdateChecker.checkFailed){ + list.add(IChatComponent.Serializer.func_150699_a(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.failed")).getFormattedText()); } + else if(UpdateChecker.needsUpdateNotify){ + list.add(IChatComponent.Serializer.func_150699_a(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.generic")).getFormattedText()); + list.add(IChatComponent.Serializer.func_150699_a(StringUtil.localizeFormatted("info."+ModUtil.MOD_ID_LOWER+".update.versionCompare", ModUtil.VERSION, UpdateChecker.updateVersion)).getFormattedText()); + list.add(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.buttonOptions")); + } + this.func_146283_a(list, x, y); } this.fontRendererObj.setUnicodeFlag(unicodeBefore); @@ -219,10 +213,15 @@ public class GuiBooklet extends GuiScreen{ } } else if(button == this.buttonUpdate){ - if(UpdateChecker.doneChecking && UpdateChecker.updateVersion > UpdateChecker.clientVersion){ + if(UpdateChecker.needsUpdateNotify){ try{ if(Desktop.isDesktopSupported()){ - Desktop.getDesktop().browse(new URI(UpdateChecker.DOWNLOAD_LINK)); + if(KeyUtil.isShiftPressed()){ + Desktop.getDesktop().browse(new URI(UpdateChecker.DOWNLOAD_LINK)); + } + else{ + Desktop.getDesktop().browse(new URI(UpdateChecker.CHANGELOG_LINK)); + } } } catch(Exception e){ @@ -335,7 +334,7 @@ public class GuiBooklet extends GuiScreen{ this.buttonList.add(this.buttonPreviouslyOpenedGui); this.buttonUpdate = new TexturedButton(4, this.guiLeft-11, this.guiTop-11, 245, 0, 11, 11); - this.buttonUpdate.visible = UpdateChecker.doneChecking && UpdateChecker.updateVersion > UpdateChecker.clientVersion; + this.buttonUpdate.visible = UpdateChecker.needsUpdateNotify; this.buttonList.add(this.buttonUpdate); this.buttonTwitter = new TexturedButton(5, this.guiLeft, this.guiTop, 213, 0, 8, 8); @@ -385,7 +384,7 @@ public class GuiBooklet extends GuiScreen{ this.currentPage.updateScreen(this.ticksElapsed); } - boolean buttonThere = UpdateChecker.doneChecking && UpdateChecker.updateVersion > UpdateChecker.clientVersion; + boolean buttonThere = UpdateChecker.needsUpdateNotify; this.buttonUpdate.visible = buttonThere; if(buttonThere){ if(this.ticksElapsed%8 == 0){ diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java index 6990e7276..db97bc416 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java @@ -49,7 +49,6 @@ public class GuiOreMagnet extends GuiContainer{ if(x >= guiLeft+117 && y >= guiTop+6 && x <= guiLeft+132 && y <= guiTop+88){ this.func_146283_a(Collections.singletonList(text2), x, y); } - //TODO Upgrade Slot Joke if(x >= guiLeft+70 && y >= guiTop+42 && x <= guiLeft+70+18 && y <= guiTop+42+18){ this.func_146283_a(Arrays.asList("@SuppressWarnings(\"unused\")", "This slot is currently unused. Ignore it."), x, y); } diff --git a/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java b/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java index 62fdbeb96..a015f94a5 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java +++ b/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java @@ -30,18 +30,22 @@ public class ThreadUpdateChecker extends Thread{ try{ URL newestURL = new URL("https://raw.githubusercontent.com/Ellpeck/ActuallyAdditions/master/update/newestVersion.txt"); BufferedReader newestReader = new BufferedReader(new InputStreamReader(newestURL.openStream())); - UpdateChecker.updateVersionS = newestReader.readLine(); + UpdateChecker.updateVersion = newestReader.readLine(); newestReader.close(); - URL changeURL = new URL("https://raw.githubusercontent.com/Ellpeck/ActuallyAdditions/master/update/changelog.txt"); - BufferedReader changeReader = new BufferedReader(new InputStreamReader(changeURL.openStream())); - UpdateChecker.changelog = changeReader.readLine(); - changeReader.close(); + //Legacy Versions + if(!ModUtil.VERSION.contains("r")){ + UpdateChecker.needsUpdateNotify = true; + } + else{ + int updateVersion = Integer.parseInt(UpdateChecker.updateVersion.replace("-", "").replace(".", "").replace("r", "")); + int clientVersion = Integer.parseInt(ModUtil.VERSION.replace("-", "").replace(".", "").replace("r", "")); + if(updateVersion > clientVersion){ + UpdateChecker.needsUpdateNotify = true; + } + } ModUtil.LOGGER.info("Update Check done!"); - - UpdateChecker.updateVersion = Integer.parseInt(UpdateChecker.updateVersionS.replace("-", "").replace(".", "")); - UpdateChecker.clientVersion = Integer.parseInt(ModUtil.VERSION.replace("-", "").replace(".", "")); } catch(Exception e){ ModUtil.LOGGER.error("Update Check failed!", e); @@ -49,18 +53,15 @@ public class ThreadUpdateChecker extends Thread{ } if(!UpdateChecker.checkFailed){ - if(UpdateChecker.updateVersion > UpdateChecker.clientVersion){ - ModUtil.LOGGER.info("There is an Update for "+ModUtil.MOD_ID+" available!"); - ModUtil.LOGGER.info("The installed Version is "+ModUtil.VERSION+", but the newest Version is "+UpdateChecker.updateVersionS+"!"); - ModUtil.LOGGER.info("The Changes are: "+UpdateChecker.changelog); - ModUtil.LOGGER.info("Download the newest Version at "+UpdateChecker.DOWNLOAD_LINK); + if(UpdateChecker.needsUpdateNotify){ + ModUtil.LOGGER.info("There is an Update for "+ModUtil.NAME+" available!"); + ModUtil.LOGGER.info("Current Version: "+ModUtil.VERSION+", newest Version: "+UpdateChecker.updateVersion+"!"); + ModUtil.LOGGER.info("View the Changelog at "+UpdateChecker.CHANGELOG_LINK); + ModUtil.LOGGER.info("Download at "+UpdateChecker.DOWNLOAD_LINK); } else{ - ModUtil.LOGGER.info("There is no new Update for "+ModUtil.MOD_ID+" available!"); - ModUtil.LOGGER.info("That's cool. You're really up to date, you have all of the latest awesome Features!"); + ModUtil.LOGGER.info(ModUtil.NAME+" is up to date!"); } } - - UpdateChecker.doneChecking = true; } } \ No newline at end of file diff --git a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java index 7682d495f..3503195bc 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java +++ b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java @@ -17,12 +17,10 @@ import ellpeck.actuallyadditions.util.Util; public class UpdateChecker{ public static final String DOWNLOAD_LINK = "http://minecraft.curseforge.com/mc-mods/228404-actually-additions/files"; - public static boolean doneChecking = false; - public static boolean checkFailed = false; - public static String updateVersionS; - public static int updateVersion; - public static int clientVersion; - public static String changelog; + public static final String CHANGELOG_LINK = "https://github.com/Ellpeck/ActuallyAdditions/blob/master/update/changelog.md"; + public static boolean checkFailed; + public static boolean needsUpdateNotify; + public static String updateVersion; public void init(){ if(ConfigBoolValues.DO_UPDATE_CHECK.isEnabled()){ diff --git a/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java b/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java index a46a5cff8..db195f0a0 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java +++ b/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java @@ -16,7 +16,6 @@ import ellpeck.actuallyadditions.util.ModUtil; import ellpeck.actuallyadditions.util.StringUtil; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.ChatComponentText; import net.minecraft.util.IChatComponent; public class UpdateCheckerClientNotifier{ @@ -26,24 +25,15 @@ public class UpdateCheckerClientNotifier{ @SubscribeEvent(receiveCanceled = true) public void onTick(TickEvent.ClientTickEvent event){ //Don't notify directly to prevent the Message getting lost in Spam on World Joining - if(Minecraft.getSystemTime()%300 == 0 && !notified && UpdateChecker.doneChecking && Minecraft.getMinecraft().thePlayer != null){ + if(Minecraft.getSystemTime()%300 == 0 && !notified && Minecraft.getMinecraft().thePlayer != null){ EntityPlayer player = Minecraft.getMinecraft().thePlayer; if(UpdateChecker.checkFailed){ - player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.failed.desc"))); + player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.failed"))); } - else{ - if(UpdateChecker.updateVersion > UpdateChecker.clientVersion){ - String notice1 = "info."+ModUtil.MOD_ID_LOWER+".update.generic.desc"; - String notice2 = "info."+ModUtil.MOD_ID_LOWER+".update.versionComp.desc"; - String notice3 = "info."+ModUtil.MOD_ID_LOWER+".update.changelog.desc"; - String notice4 = "info."+ModUtil.MOD_ID_LOWER+".update.download.desc"; - player.addChatComponentMessage(new ChatComponentText("")); - player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localize(notice1))); - player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localizeFormatted(notice2, ModUtil.VERSION, UpdateChecker.updateVersionS))); - player.addChatComponentMessage(new ChatComponentText(StringUtil.localizeFormatted(notice3, UpdateChecker.changelog))); - player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localizeFormatted(notice4, UpdateChecker.DOWNLOAD_LINK))); - player.addChatComponentMessage(new ChatComponentText("")); - } + else if(UpdateChecker.needsUpdateNotify){ + player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localize("info."+ModUtil.MOD_ID_LOWER+".update.generic"))); + player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localizeFormatted("info."+ModUtil.MOD_ID_LOWER+".update.versionCompare", ModUtil.VERSION, UpdateChecker.updateVersion))); + player.addChatComponentMessage(IChatComponent.Serializer.func_150699_a(StringUtil.localizeFormatted("info."+ModUtil.MOD_ID_LOWER+".update.buttons", UpdateChecker.CHANGELOG_LINK, UpdateChecker.DOWNLOAD_LINK))); } notified = true; } diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 4da4eddba..4d9a3b662 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -363,11 +363,11 @@ container.actuallyadditions.directionalBreaker.name=Long-Range Breaker container.actuallyadditions.rangedCollector.name=Ranged Collector #Update Information -info.actuallyadditions.update.generic.desc=[{"text":"There is an "},{"text":"Update ","bold":"true"},{"text":"for ","bold":"false"},{"text":"Actually Additions ","color":"dark_green","bold":"true"},{"text":"available!","color":"none","bold":"false"}] -info.actuallyadditions.update.versionComp.desc=[{"text":"You have Version "},{"text":"%s","color":"dark_red","italic":"false"},{"text":", the newest one is ","color":"none","italic":"false"},{"text":"%s","color":"dark_green","underlined":"false"},{"text":"!","color":"none","underlined":"false"}] -info.actuallyadditions.update.download.desc=[{"text":"Download the newest Version "},{"text":"here! (Click me!)","color":"dark_green","underlined":"true","clickEvent":{"action":"open_url","value":"%s"},"hoverEvent":{"action":"show_text","value":{"text":"","extra":[{"text":"Click here to open your Browser and download the newest Version!"}]}}}] -info.actuallyadditions.update.failed.desc=[{"text":"The Update Check for "},{"text":"Actually Additions ","color":"dark_green","bold":"true"},{"text":"failed! Check your Internet Connection and the Logs for more Info!","color":"none"}] -info.actuallyadditions.update.changelog.desc=Updates: %s +info.actuallyadditions.update.generic=[{"text":"There is an Update for "},{"text":"Actually Additions ","color":"dark_green"},{"text":"available!","color":"none"}] +info.actuallyadditions.update.versionCompare=[{"text":"Current Version: "},{"text":"%s","color":"dark_red"},{"text":", newest Version: ","color":"none"},{"text":"%s","color":"dark_green"}] +info.actuallyadditions.update.buttons=[{"text":"["},{"text":"Click for Changelog","color":"green","clickEvent":{"action":"open_url","value":"%s"}},{"text":"] [","color":"none"},{"text":"Click for Download","color":"green","clickEvent":{"action":"open_url","value":"%s"}},{"text":"]","color":"none"}] +info.actuallyadditions.update.buttonOptions=Click for Changelog, Shift-Click for Download! +info.actuallyadditions.update.failed=[{"text":"The Update Check for "},{"text":"Actually Additions ","color":"dark_green"},{"text":"failed! Check Logs for more Info!","color":"none"}] #Achievements achievement.actuallyadditions.pickUpSolidXP=Square and yummy! diff --git a/update/newestVersion.txt b/update/newestVersion.txt index 4e0debcd3..f34f3a624 100644 --- a/update/newestVersion.txt +++ b/update/newestVersion.txt @@ -1 +1 @@ -1.7.10-r1 \ No newline at end of file +1.7.10-0.0.9.4 \ No newline at end of file From dc6e0b05be179f338a6ba7b6a40cbcb3b74691e9 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 18:36:34 +0100 Subject: [PATCH 18/73] Bridging gap between old and new versions of Update Checker --- .../misc/LaserRelayConnectionHandler.java | 3 +-- .../update/ThreadUpdateChecker.java | 14 ++++---------- update/changelog.txt | 1 + update/newestVersion.txt | 2 +- update/updateVersion.txt | 1 + 5 files changed, 8 insertions(+), 13 deletions(-) create mode 100644 update/changelog.txt create mode 100644 update/updateVersion.txt diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 01e04324f..37d3823ec 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -16,7 +16,6 @@ import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; import java.util.ArrayList; @@ -123,7 +122,7 @@ public class LaserRelayConnectionHandler{ * (Puts it into the correct network!) */ public boolean addConnection(WorldPos firstRelay, WorldPos secondRelay){ - int distance = (int)Vec3.createVectorHelper(firstRelay.getX(), firstRelay.getY(), firstRelay.getZ()).distanceTo(Vec3.createVectorHelper(secondRelay.getX(), secondRelay.getY(), secondRelay.getZ())); + int distance = (int)firstRelay.toVec().distanceTo(secondRelay.toVec()); if(distance > 15 || firstRelay.isEqual(secondRelay) || firstRelay.getWorld() != secondRelay.getWorld()){ return false; } diff --git a/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java b/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java index a015f94a5..1ed25e78c 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java +++ b/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java @@ -28,22 +28,16 @@ public class ThreadUpdateChecker extends Thread{ public void run(){ ModUtil.LOGGER.info("Starting Update Check..."); try{ - URL newestURL = new URL("https://raw.githubusercontent.com/Ellpeck/ActuallyAdditions/master/update/newestVersion.txt"); + URL newestURL = new URL("https://raw.githubusercontent.com/Ellpeck/ActuallyAdditions/master/update/updateVersion.txt"); BufferedReader newestReader = new BufferedReader(new InputStreamReader(newestURL.openStream())); UpdateChecker.updateVersion = newestReader.readLine(); newestReader.close(); - //Legacy Versions - if(!ModUtil.VERSION.contains("r")){ + int updateVersion = Integer.parseInt(UpdateChecker.updateVersion.replace("-", "").replace(".", "").replace("r", "")); + int clientVersion = Integer.parseInt(ModUtil.VERSION.replace("-", "").replace(".", "").replace("r", "")); + if(updateVersion > clientVersion){ UpdateChecker.needsUpdateNotify = true; } - else{ - int updateVersion = Integer.parseInt(UpdateChecker.updateVersion.replace("-", "").replace(".", "").replace("r", "")); - int clientVersion = Integer.parseInt(ModUtil.VERSION.replace("-", "").replace(".", "").replace("r", "")); - if(updateVersion > clientVersion){ - UpdateChecker.needsUpdateNotify = true; - } - } ModUtil.LOGGER.info("Update Check done!"); } diff --git a/update/changelog.txt b/update/changelog.txt new file mode 100644 index 000000000..c6cf02d75 --- /dev/null +++ b/update/changelog.txt @@ -0,0 +1 @@ +Laser Relays, out of Beta! +New Update Checker \ No newline at end of file diff --git a/update/newestVersion.txt b/update/newestVersion.txt index f34f3a624..24b652945 100644 --- a/update/newestVersion.txt +++ b/update/newestVersion.txt @@ -1 +1 @@ -1.7.10-0.0.9.4 \ No newline at end of file +1.7.10-1 \ No newline at end of file diff --git a/update/updateVersion.txt b/update/updateVersion.txt new file mode 100644 index 000000000..4e0debcd3 --- /dev/null +++ b/update/updateVersion.txt @@ -0,0 +1 @@ +1.7.10-r1 \ No newline at end of file From 8629b7acd44d47b150a6b33ee57ed97c0d435e7d Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 18:37:05 +0100 Subject: [PATCH 19/73] /derp --- update/newestVersion.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update/newestVersion.txt b/update/newestVersion.txt index 24b652945..d92d5d151 100644 --- a/update/newestVersion.txt +++ b/update/newestVersion.txt @@ -1 +1 @@ -1.7.10-1 \ No newline at end of file +1.7.10-0.1.0.0 \ No newline at end of file From 95361fcde51872bf4a551a0e066765fb07496433 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 20:35:39 +0100 Subject: [PATCH 20/73] Added Laser Relay Crafting & Documentation, added Chest To Crate Upgrade Documentation & Crafting, Config Stuff --- .../booklet/InitBooklet.java | 3 ++- .../config/values/ConfigCrafting.java | 6 ++++- .../config/values/ConfigIntValues.java | 5 +++- .../crafting/BlockCrafting.java | 11 ++++++++ .../crafting/ItemCrafting.java | 20 ++++++++++++++ .../items/ItemChestToCrateUpgrade.java | 2 ++ .../misc/LaserRelayConnectionHandler.java | 27 +++++++++---------- .../assets/actuallyadditions/lang/en_US.lang | 9 ++++++- 8 files changed, 64 insertions(+), 19 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index 05930161b..e3cfe2fc8 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -73,10 +73,11 @@ public class InitBooklet{ new BookletChapter("fishingNet", entryFunctionalNonRF, new ItemStack(InitBlocks.blockFishingNet), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeFisher).setNoText()); new BookletChapter("feeder", entryFunctionalNonRF, new ItemStack(InitBlocks.blockFeeder), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeFeeder).setNoText()); new BookletChapter("compost", entryFunctionalNonRF, new ItemStack(InitBlocks.blockCompost), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemFertilizer)).addTextReplacement("", ConfigIntValues.COMPOST_AMOUNT.getValue()), new PageCrafting(2, BlockCrafting.recipeCompost).setNoText(), new PageCrafting(3, ItemCrafting.recipesMashedFood)); - new BookletChapter("crate", entryFunctionalNonRF, new ItemStack(InitBlocks.blockGiantChest), new PageCrafting(1, BlockCrafting.recipeCrate)); + new BookletChapter("crate", entryFunctionalNonRF, new ItemStack(InitBlocks.blockGiantChest), new PageCrafting(1, BlockCrafting.recipeCrate), new PageCrafting(2, ItemCrafting.recipeChestToCrateUpgrade)); new BookletChapter("rangedCollector", entryFunctionalNonRF, new ItemStack(InitBlocks.blockRangedCollector), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.RANGED_COLLECTOR_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipeRangedCollector).setNoText()); //RF Using Blocks + new BookletChapter("laserRelays", entryFunctionalRF, new ItemStack(InitBlocks.blockLaserRelay), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.LASER_RELAY_MAX_DISTANCE.getValue()).addTextReplacement("", ConfigIntValues.LASER_RELAY_LOSS.getValue()), new PageCrafting(2, BlockCrafting.recipeLaserRelay).setNoText(), new PageCrafting(3, ItemCrafting.recipeLaserWrench).setNoText()).setImportant(); new BookletChapterCoffee("coffeeMachine", entryFunctionalRF, new ItemStack(InitBlocks.blockCoffeeMachine), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemCoffeeBean)).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_ENERGY_USED.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_CACHE_USED_PER_ITEM.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_WATER_USED.getValue()), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemCoffee)), new PageCrafting(3, BlockCrafting.recipeCoffeeMachine).setNoText(), new PageCrafting(4, ItemCrafting.recipeCup).setNoText()).setImportant(); new BookletChapter("crusher", entryFunctionalRF, new ItemStack(InitBlocks.blockGrinderDouble), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.GRINDER_ENERGY_USED.getValue()).addTextReplacement("", ConfigIntValues.GRINDER_DOUBLE_ENERGY_USED.getValue()), new PageCrafting(2, BlockCrafting.recipeCrusher).setNoText(), new PageCrafting(3, BlockCrafting.recipeDoubleCrusher).setNoText(), new PageCrusherRecipe(4, CrusherCrafting.recipeSugar).setNoText(), new PageCrusherRecipe(5, CrusherCrafting.recipeIronHorseArmor).setNoText(), new PageCrusherRecipe(6, CrusherCrafting.recipeGoldHorseArmor).setNoText(), new PageCrusherRecipe(7, CrusherCrafting.recipeDiamondHorseArmor).setNoText()); new BookletChapter("furnaceDouble", entryFunctionalRF, new ItemStack(InitBlocks.blockFurnaceDouble), new PageCrafting(1, BlockCrafting.recipeFurnace).addTextReplacement("", ConfigIntValues.FURNACE_ENERGY_USED.getValue())); diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java index 0ee5a67ae..10d447ee9 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java @@ -152,7 +152,11 @@ public enum ConfigCrafting{ WATER_RING("Water Ring", ConfigCategories.ITEMS_CRAFTING), GROWTH_RING("Growth Ring", ConfigCategories.ITEMS_CRAFTING), DIRECTIONAL_BREAKER("Long-Range Breaker", ConfigCategories.BLOCKS_CRAFTING), - RANGED_COLLECTOR("Ranged Collector", ConfigCategories.BLOCKS_CRAFTING); + RANGED_COLLECTOR("Ranged Collector", ConfigCategories.BLOCKS_CRAFTING), + LASER_RELAY("Laser Relay", ConfigCategories.BLOCKS_CRAFTING), + LASER_WRENCH("Laser Wrench", ConfigCategories.ITEMS_CRAFTING), + + CHEST_TO_CRATE_UPGRADE("Chest To Crate Upgrade", ConfigCategories.ITEMS_CRAFTING); public final String name; public final String category; diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java index c59cf00b5..be7ebf943 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java @@ -171,7 +171,10 @@ public enum ConfigIntValues{ DIRECTIONAL_BREAKER_RF_PER_BLOCK("Directional Breaker: RF per Block", ConfigCategories.MACHINE_VALUES, 5, 0, 1000, "The amount of RF the Directional Breaker uses to break each block"), DIRECTIONAL_BREAKER_RANGE("Directional Breaker: Range", ConfigCategories.MACHINE_VALUES, 8, 1, 1000, "The range of the Directional Breaker"), - RANGED_COLLECTOR_RANGE("Ranged Collector: Range", ConfigCategories.MACHINE_VALUES, 6, 1, 30, "The range of the Ranged Collector"); + RANGED_COLLECTOR_RANGE("Ranged Collector: Range", ConfigCategories.MACHINE_VALUES, 6, 1, 30, "The range of the Ranged Collector"), + + LASER_RELAY_LOSS("Laser Relay: Loss", ConfigCategories.MACHINE_VALUES, 5, 0, 80, "The Energy Loss of the Laser Relay per Transfer in Percent"), + LASER_RELAY_MAX_DISTANCE("Laser Relay: Max Distance", ConfigCategories.MACHINE_VALUES, 10, 3, 80, "The max distance between two connected Laser Relays"); public final String name; public final String category; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java index 65087c57b..405b1fb02 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java @@ -77,9 +77,20 @@ public class BlockCrafting{ public static IRecipe recipeDirectionalBreaker; public static IRecipe recipeDropper; public static IRecipe recipeRangedCollector; + public static IRecipe recipeLaserRelay; public static void init(){ + //Laser Relay + if(ConfigCrafting.LASER_RELAY.isEnabled()){ + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockLaserRelay), + "ORO", "RCR", "ORO", + 'O', new ItemStack(Blocks.obsidian), + 'R', new ItemStack(Items.redstone), + 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()))); + recipeLaserRelay = Util.GetRecipes.lastIRecipe(); + } + //Ranged Collector if(ConfigCrafting.RANGED_COLLECTOR.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockRangedCollector), diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java index d4fd0c062..410d1cc48 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java @@ -71,6 +71,8 @@ public class ItemCrafting{ public static IRecipe recipeLeafBlower; public static IRecipe recipeLeafBlowerAdvanced; public static ArrayList recipesPotionRings = new ArrayList(); + public static IRecipe recipeChestToCrateUpgrade; + public static IRecipe recipeLaserWrench; public static void init(){ @@ -82,6 +84,24 @@ public class ItemCrafting{ GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemLaserWrench), new ItemStack(InitItems.itemLaserWrench)); GameRegistry.addShapelessRecipe(new ItemStack(InitItems.itemPhantomConnector), new ItemStack(InitItems.itemPhantomConnector)); + //Chest To Crate Upgrade + if(ConfigCrafting.CHEST_TO_CRATE_UPGRADE.isEnabled()){ + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemChestToCrateUpgrade), + "CWC", "WWW", "CWC", + 'C', new ItemStack(Blocks.chest), + 'W', "plankWood")); + recipeChestToCrateUpgrade = Util.GetRecipes.lastIRecipe(); + } + + //Laser Wrench + if(ConfigCrafting.LASER_WRENCH.isEnabled()){ + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemLaserWrench), + "C ", " S ", " S", + 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()), + 'S', "ingotIron")); + recipeLaserWrench = Util.GetRecipes.lastIRecipe(); + } + //Rice Stuff if(ConfigCrafting.RICE_GADGETS.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.paper, 3), diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java b/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java index 55c5b3980..f984d0886 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java @@ -16,6 +16,7 @@ import ellpeck.actuallyadditions.blocks.InitBlocks; import ellpeck.actuallyadditions.tile.TileEntityGiantChest; import ellpeck.actuallyadditions.util.IActAddItemOrBlock; import ellpeck.actuallyadditions.util.ModUtil; +import net.minecraft.block.Block; import net.minecraft.block.BlockChest; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; @@ -48,6 +49,7 @@ public class ItemChestToCrateUpgrade extends Item implements IActAddItemOrBlock{ } //Set New Block + world.playAuxSFX(2001, x, y, z, Block.getIdFromBlock(world.getBlock(x, y, z))+(world.getBlockMetadata(x, y, z) << 12)); world.setBlock(x, y, z, InitBlocks.blockGiantChest, 0, 2); //Copy Items into new Chest diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 37d3823ec..43173472c 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -11,6 +11,7 @@ package ellpeck.actuallyadditions.misc; import cofh.api.energy.IEnergyReceiver; +import ellpeck.actuallyadditions.config.values.ConfigIntValues; import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; @@ -19,7 +20,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import java.util.ArrayList; -import java.util.Iterator; public class LaserRelayConnectionHandler{ @@ -84,20 +84,12 @@ public class LaserRelayConnectionHandler{ public void removeRelayFromNetwork(WorldPos relay){ ArrayList network = this.getNetworkFor(relay); if(network != null){ - //Remove the relay from the network - Iterator iterator = network.iterator(); - while(iterator.hasNext()){ - ConnectionPair next = iterator.next(); - if(next.contains(relay)){ - iterator.remove(); - //System.out.println("Removed "+relay.toString()+" from Network "+network.toString()); - } - } - //Setup new network (so that splitting a network will cause it to break into two) this.networks.remove(network); for(ConnectionPair pair : network){ - this.addConnection(pair.firstRelay, pair.secondRelay); + if(!pair.contains(relay)){ + this.addConnection(pair.firstRelay, pair.secondRelay); + } } } WorldData.makeDirty(); @@ -123,7 +115,7 @@ public class LaserRelayConnectionHandler{ */ public boolean addConnection(WorldPos firstRelay, WorldPos secondRelay){ int distance = (int)firstRelay.toVec().distanceTo(secondRelay.toVec()); - if(distance > 15 || firstRelay.isEqual(secondRelay) || firstRelay.getWorld() != secondRelay.getWorld()){ + if(distance > ConfigIntValues.LASER_RELAY_MAX_DISTANCE.getValue() || firstRelay.isEqual(secondRelay) || firstRelay.getWorld() != secondRelay.getWorld()){ return false; } @@ -188,8 +180,13 @@ public class LaserRelayConnectionHandler{ if(tile instanceof IEnergyReceiver && !(tile instanceof TileEntityLaserRelay)){ IEnergyReceiver receiver = (IEnergyReceiver)tile; if(receiver.canConnectEnergy(side.getOpposite())){ - //Transfer the energy - transmitted += ((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), maxTransfer-transmitted, simulate); + //Transfer the energy (with the energy loss!) + int theoreticalReceived = ((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), maxTransfer-transmitted, true); + //The amount of energy lost during a transfer + int deduct = (int)(theoreticalReceived*((double)ConfigIntValues.LASER_RELAY_LOSS.getValue()/100)); + + transmitted+=((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), theoreticalReceived-deduct, simulate); + transmitted+=deduct; } } } diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 4d9a3b662..7592c6447 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -105,6 +105,7 @@ tile.actuallyadditions.blockSmileyCloud.name=Smiley Cloud tile.actuallyadditions.blockLeafGenerator.name=Leaf-Eating Generator tile.actuallyadditions.blockDirectionalBreaker.name=Long-Range Breaker tile.actuallyadditions.blockRangedCollector.name=Ranged Collector +tile.actuallyadditions.blockLaserRelay.name=Laser Relay #ESD tile.actuallyadditions.blockInputter.name=ESD @@ -276,6 +277,8 @@ item.actuallyadditions.itemChestQuartz.name=Black Quartz Chestplate item.actuallyadditions.itemPantsQuartz.name=Black Quartz Pants item.actuallyadditions.itemBootsQuartz.name=Black Quartz Boots item.actuallyadditions.itemBooklet.name=Actually Additions Manual +item.actuallyadditions.itemLaserWrench.name=Laser Wrench +item.actuallyadditions.itemChestToCrateUpgrade.name=Chest To Storage Crate Upgrade #Tooltips tooltip.actuallyadditions.onSuffix.desc=On @@ -483,6 +486,7 @@ booklet.actuallyadditions.chapter.compost.text.3=Mashed Food can be cra booklet.actuallyadditions.chapter.crate.name=Storage Crates booklet.actuallyadditions.chapter.crate.text.1=Storage Crates are big. Really big. They hold tons of items, more than 4 chests worth of them. "F-in' gigantic" -Some Magazine +booklet.actuallyadditions.chapter.crate.text.2=The Chest To Storage Crate Upgrade allows you to convert any chest into a Storage Crate, retaining its items! Just shift-right-click onto the chest to apply it. booklet.actuallyadditions.chapter.coffeeMachine.name=Coffee Machine booklet.actuallyadditions.chapter.coffeeMachine.text.1=The Coffee Machine is a block used to make Coffee, a potion-like item that gives the user several buffs. To use the coffee machine, you need a Empty Cup, Coffee Beans, which can be found in the wild, harvested and planted on farmland again, RF/t and mB of Water per cup brewed. On the coffee machine recipe pages at the back, to see what the item does, just hover over the Cup of Coffee. @@ -572,4 +576,7 @@ booklet.actuallyadditions.chapter.rangedCollector.name=Ranged Collector booklet.actuallyadditions.chapter.rangedCollector.text.1=The Ranged Collector works much like a hopper, in that it collects items around it, having the power, however, to pick up items that are in an area of blocks around it. It has a filter that can be set to white- or blacklist. This comes with a disadvantage, however: It doesn't auto-output its items. booklet.actuallyadditions.chapter.hairBalls.name=Ball of Fur-s -booklet.actuallyadditions.chapter.hairBalls.text.1=Balls of Fur are an item rarely dropped by cats which have been tamed by the player. Cats are very mysterious creatures as they appear to get everything stuck in their fur. Balls of Fur may seem disgusting at first, but when removing all of the hair by right-clicking, they will reveal some valuable items. Or just some String. FUURRRRRR!! \ No newline at end of file +booklet.actuallyadditions.chapter.hairBalls.text.1=Balls of Fur are an item rarely dropped by cats which have been tamed by the player. Cats are very mysterious creatures as they appear to get everything stuck in their fur. Balls of Fur may seem disgusting at first, but when removing all of the hair by right-clicking, they will reveal some valuable items. Or just some String. FUURRRRRR!! + +booklet.actuallyadditions.chapter.laserRelays.name=Laser Relays +booklet.actuallyadditions.chapter.laserRelays.text.1=The Laser Relay is a block that can wirelessly transfer RF just by being connected with a Laser Wrench, generating a network. When placing a Power Generator or Receiver next to the relay, it can receive Power from any other relay in the network. Two relays can be at most blocks apart. During an energy transfer, they have an Energy Loss of %. \ No newline at end of file From e601c38411f396b6c1baf94e9a7b3eb5609000c1 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 20:41:45 +0100 Subject: [PATCH 21/73] Wohooo~ Testage! --- update/changelog.txt | 3 ++- update/newestVersion.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/update/changelog.txt b/update/changelog.txt index c6cf02d75..e4d9a3c6f 100644 --- a/update/changelog.txt +++ b/update/changelog.txt @@ -1 +1,2 @@ -Laser Relays, out of Beta! +New Update Checker \ No newline at end of file +Laser Relays, out of Beta! +New Update Checker +(This is a fallback for the old versions of the mod which use the old versioning System. Don't change.) \ No newline at end of file diff --git a/update/newestVersion.txt b/update/newestVersion.txt index d92d5d151..1c58e90be 100644 --- a/update/newestVersion.txt +++ b/update/newestVersion.txt @@ -1 +1,2 @@ -1.7.10-0.1.0.0 \ No newline at end of file +1.7.10-0.1.0.0 +(This is a fallback for the old versions of the mod which use the old versioning System. Don't change.) \ No newline at end of file From db31abb46b91a70a4a109743fdc8fc423c520f8a Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 21:01:44 +0100 Subject: [PATCH 22/73] Creative Tab + Testing --- .../java/ellpeck/actuallyadditions/creative/CreativeTab.java | 4 ++++ src/main/java/ellpeck/actuallyadditions/util/ModUtil.java | 2 +- update/updateVersion.txt | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java index d668cdcf5..82b9f8104 100644 --- a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java +++ b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java @@ -50,6 +50,7 @@ public class CreativeTab extends CreativeTabs{ add(InitItems.itemLexicon); add(InitBlocks.blockSmileyCloud); + add(InitBlocks.blockLaserRelay); add(InitBlocks.blockPhantomface); add(InitBlocks.blockPhantomEnergyface); add(InitBlocks.blockPhantomLiquiface); @@ -105,6 +106,9 @@ public class CreativeTab extends CreativeTabs{ add(InitBlocks.blockLampPowerer); add(InitBlocks.blockTreasureChest); + add(InitItems.itemLaserWrench); + add(InitItems.itemChestToCrateUpgrade); + add(InitItems.itemDrill); add(InitItems.itemDrillUpgradeSpeed); add(InitItems.itemDrillUpgradeSpeedII); diff --git a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java index c9d0ac8ef..7ac928674 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java @@ -15,7 +15,7 @@ import org.apache.logging.log4j.Logger; public class ModUtil{ - public static final String VERSION = "1.7.10-0.0.9.4"; + public static final String VERSION = "1.7.10-r1"; public static final String MOD_ID = "ActuallyAdditions"; public static final String NAME = "Actually Additions"; diff --git a/update/updateVersion.txt b/update/updateVersion.txt index 4e0debcd3..bf2568732 100644 --- a/update/updateVersion.txt +++ b/update/updateVersion.txt @@ -1 +1,2 @@ -1.7.10-r1 \ No newline at end of file +1.7.10-r2 +//For Testing the Update Checker \ No newline at end of file From cb22c4aa9416999854cd39f1468b4e6ec6529efa Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 28 Oct 2015 22:38:00 +0100 Subject: [PATCH 23/73] Hopefully fixes ConcurrentModificationExceptions --- .../misc/LaserRelayConnectionHandler.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 43173472c..0fdabef7c 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -68,8 +68,10 @@ public class LaserRelayConnectionHandler{ */ public ArrayList getConnectionsFor(WorldPos relay){ ArrayList allPairs = new ArrayList(); - for(ArrayList aNetwork : this.networks){ - for(ConnectionPair pair : aNetwork){ + ArrayList> theNetworks = new ArrayList>(this.networks); + for(ArrayList aNetwork : theNetworks){ + ArrayList pairs = new ArrayList(aNetwork); + for(ConnectionPair pair : pairs){ if(pair.contains(relay)){ allPairs.add(pair); } @@ -86,7 +88,8 @@ public class LaserRelayConnectionHandler{ if(network != null){ //Setup new network (so that splitting a network will cause it to break into two) this.networks.remove(network); - for(ConnectionPair pair : network){ + ArrayList pairs = new ArrayList(network); + for(ConnectionPair pair : pairs){ if(!pair.contains(relay)){ this.addConnection(pair.firstRelay, pair.secondRelay); } @@ -99,8 +102,10 @@ public class LaserRelayConnectionHandler{ * Gets a Network for a Relay */ public ArrayList getNetworkFor(WorldPos relay){ - for(ArrayList aNetwork : this.networks){ - for(ConnectionPair pair : aNetwork){ + ArrayList> theNetworks = new ArrayList>(this.networks); + for(ArrayList aNetwork : theNetworks){ + ArrayList pairs = new ArrayList(aNetwork); + for(ConnectionPair pair : pairs){ if(pair.contains(relay)){ return aNetwork; } @@ -156,7 +161,8 @@ public class LaserRelayConnectionHandler{ * (Actually puts everything from the second network into the first one and removes the second one) */ public void mergeNetworks(ArrayList firstNetwork, ArrayList secondNetwork){ - for(ConnectionPair secondPair : secondNetwork){ + ArrayList pairs = new ArrayList(secondNetwork); + for(ConnectionPair secondPair : pairs){ firstNetwork.add(secondPair); } this.networks.remove(secondNetwork); @@ -167,7 +173,8 @@ public class LaserRelayConnectionHandler{ public int transferEnergyToReceiverInNeed(ArrayList network, int maxTransfer, boolean simulate){ int transmitted = 0; //Go through all of the connections in the network - for(ConnectionPair pair : network){ + ArrayList pairs = new ArrayList(network); + for(ConnectionPair pair : pairs){ WorldPos[] relays = new WorldPos[]{pair.firstRelay, pair.secondRelay}; //Go through both relays in the connection for(WorldPos relay : relays){ From 41e2c7ce6af10a9be62f334349b6419d997638ef Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 15:03:15 +0100 Subject: [PATCH 24/73] This is probably like punching any experienced programmer in the face, but it works. --- .../misc/LaserRelayConnectionHandler.java | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 0fdabef7c..d46aa23b8 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -21,6 +21,8 @@ import net.minecraftforge.common.util.ForgeDirection; import java.util.ArrayList; +//This is probably like punching any experienced programmer in the face, but it works. +@SuppressWarnings("ForLoopReplaceableByForEach") public class LaserRelayConnectionHandler{ private static LaserRelayConnectionHandler instance; @@ -68,10 +70,11 @@ public class LaserRelayConnectionHandler{ */ public ArrayList getConnectionsFor(WorldPos relay){ ArrayList allPairs = new ArrayList(); - ArrayList> theNetworks = new ArrayList>(this.networks); - for(ArrayList aNetwork : theNetworks){ - ArrayList pairs = new ArrayList(aNetwork); - for(ConnectionPair pair : pairs){ + ArrayList> networks1 = this.networks; + for(int i = 0; i < networks1.size(); i++){ + ArrayList aNetwork = networks1.get(i); + for(int i1 = 0; i1 < aNetwork.size(); i1++){ + ConnectionPair pair = aNetwork.get(i1); if(pair.contains(relay)){ allPairs.add(pair); } @@ -88,8 +91,8 @@ public class LaserRelayConnectionHandler{ if(network != null){ //Setup new network (so that splitting a network will cause it to break into two) this.networks.remove(network); - ArrayList pairs = new ArrayList(network); - for(ConnectionPair pair : pairs){ + for(int i = 0; i < network.size(); i++){ + ConnectionPair pair = network.get(i); if(!pair.contains(relay)){ this.addConnection(pair.firstRelay, pair.secondRelay); } @@ -102,10 +105,11 @@ public class LaserRelayConnectionHandler{ * Gets a Network for a Relay */ public ArrayList getNetworkFor(WorldPos relay){ - ArrayList> theNetworks = new ArrayList>(this.networks); - for(ArrayList aNetwork : theNetworks){ - ArrayList pairs = new ArrayList(aNetwork); - for(ConnectionPair pair : pairs){ + ArrayList> networks1 = this.networks; + for(int i = 0; i < networks1.size(); i++){ + ArrayList aNetwork = networks1.get(i); + for(int i1 = 0; i1 < aNetwork.size(); i1++){ + ConnectionPair pair = aNetwork.get(i1); if(pair.contains(relay)){ return aNetwork; } @@ -161,8 +165,8 @@ public class LaserRelayConnectionHandler{ * (Actually puts everything from the second network into the first one and removes the second one) */ public void mergeNetworks(ArrayList firstNetwork, ArrayList secondNetwork){ - ArrayList pairs = new ArrayList(secondNetwork); - for(ConnectionPair secondPair : pairs){ + for(int i = 0; i < secondNetwork.size(); i++){ + ConnectionPair secondPair = secondNetwork.get(i); firstNetwork.add(secondPair); } this.networks.remove(secondNetwork); @@ -173,8 +177,8 @@ public class LaserRelayConnectionHandler{ public int transferEnergyToReceiverInNeed(ArrayList network, int maxTransfer, boolean simulate){ int transmitted = 0; //Go through all of the connections in the network - ArrayList pairs = new ArrayList(network); - for(ConnectionPair pair : pairs){ + for(int i1 = 0; i1 < network.size(); i1++){ + ConnectionPair pair = network.get(i1); WorldPos[] relays = new WorldPos[]{pair.firstRelay, pair.secondRelay}; //Go through both relays in the connection for(WorldPos relay : relays){ @@ -192,8 +196,8 @@ public class LaserRelayConnectionHandler{ //The amount of energy lost during a transfer int deduct = (int)(theoreticalReceived*((double)ConfigIntValues.LASER_RELAY_LOSS.getValue()/100)); - transmitted+=((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), theoreticalReceived-deduct, simulate); - transmitted+=deduct; + transmitted += ((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), theoreticalReceived-deduct, simulate); + transmitted += deduct; } } } @@ -243,4 +247,4 @@ public class LaserRelayConnectionHandler{ } } } -} +} \ No newline at end of file From c300b080f430679685911a230dddd6b59bd91ab0 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 15:04:34 +0100 Subject: [PATCH 25/73] ~ --- .../ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index b13be45cb..c7c0b5b3b 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -41,13 +41,15 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); } + @SuppressWarnings("ForLoopReplaceableByForEach") @SideOnly(Side.CLIENT) public void renderParticles(){ if(this.worldObj.rand.nextInt(2) == 0){ WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); if(network != null){ - for(LaserRelayConnectionHandler.ConnectionPair aPair : network){ + for(int i1 = 0; i1 < network.size(); i1++){ + LaserRelayConnectionHandler.ConnectionPair aPair = network.get(i1); if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ if(Minecraft.getMinecraft().thePlayer.getDistance(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ()) <= 64){ int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); From a7c8a3c6e4bf53d23c2f78598efe67ce09a56daf Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 17:36:30 +0100 Subject: [PATCH 26/73] Actually fixed Laser Network bugging sometimes for real now instead of thinking of stupid workarounds that don't really work --- .../actuallyadditions/ActuallyAdditions.java | 15 +- .../actuallyadditions/event/InitEvents.java | 1 - .../event/WorldLoadEvent.java | 26 ---- .../misc/LaserRelayConnectionHandler.java | 131 +++++++++--------- .../actuallyadditions/misc/WorldData.java | 23 ++- .../tile/TileEntityLaserRelay.java | 27 ++-- 6 files changed, 97 insertions(+), 126 deletions(-) delete mode 100644 src/main/java/ellpeck/actuallyadditions/event/WorldLoadEvent.java diff --git a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java index 2081d1d51..11b502f6b 100644 --- a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java +++ b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java @@ -31,10 +31,7 @@ import ellpeck.actuallyadditions.items.InitItems; import ellpeck.actuallyadditions.items.ItemCoffee; import ellpeck.actuallyadditions.material.InitArmorMaterials; import ellpeck.actuallyadditions.material.InitToolMaterials; -import ellpeck.actuallyadditions.misc.DispenserHandlerEmptyBucket; -import ellpeck.actuallyadditions.misc.DispenserHandlerFertilize; -import ellpeck.actuallyadditions.misc.DispenserHandlerFillBucket; -import ellpeck.actuallyadditions.misc.WorldData; +import ellpeck.actuallyadditions.misc.*; import ellpeck.actuallyadditions.network.PacketHandler; import ellpeck.actuallyadditions.ore.InitOreDict; import ellpeck.actuallyadditions.proxy.IProxy; @@ -119,6 +116,16 @@ public class ActuallyAdditions{ Util.registerDispenserHandler(Items.bucket, new DispenserHandlerFillBucket()); Util.registerDispenserHandler(InitItems.itemFertilizer, new DispenserHandlerFertilize()); + if(LaserRelayConnectionHandler.getInstance() == null){ + LaserRelayConnectionHandler.setInstance(new LaserRelayConnectionHandler()); + } + WorldData.init(event.getServer()); } + + @EventHandler + public void serverStopped(FMLServerStoppedEvent event){ + //Clear all Network Connections so that they won't be carried over into other worlds + LaserRelayConnectionHandler.getInstance().networks.clear(); + } } diff --git a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java index 04bb7365b..20e36c5ed 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java +++ b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java @@ -31,7 +31,6 @@ public class InitEvents{ Util.registerEvent(new EntityLivingEvent()); Util.registerEvent(new BucketFillEvent()); Util.registerEvent(new LogoutEvent()); - Util.registerEvent(new WorldLoadEvent()); MinecraftForge.TERRAIN_GEN_BUS.register(new WorldDecorationEvent()); } diff --git a/src/main/java/ellpeck/actuallyadditions/event/WorldLoadEvent.java b/src/main/java/ellpeck/actuallyadditions/event/WorldLoadEvent.java deleted file mode 100644 index add130643..000000000 --- a/src/main/java/ellpeck/actuallyadditions/event/WorldLoadEvent.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * This file ("WorldLoadEvent.java") is part of the Actually Additions Mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015 Ellpeck - */ - -package ellpeck.actuallyadditions.event; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; -import net.minecraftforge.event.world.WorldEvent; - -public class WorldLoadEvent{ - - @SubscribeEvent - public void onLoad(WorldEvent.Load event){ - if(LaserRelayConnectionHandler.getInstance() == null){ - LaserRelayConnectionHandler.setInstance(new LaserRelayConnectionHandler()); - } - } - -} diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index d46aa23b8..b718a61e8 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -15,23 +15,20 @@ import ellpeck.actuallyadditions.config.values.ConfigIntValues; import ellpeck.actuallyadditions.tile.TileEntityLaserRelay; import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; +import io.netty.util.internal.ConcurrentSet; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; -import java.util.ArrayList; - -//This is probably like punching any experienced programmer in the face, but it works. -@SuppressWarnings("ForLoopReplaceableByForEach") public class LaserRelayConnectionHandler{ private static LaserRelayConnectionHandler instance; /** - * An ArrayList of all of the networks a world has - * (Every place contains an ArrayList of ConnectionPairs, that is a single network!) + * All of the Networks */ - public ArrayList> networks = new ArrayList>(); + public ConcurrentSet networks = new ConcurrentSet(); public static LaserRelayConnectionHandler getInstance(){ return instance; @@ -41,40 +38,32 @@ public class LaserRelayConnectionHandler{ instance = i; } - public void writeNetworkToNBT(ArrayList network, NBTTagCompound tag, String name){ - NBTTagCompound compound = new NBTTagCompound(); - compound.setInteger("NetworkSize", network.size()); - - for(int pair = 0; pair < network.size(); pair++){ - network.get(pair).writeToNBT(compound, "Pair"+pair); + public NBTTagCompound writeNetworkToNBT(Network network){ + NBTTagList list = new NBTTagList(); + for(ConnectionPair pair : network.connections){ + list.appendTag(pair.writeToNBT()); } - - tag.setTag(name, compound); + NBTTagCompound compound = new NBTTagCompound(); + compound.setTag("Network", list); + return compound; } - public ArrayList readNetworkFromNBT(NBTTagCompound tag, String name){ - NBTTagCompound compound = tag.getCompoundTag(name); - - int networkSize = compound.getInteger("NetworkSize"); - - ArrayList network = new ArrayList(); - for(int pair = 0; pair < networkSize; pair++){ - network.add(ConnectionPair.readFromNBT(compound, "Pair"+pair)); + public Network readNetworkFromNBT(NBTTagCompound tag){ + NBTTagList list = tag.getTagList("Network", 10); + Network network = new Network(); + for(int i = 0; i < list.tagCount(); i++){ + network.connections.add(ConnectionPair.readFromNBT(list.getCompoundTagAt(i))); } - return network; } /** * Gets all Connections for a Relay */ - public ArrayList getConnectionsFor(WorldPos relay){ - ArrayList allPairs = new ArrayList(); - ArrayList> networks1 = this.networks; - for(int i = 0; i < networks1.size(); i++){ - ArrayList aNetwork = networks1.get(i); - for(int i1 = 0; i1 < aNetwork.size(); i1++){ - ConnectionPair pair = aNetwork.get(i1); + public ConcurrentSet getConnectionsFor(WorldPos relay){ + ConcurrentSet allPairs = new ConcurrentSet(); + for(Network aNetwork : this.networks){ + for(ConnectionPair pair : aNetwork.connections){ if(pair.contains(relay)){ allPairs.add(pair); } @@ -87,16 +76,16 @@ public class LaserRelayConnectionHandler{ * Removes a Relay from its Network */ public void removeRelayFromNetwork(WorldPos relay){ - ArrayList network = this.getNetworkFor(relay); + Network network = this.getNetworkFor(relay); if(network != null){ //Setup new network (so that splitting a network will cause it to break into two) this.networks.remove(network); - for(int i = 0; i < network.size(); i++){ - ConnectionPair pair = network.get(i); + for(ConnectionPair pair : network.connections){ if(!pair.contains(relay)){ this.addConnection(pair.firstRelay, pair.secondRelay); } } + System.out.println("Removing a Relay from the Network!"); } WorldData.makeDirty(); } @@ -104,12 +93,9 @@ public class LaserRelayConnectionHandler{ /** * Gets a Network for a Relay */ - public ArrayList getNetworkFor(WorldPos relay){ - ArrayList> networks1 = this.networks; - for(int i = 0; i < networks1.size(); i++){ - ArrayList aNetwork = networks1.get(i); - for(int i1 = 0; i1 < aNetwork.size(); i1++){ - ConnectionPair pair = aNetwork.get(i1); + public Network getNetworkFor(WorldPos relay){ + for(Network aNetwork : this.networks){ + for(ConnectionPair pair : aNetwork.connections){ if(pair.contains(relay)){ return aNetwork; } @@ -128,14 +114,14 @@ public class LaserRelayConnectionHandler{ return false; } - ArrayList firstNetwork = this.getNetworkFor(firstRelay); - ArrayList secondNetwork = this.getNetworkFor(secondRelay); + Network firstNetwork = this.getNetworkFor(firstRelay); + Network secondNetwork = this.getNetworkFor(secondRelay); //No Network exists if(firstNetwork == null && secondNetwork == null){ - firstNetwork = new ArrayList(); + firstNetwork = new Network(); this.networks.add(firstNetwork); - firstNetwork.add(new ConnectionPair(firstRelay, secondRelay)); + firstNetwork.connections.add(new ConnectionPair(firstRelay, secondRelay)); } //The same Network else if(firstNetwork == secondNetwork){ @@ -144,19 +130,20 @@ public class LaserRelayConnectionHandler{ //Both relays have networks else if(firstNetwork != null && secondNetwork != null){ this.mergeNetworks(firstNetwork, secondNetwork); - firstNetwork.add(new ConnectionPair(firstRelay, secondRelay)); + firstNetwork.connections.add(new ConnectionPair(firstRelay, secondRelay)); } //Only first network exists else if(firstNetwork != null){ - firstNetwork.add(new ConnectionPair(firstRelay, secondRelay)); + firstNetwork.connections.add(new ConnectionPair(firstRelay, secondRelay)); } //Only second network exists else if(secondNetwork != null){ - secondNetwork.add(new ConnectionPair(firstRelay, secondRelay)); + secondNetwork.connections.add(new ConnectionPair(firstRelay, secondRelay)); } WorldData.makeDirty(); - //System.out.println("Connected "+firstRelay.toString()+" to "+secondRelay.toString()); - //System.out.println(firstNetwork == null ? secondNetwork.toString() : firstNetwork.toString()); + System.out.println("Connected "+firstRelay.toString()+" to "+secondRelay.toString()); + System.out.println(firstNetwork == null ? secondNetwork.toString() : firstNetwork.toString()); + System.out.println(this.networks); return true; } @@ -164,21 +151,19 @@ public class LaserRelayConnectionHandler{ * Merges two networks together * (Actually puts everything from the second network into the first one and removes the second one) */ - public void mergeNetworks(ArrayList firstNetwork, ArrayList secondNetwork){ - for(int i = 0; i < secondNetwork.size(); i++){ - ConnectionPair secondPair = secondNetwork.get(i); - firstNetwork.add(secondPair); + public void mergeNetworks(Network firstNetwork, Network secondNetwork){ + for(ConnectionPair secondPair : secondNetwork.connections){ + firstNetwork.connections.add(secondPair); } this.networks.remove(secondNetwork); WorldData.makeDirty(); - //System.out.println("Merged Two Networks!"); + System.out.println("Merged Two Networks!"); } - public int transferEnergyToReceiverInNeed(ArrayList network, int maxTransfer, boolean simulate){ + public int transferEnergyToReceiverInNeed(Network network, int maxTransfer, boolean simulate){ int transmitted = 0; //Go through all of the connections in the network - for(int i1 = 0; i1 < network.size(); i1++){ - ConnectionPair pair = network.get(i1); + for(ConnectionPair pair : network.connections){ WorldPos[] relays = new WorldPos[]{pair.firstRelay, pair.secondRelay}; //Go through both relays in the connection for(WorldPos relay : relays){ @@ -217,13 +202,13 @@ public class LaserRelayConnectionHandler{ this.secondRelay = secondRelay; } - public static ConnectionPair readFromNBT(NBTTagCompound compound, String name){ + public static ConnectionPair readFromNBT(NBTTagCompound compound){ WorldPos[] pos = new WorldPos[2]; for(int i = 0; i < pos.length; i++){ - int anX = compound.getInteger("x"+name+i); - int aY = compound.getInteger("y"+name+i); - int aZ = compound.getInteger("z"+name+i); - pos[i] = new WorldPos(compound.getInteger("world"+name+i), anX, aY, aZ); + int anX = compound.getInteger("x"+i); + int aY = compound.getInteger("y"+i); + int aZ = compound.getInteger("z"+i); + pos[i] = new WorldPos(compound.getInteger("world"+i), anX, aY, aZ); } return new ConnectionPair(pos[0], pos[1]); } @@ -237,14 +222,26 @@ public class LaserRelayConnectionHandler{ return (this.firstRelay == null ? "-" : this.firstRelay.toString())+" | "+(this.secondRelay == null ? "-" : this.secondRelay.toString()); } - public void writeToNBT(NBTTagCompound compound, String name){ + public NBTTagCompound writeToNBT(){ + NBTTagCompound compound = new NBTTagCompound(); for(int i = 0; i < 2; i++){ WorldPos relay = i == 0 ? this.firstRelay : this.secondRelay; - compound.setInteger("world"+name+i, relay.getWorldID()); - compound.setInteger("x"+name+i, relay.getX()); - compound.setInteger("y"+name+i, relay.getY()); - compound.setInteger("z"+name+i, relay.getZ()); + compound.setInteger("world"+i, relay.getWorldID()); + compound.setInteger("x"+i, relay.getX()); + compound.setInteger("y"+i, relay.getY()); + compound.setInteger("z"+i, relay.getZ()); } + return compound; + } + } + + public static class Network{ + + public ConcurrentSet connections = new ConcurrentSet(); + + @Override + public String toString(){ + return this.connections.toString(); } } } \ No newline at end of file diff --git a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java index c88dbaa20..968472cd9 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java @@ -13,12 +13,11 @@ package ellpeck.actuallyadditions.misc; import ellpeck.actuallyadditions.util.ModUtil; import ellpeck.actuallyadditions.util.playerdata.PersistentServerData; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.server.MinecraftServer; import net.minecraft.world.World; import net.minecraft.world.WorldSavedData; -import java.util.ArrayList; - public class WorldData extends WorldSavedData{ public static final String DATA_TAG = ModUtil.MOD_ID+"WorldData"; @@ -55,13 +54,10 @@ public class WorldData extends WorldSavedData{ @Override public void readFromNBT(NBTTagCompound compound){ //Laser World Data - int netAmount = compound.getInteger("LaserNetworkAmount"); - LaserRelayConnectionHandler.getInstance().networks.clear(); - for(int i = 0; i < netAmount; i++){ - ArrayList network = LaserRelayConnectionHandler.getInstance().readNetworkFromNBT(compound, "LaserNetwork"+i); - if(network != null){ - LaserRelayConnectionHandler.getInstance().networks.add(network); - } + NBTTagList list = compound.getTagList("Networks", 10); + for(int i = 0; i < list.tagCount(); i++){ + LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().readNetworkFromNBT(list.getCompoundTagAt(i)); + LaserRelayConnectionHandler.getInstance().networks.add(network); } //Player Data @@ -78,12 +74,11 @@ public class WorldData extends WorldSavedData{ @Override public void writeToNBT(NBTTagCompound compound){ //Laser World Data - int netAmount = LaserRelayConnectionHandler.getInstance().networks.size(); - compound.setInteger("LaserNetworkAmount", netAmount); - - for(int i = 0; i < netAmount; i++){ - LaserRelayConnectionHandler.getInstance().writeNetworkToNBT(LaserRelayConnectionHandler.getInstance().networks.get(i), compound, "LaserNetwork"+i); + NBTTagList list = new NBTTagList(); + for(LaserRelayConnectionHandler.Network network : LaserRelayConnectionHandler.getInstance().networks){ + list.appendTag(LaserRelayConnectionHandler.getInstance().writeNetworkToNBT(network)); } + compound.setTag("Networks", list); //Player Data compound.setInteger("PersistentDataSize", PersistentServerData.playerSaveData.size()); diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index c7c0b5b3b..0c0740780 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -16,16 +16,16 @@ import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; +import io.netty.util.internal.ConcurrentSet; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityReddustFX; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraftforge.common.util.ForgeDirection; -import java.util.ArrayList; - public class TileEntityLaserRelay extends TileEntityBase implements IEnergyReceiver{ @Override @@ -41,15 +41,13 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); } - @SuppressWarnings("ForLoopReplaceableByForEach") @SideOnly(Side.CLIENT) public void renderParticles(){ if(this.worldObj.rand.nextInt(2) == 0){ WorldPos thisPos = new WorldPos(this.getWorldObj(), this.xCoord, this.yCoord, this.zCoord); - ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); + LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(thisPos); if(network != null){ - for(int i1 = 0; i1 < network.size(); i1++){ - LaserRelayConnectionHandler.ConnectionPair aPair = network.get(i1); + for(LaserRelayConnectionHandler.ConnectionPair aPair : network.connections){ if(aPair.contains(thisPos) && thisPos.isEqual(aPair.firstRelay)){ if(Minecraft.getMinecraft().thePlayer.getDistance(aPair.firstRelay.getX(), aPair.firstRelay.getY(), aPair.firstRelay.getZ()) <= 64){ int difX = aPair.firstRelay.getX()-aPair.secondRelay.getX(); @@ -72,13 +70,14 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei NBTTagCompound compound = new NBTTagCompound(); WorldPos thisPos = new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord); - ArrayList connections = LaserRelayConnectionHandler.getInstance().getConnectionsFor(thisPos); + ConcurrentSet connections = LaserRelayConnectionHandler.getInstance().getConnectionsFor(thisPos); if(connections != null){ - compound.setInteger("ConnectionAmount", connections.size()); - for(int i = 0; i < connections.size(); i++){ - connections.get(i).writeToNBT(compound, "Connection"+i); + NBTTagList list = new NBTTagList(); + for(LaserRelayConnectionHandler.ConnectionPair pair : connections){ + list.appendTag(pair.writeToNBT()); } + compound.setTag("Connections", list); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 3, compound); } return null; @@ -90,9 +89,9 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); - int amount = compound.getInteger("ConnectionAmount"); - for(int i = 0; i < amount; i++){ - LaserRelayConnectionHandler.ConnectionPair pair = LaserRelayConnectionHandler.ConnectionPair.readFromNBT(compound, "Connection"+i); + NBTTagList list = compound.getTagList("Connections", 10); + for(int i = 0; i < list.tagCount(); i++){ + LaserRelayConnectionHandler.ConnectionPair pair = LaserRelayConnectionHandler.ConnectionPair.readFromNBT(list.getCompoundTagAt(i)); LaserRelayConnectionHandler.getInstance().addConnection(pair.firstRelay, pair.secondRelay); } } @@ -115,7 +114,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei public int transmitEnergy(int maxTransmit, boolean simulate){ int transmitted = 0; if(maxTransmit > 0){ - ArrayList network = LaserRelayConnectionHandler.getInstance().getNetworkFor(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); + LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); if(network != null){ transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(network, maxTransmit, simulate); } From e6a50b2d36fe493f7db435aa8aefb3c68d1134d0 Mon Sep 17 00:00:00 2001 From: Glenthor Date: Thu, 29 Oct 2015 19:29:44 +0100 Subject: [PATCH 27/73] -Added Iron Casing, Drill Core --- .../textures/blocks/blockMiscIronCasing.png | Bin 0 -> 239 bytes .../textures/blocks/blockMiscIronCasingSnow.png | Bin 0 -> 556 bytes .../textures/items/itemDrillCore.png | Bin 0 -> 301 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/actuallyadditions/textures/blocks/blockMiscIronCasing.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/blocks/blockMiscIronCasingSnow.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemDrillCore.png diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockMiscIronCasing.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockMiscIronCasing.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d32c603ae5116fd9f0905ca086f9d5ee1b1418 GIT binary patch literal 239 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G^tAk28_ZrvZCAbW|YuPgg~E?FTlj#Kk)Ist`hJY5_^EKa|jypfApQGivwYHHX1 z_w}!`p1%tfVz-a+`k=0(5}ulZ$to=cISqzvd&^y(+}K;b?wZu9u9*v0 z9XB&>DBZK!?u6xL=^Ca7a}HP6f2iA?wf2lYLL3 et2>_SDBa1}R{iu(nwl%n9SokXelF{r5}E)fY*>2$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockMiscIronCasingSnow.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockMiscIronCasingSnow.png new file mode 100644 index 0000000000000000000000000000000000000000..c69e414c53df07235a17c89921acd8925be859f5 GIT binary patch literal 556 zcmV+{0@MA8P)M#_Bzocnxjb8ZxzW+0cpk8=kp;}E_(wydIH;m3OJMcpiviJ{KOT1pM zRF)-GRq?--QhM8`lu$~kTpU6GpePCegb;59%UK9PN{J8xVxH#&Af-e~`J?DBH9`pF zKN-IkhY*M{{%J)nasgtDKYV`PEfy9Va$$}!GEEcS`<#b!4)1-==2JyV2^nJ~#)$Wx zaU2ODWaiJuzo}5mV{0v4*HPCsRaN1fqwjl!5Nx+wlv2bPan7NX%6X}j67xLM_dUiK z#&M)+8d6G>W%-TDJ5lDQWOPJN|um?5ZrDz?)Q6ECZ$AmU57CStum#+aPRCzNxJrfJx0Hd)1YEOSy6#T%B{ uQGMTMrlltqEY0&>!8nc#!+ydPH<$xEZpt@0000J*_3 zx0p35SiJoon8_W;;(x{{bmAFHbXAi=#0{29H*d_&QvK(0L~DYky!HJzHgbRZyB0}Y zdv-5w^OQ*@zU|Ho%T+wZCR~my4h^-5PoH(G%hy4UCAn$62t#TlSA)j6ZQ4&94Ptir z{qPdZ^3CVTy`A^(% Date: Thu, 29 Oct 2015 19:51:00 +0100 Subject: [PATCH 28/73] Cleaned up NBT Data Saving --- .../actuallyadditions/ActuallyAdditions.java | 4 +- .../actuallyadditions/misc/WorldData.java | 28 +++++---- .../util/playerdata/PersistentClientData.java | 58 ++++++++++--------- .../util/playerdata/PersistentServerData.java | 17 +++--- 4 files changed, 58 insertions(+), 49 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java index 11b502f6b..ee787c9ba 100644 --- a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java +++ b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java @@ -42,6 +42,7 @@ import ellpeck.actuallyadditions.tile.TileEntityBase; import ellpeck.actuallyadditions.update.UpdateChecker; import ellpeck.actuallyadditions.util.ModUtil; import ellpeck.actuallyadditions.util.Util; +import ellpeck.actuallyadditions.util.playerdata.PersistentServerData; import net.minecraft.init.Items; // So that BuildCraft Oil always gets used @@ -125,7 +126,8 @@ public class ActuallyAdditions{ @EventHandler public void serverStopped(FMLServerStoppedEvent event){ - //Clear all Network Connections so that they won't be carried over into other worlds + //Clear Data so that it won't be carried over to other worlds LaserRelayConnectionHandler.getInstance().networks.clear(); + PersistentServerData.playerSaveData.clear(); } } diff --git a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java index 968472cd9..4bc7347d8 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java @@ -54,37 +54,35 @@ public class WorldData extends WorldSavedData{ @Override public void readFromNBT(NBTTagCompound compound){ //Laser World Data - NBTTagList list = compound.getTagList("Networks", 10); - for(int i = 0; i < list.tagCount(); i++){ - LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().readNetworkFromNBT(list.getCompoundTagAt(i)); + NBTTagList networkList = compound.getTagList("Networks", 10); + for(int i = 0; i < networkList.tagCount(); i++){ + LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().readNetworkFromNBT(networkList.getCompoundTagAt(i)); LaserRelayConnectionHandler.getInstance().networks.add(network); } //Player Data - int dataSize = compound.getInteger("PersistentDataSize"); - PersistentServerData.playerSaveData.clear(); - for(int i = 0; i < dataSize; i++){ - PersistentServerData.PlayerSave aSave = PersistentServerData.PlayerSave.fromNBT(compound, "PlayerSaveData"+i); - if(aSave != null){ - PersistentServerData.playerSaveData.add(aSave); - } + NBTTagList playerList = compound.getTagList("PlayerData", 10); + for(int i = 0; i < playerList.tagCount(); i++){ + PersistentServerData.PlayerSave aSave = PersistentServerData.PlayerSave.fromNBT(playerList.getCompoundTagAt(i)); + PersistentServerData.playerSaveData.add(aSave); } } @Override public void writeToNBT(NBTTagCompound compound){ //Laser World Data - NBTTagList list = new NBTTagList(); + NBTTagList networkList = new NBTTagList(); for(LaserRelayConnectionHandler.Network network : LaserRelayConnectionHandler.getInstance().networks){ - list.appendTag(LaserRelayConnectionHandler.getInstance().writeNetworkToNBT(network)); + networkList.appendTag(LaserRelayConnectionHandler.getInstance().writeNetworkToNBT(network)); } - compound.setTag("Networks", list); + compound.setTag("Networks", networkList); //Player Data - compound.setInteger("PersistentDataSize", PersistentServerData.playerSaveData.size()); + NBTTagList playerList = new NBTTagList(); for(int i = 0; i < PersistentServerData.playerSaveData.size(); i++){ PersistentServerData.PlayerSave theSave = PersistentServerData.playerSaveData.get(i); - theSave.toNBT(compound, "PlayerSaveData"+i); + playerList.appendTag(theSave.toNBT()); } + compound.setTag("PlayerData", playerList); } } diff --git a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java index bf3f6bea1..1a9ab2c27 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java +++ b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java @@ -32,17 +32,18 @@ public class PersistentClientData{ private static File theFile; public static void saveBookPage(BookletIndexEntry entry, BookletChapter chapter, BookletPage page, int pageInIndex){ - NBTTagCompound compound = readCompound(); - if(compound != null){ - compound.setInteger(getName("Entry"), entry == null ? -1 : InitBooklet.entries.indexOf(entry)); - compound.setInteger(getName("Chapter"), entry == null || chapter == null ? -1 : entry.chapters.indexOf(chapter)); - compound.setInteger(getName("Page"), page == null ? -1 : page.getID()); - compound.setInteger(getName("PageInIndex"), pageInIndex); - writeCompound(compound); + NBTTagCompound baseCompound = getBaseCompound(); + NBTTagCompound worldCompound = getCompoundForWorld(baseCompound); + if(worldCompound != null){ + worldCompound.setInteger("Entry", entry == null ? -1 : InitBooklet.entries.indexOf(entry)); + worldCompound.setInteger("Chapter", entry == null || chapter == null ? -1 : entry.chapters.indexOf(chapter)); + worldCompound.setInteger("Page", page == null ? -1 : page.getID()); + worldCompound.setInteger("PageInIndex", pageInIndex); + writeCompound(baseCompound, worldCompound); } } - private static NBTTagCompound readCompound(){ + private static NBTTagCompound getBaseCompound(){ try{ return CompressedStreamTools.readCompressed(new FileInputStream(getTheFile())); } @@ -51,14 +52,18 @@ public class PersistentClientData{ } } - private static String getName(String name){ - return (Minecraft.getMinecraft().isIntegratedServerRunning() ? Minecraft.getMinecraft().getIntegratedServer().getFolderName() : Minecraft.getMinecraft().func_147104_D().serverIP)+"-"+name; + private static String getName(){ + return Minecraft.getMinecraft().isIntegratedServerRunning() ? Minecraft.getMinecraft().getIntegratedServer().getFolderName() : Minecraft.getMinecraft().func_147104_D().serverIP; } - private static void writeCompound(NBTTagCompound compound){ - try{ + private static NBTTagCompound getCompoundForWorld(NBTTagCompound mainCompound){ + return mainCompound.getCompoundTag(getName()); + } - CompressedStreamTools.writeCompressed(compound, new FileOutputStream(getTheFile())); + private static void writeCompound(NBTTagCompound baseCompound, NBTTagCompound worldCompound){ + baseCompound.setTag(getName(), worldCompound); + try{ + CompressedStreamTools.writeCompressed(baseCompound, new FileOutputStream(getTheFile())); } catch(Exception e){ ModUtil.LOGGER.fatal("Couldn't write Persistent Variable!", e); @@ -82,17 +87,17 @@ public class PersistentClientData{ } public static void openLastBookPage(GuiBooklet gui){ - NBTTagCompound compound = readCompound(); - if(compound != null){ - if(compound.hasKey(getName("Entry"))){ - int entry = compound.getInteger(getName("Entry")); - int chapter = compound.getInteger(getName("Chapter")); - int page = compound.getInteger(getName("Page")); + NBTTagCompound worldCompound = getCompoundForWorld(getBaseCompound()); + if(worldCompound != null){ + if(worldCompound.hasKey("Entry")){ + int entry = worldCompound.getInteger("Entry"); + int chapter = worldCompound.getInteger("Chapter"); + int page = worldCompound.getInteger("Page"); BookletIndexEntry currentIndexEntry = entry == -1 ? null : InitBooklet.entries.get(entry); BookletChapter currentChapter = chapter == -1 || entry == -1 || currentIndexEntry.chapters.size() <= chapter ? null : currentIndexEntry.chapters.get(chapter); BookletPage currentPage = chapter == -1 || currentChapter == null || currentChapter.pages.length <= page-1 ? null : currentChapter.pages[page-1]; - int pageInIndex = compound.getInteger(getName("PageInIndex")); + int pageInIndex = worldCompound.getInteger("PageInIndex"); gui.openIndexEntry(currentIndexEntry, pageInIndex, true); if(currentChapter != null){ @@ -106,15 +111,16 @@ public class PersistentClientData{ } public static void setBoolean(String name, boolean bool){ - NBTTagCompound compound = readCompound(); - if(compound != null){ - compound.setBoolean(getName(name), bool); - writeCompound(compound); + NBTTagCompound baseCompound = getBaseCompound(); + NBTTagCompound worldCompound = getCompoundForWorld(baseCompound); + if(worldCompound != null){ + worldCompound.setBoolean(name, bool); + writeCompound(baseCompound, worldCompound); } } public static boolean getBoolean(String name){ - NBTTagCompound compound = readCompound(); - return compound != null && compound.getBoolean(getName(name)); + NBTTagCompound worldCompound = getCompoundForWorld(getBaseCompound()); + return worldCompound != null && worldCompound.getBoolean(name); } } diff --git a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java index e58030b49..1eec655d9 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java +++ b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java @@ -44,17 +44,20 @@ public class PersistentServerData{ this.theCompound = theCompound; } - public static PlayerSave fromNBT(NBTTagCompound compound, String name){ - UUID theID = new UUID(compound.getLong(name+"MostSignificant"), compound.getLong(name+"LeastSignificant")); - NBTTagCompound theCompound = compound.getCompoundTag(name+"Tag"); + public static PlayerSave fromNBT(NBTTagCompound compound){ + UUID theID = new UUID(compound.getLong("MostSignificant"), compound.getLong("LeastSignificant")); + NBTTagCompound theCompound = compound.getCompoundTag("Tag"); return new PlayerSave(theID, theCompound); } - public void toNBT(NBTTagCompound compound, String name){ - compound.setLong(name+"LeastSignificant", this.thePlayerUUID.getLeastSignificantBits()); - compound.setLong(name+"MostSignificant", this.thePlayerUUID.getMostSignificantBits()); + public NBTTagCompound toNBT(){ + NBTTagCompound compound = new NBTTagCompound(); + compound.setLong("LeastSignificant", this.thePlayerUUID.getLeastSignificantBits()); + compound.setLong("MostSignificant", this.thePlayerUUID.getMostSignificantBits()); - compound.setTag(name+"Tag", this.theCompound); + compound.setTag("Tag", this.theCompound); + + return compound; } } From 1ccf136be65d141c152a2b46fe43351d8b445832 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 19:54:05 +0100 Subject: [PATCH 29/73] Fix Typo /cc Didi --- src/main/resources/assets/actuallyadditions/lang/en_US.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 7592c6447..7dda404bf 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -437,7 +437,7 @@ booklet.actuallyadditions.chapter.quartz.text.1=Black Quartz is an Black Quartz items are used in lots of Crafting Recipes in Actually Additions. They are very important for most of the Items and, thus, should be mined when found in the world. They can be crafted into a couple of different Decorative Blocks shown on the following pages. Nether Quartz, but deadlier booklet.actuallyadditions.chapter.cloud.name=Smiley Cloud -booklet.actuallyadditions.chapter.cloud.text.1=The Smiley Cloud is a magical floating cloud which is getting put to life through the piece of Solidified Experience inside it. It hovers up and down in its place all jolly and fun, and when right-clicking, you can give it a name. When giving it certain special names like "Ellpeck" or "AcidBlues, it will have some special items it carries! +booklet.actuallyadditions.chapter.cloud.text.1=The Smiley Cloud is a magical floating cloud which is getting put to life through the piece of Solidified Experience inside it. It hovers up and down in its place all jolly and fun, and when right-clicking, you can give it a name. When giving it certain special names like "Ellpeck" or "AcidBlues", it will have some special items it carries! booklet.actuallyadditions.chapter.coalStuff.name=Coal Stuff booklet.actuallyadditions.chapter.coalStuff.text.1=Sometimes your Coal just burns for too long or too short, you know what I mean? For that, you can now craft Tiny Coal, Tiny Charcoal and Blocks of Charcoal for using them in a furnace. While the Block of Charcoal burns for as long as a Block of Coal, the Tiny Coal and Tiny Charcoal will burn for one eighth of a piece of coal, meaning it will smelt one item in a normal furnace. From 4c6d76d82e8e19b97852304c8c094696804421cc Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 20:54:10 +0100 Subject: [PATCH 30/73] Added Iron Casing & Drill Core --- .../actuallyadditions/blocks/BlockMisc.java | 16 ++++++--- .../blocks/metalists/TheMiscBlocks.java | 3 +- .../booklet/InitBooklet.java | 4 +-- .../booklet/page/PageCrafting.java | 2 +- .../config/values/ConfigCrafting.java | 4 ++- .../config/values/ConfigIntValues.java | 2 +- .../crafting/BlockCrafting.java | 34 ++++++++++++------ .../crafting/ItemCrafting.java | 13 ++++++- .../items/metalists/TheMiscItems.java | 3 +- .../assets/actuallyadditions/lang/en_US.lang | 2 ++ ...temDrillCore.png => itemMiscDrillCore.png} | Bin update/changelog.md | 3 +- 12 files changed, 62 insertions(+), 24 deletions(-) rename src/main/resources/assets/actuallyadditions/textures/items/{itemDrillCore.png => itemMiscDrillCore.png} (100%) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java index 9074dc03e..665560f3c 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java @@ -35,9 +35,11 @@ public class BlockMisc extends Block implements IActAddItemOrBlock{ public IIcon[] textures; @SideOnly(Side.CLIENT) - private IIcon stoneCasingSeasonalTop; + private IIcon casingSeasonalTop; @SideOnly(Side.CLIENT) private IIcon stoneCasingSeasonal; + @SideOnly(Side.CLIENT) + private IIcon ironCasingSeasonal; public BlockMisc(){ super(Material.rock); @@ -49,8 +51,13 @@ public class BlockMisc extends Block implements IActAddItemOrBlock{ @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata){ - if(ClientProxy.jingleAllTheWay && metadata == TheMiscBlocks.STONE_CASING.ordinal() && side != 0){ - return side == 1 ? this.stoneCasingSeasonalTop : this.stoneCasingSeasonal; + if(ClientProxy.jingleAllTheWay && side != 0){ + if(metadata == TheMiscBlocks.STONE_CASING.ordinal()){ + return side == 1 ? this.casingSeasonalTop : this.stoneCasingSeasonal; + } + else if(metadata == TheMiscBlocks.IRON_CASING.ordinal()){ + return side == 1 ? this.casingSeasonalTop : this.ironCasingSeasonal; + } } return metadata >= textures.length ? null : textures[metadata]; } @@ -76,8 +83,9 @@ public class BlockMisc extends Block implements IActAddItemOrBlock{ textures[i] = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+allMiscBlocks[i].name); } - this.stoneCasingSeasonalTop = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":blockMiscStoneCasingSnowTop"); + this.casingSeasonalTop = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":blockMiscStoneCasingSnowTop"); this.stoneCasingSeasonal = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":blockMiscStoneCasingSnow"); + this.ironCasingSeasonal = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":blockMiscIronCasingSnow"); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java index 1b244afd4..4a1031e0d 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java @@ -23,7 +23,8 @@ public enum TheMiscBlocks{ CHARCOAL_BLOCK("Charcoal", EnumRarity.common), ENDERPEARL_BLOCK("Enderpearl", EnumRarity.rare), LAVA_FACTORY_CASE("LavaFactoryCase", EnumRarity.uncommon), - ENDER_CASING("EnderCasing", EnumRarity.epic); + ENDER_CASING("EnderCasing", EnumRarity.epic), + IRON_CASING("IronCasing", EnumRarity.rare); public final String name; public final EnumRarity rarity; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index e3cfe2fc8..228ed371c 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -47,7 +47,7 @@ public class InitBooklet{ //Miscellaneous BookletPage pageStoneCase = new PageCrafting(5, BlockCrafting.recipeStoneCase); - new BookletChapter("craftingIngs", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeCoil).setNoText(), new PageCrafting(3, ItemCrafting.recipeCoilAdvanced).setNoText(), new PageCrafting(4, BlockCrafting.recipeCase).setNoText(), ClientProxy.jingleAllTheWay ? pageStoneCase : pageStoneCase.setNoText(), new PageCrafting(6, BlockCrafting.recipeEnderPearlBlock).setNoText(), new PageCrafting(7, BlockCrafting.recipeEnderCase).setNoText(), new PageCrafting(8, ItemCrafting.recipeRing).setNoText(), new PageCrafting(9, ItemCrafting.recipeKnifeHandle).setNoText(), new PageCrafting(10, ItemCrafting.recipeKnifeBlade).setNoText(), new PageCrafting(11, ItemCrafting.recipeKnife).setNoText(), new PageCrafting(12, ItemCrafting.recipeDough).setNoText(), new PageCrafting(13, ItemCrafting.recipeRiceDough).setNoText()).setImportant(); + new BookletChapter("craftingIngs", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeCoil).setNoText(), new PageCrafting(3, ItemCrafting.recipeCoilAdvanced).setNoText(), new PageCrafting(4, BlockCrafting.recipeCase).setNoText(), ClientProxy.jingleAllTheWay ? pageStoneCase : pageStoneCase.setNoText(), new PageCrafting(6, BlockCrafting.recipeEnderPearlBlock).setNoText(), new PageCrafting(7, BlockCrafting.recipeEnderCase).setNoText(), new PageCrafting(8, ItemCrafting.recipeRing).setNoText(), new PageCrafting(9, ItemCrafting.recipeKnifeHandle).setNoText(), new PageCrafting(10, ItemCrafting.recipeKnifeBlade).setNoText(), new PageCrafting(11, ItemCrafting.recipeKnife).setNoText(), new PageCrafting(12, ItemCrafting.recipeDough).setNoText(), new PageCrafting(13, ItemCrafting.recipeRiceDough).setNoText(), new PageCrafting(14, BlockCrafting.recipeIronCase).setNoText()).setImportant(); new BookletChapter("quartz", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal()), new PageTextOnly(1).setStack(new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.ORE_QUARTZ.ordinal())).addTextReplacement("", ConfigIntValues.BLACK_QUARTZ_MIN_HEIGHT.getValue()).addTextReplacement("", ConfigIntValues.BLACK_QUARTZ_MAX_HEIGHT.getValue()), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal())), new PageCrafting(3, BlockCrafting.recipeQuartzBlock).setNoText(), new PageCrafting(4, BlockCrafting.recipeQuartzPillar).setNoText(), new PageCrafting(5, BlockCrafting.recipeQuartzChiseled).setNoText()); new BookletChapter("cloud", entryMisc, new ItemStack(InitBlocks.blockSmileyCloud), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeSmileyCloud).setNoText()).setSpecial(); new BookletChapter("coalStuff", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.TINY_COAL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeTinyCoal).setNoText(), new PageCrafting(3, ItemCrafting.recipeTinyChar).setNoText(), new PageCrafting(4, BlockCrafting.recipeBlockChar).setNoText()); @@ -115,7 +115,7 @@ public class InitBooklet{ new BookletChapter("potionRings", entryItemsNonRF, new ItemStack(InitItems.itemPotionRing), potionRingPages.toArray(new BookletPage[potionRingPages.size()])); //RF Using Items - new BookletChapter("drill", entryItemsRF, new ItemStack(InitItems.itemDrill), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeDrill).setNoText(), new PageCrafting(3, ItemCrafting.recipeDrillSpeedI).setNoText(), new PageCrafting(4, ItemCrafting.recipeDrillSpeedII).setNoText(), new PageCrafting(5, ItemCrafting.recipeDrillSpeedIII).setNoText(), new PageCrafting(6, ItemCrafting.recipeDrillFortuneI).setNoText(), new PageCrafting(7, ItemCrafting.recipeDrillFortuneII).setNoText(), new PageCrafting(8, ItemCrafting.recipeDrillSilk).setNoText(), new PageCrafting(9, ItemCrafting.recipeDrillThree).setNoText(), new PageCrafting(10, ItemCrafting.recipeDrillFive).setNoText(), new PageCrafting(11, ItemCrafting.recipeDrillPlacing).setNoText()).setSpecial(); + new BookletChapter("drill", entryItemsRF, new ItemStack(InitItems.itemDrill), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeDrill).setNoText(), new PageCrafting(3, ItemCrafting.recipeDrillCore).setNoText(), new PageCrafting(4, ItemCrafting.recipeDrillSpeedI).setNoText(), new PageCrafting(5, ItemCrafting.recipeDrillSpeedII).setNoText(), new PageCrafting(6, ItemCrafting.recipeDrillSpeedIII).setNoText(), new PageCrafting(7, ItemCrafting.recipeDrillFortuneI).setNoText(), new PageCrafting(8, ItemCrafting.recipeDrillFortuneII).setNoText(), new PageCrafting(9, ItemCrafting.recipeDrillSilk).setNoText(), new PageCrafting(10, ItemCrafting.recipeDrillThree).setNoText(), new PageCrafting(11, ItemCrafting.recipeDrillFive).setNoText(), new PageCrafting(12, ItemCrafting.recipeDrillPlacing).setNoText()).setSpecial(); new BookletChapter("staff", entryItemsRF, new ItemStack(InitItems.itemTeleStaff), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeStaff).setNoText()).setImportant(); new BookletChapter("magnetRing", entryItemsRF, new ItemStack(InitItems.itemMagnetRing), new PageCrafting(1, ItemCrafting.recipeMagnetRing)); new BookletChapter("growthRing", entryItemsRF, new ItemStack(InitItems.itemGrowthRing), new PageCrafting(1, ItemCrafting.recipeGrowthRing)); diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java index 4cf0025f1..5d0ba5660 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java @@ -153,7 +153,7 @@ public class PageCrafting extends BookletPage{ @Override public ItemStack[] getItemStacksForPage(){ - if(this.recipes != null && this.recipes.length > 0){ + if(this.recipes != null && this.recipes.length > 0 && this.recipes[0] != null){ return new ItemStack[]{this.recipes[0].getRecipeOutput()}; } return null; diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java index 10d447ee9..508fbc43f 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java @@ -18,6 +18,7 @@ public enum ConfigCrafting{ CLOUD("Smiley Cloud", ConfigCategories.BLOCKS_CRAFTING), XP_SOLIDIFIER("Experience Solidifier", ConfigCategories.BLOCKS_CRAFTING), WOOD_CASING("Wood Casing", ConfigCategories.BLOCKS_CRAFTING), + IRON_CASING("Iron Casing", ConfigCategories.BLOCKS_CRAFTING), STONE_CASING("Stone Casing", ConfigCategories.BLOCKS_CRAFTING), FISHING_NET("Fishing Net", ConfigCategories.BLOCKS_CRAFTING), REPAIRER("Repairer", ConfigCategories.BLOCKS_CRAFTING), @@ -156,7 +157,8 @@ public enum ConfigCrafting{ LASER_RELAY("Laser Relay", ConfigCategories.BLOCKS_CRAFTING), LASER_WRENCH("Laser Wrench", ConfigCategories.ITEMS_CRAFTING), - CHEST_TO_CRATE_UPGRADE("Chest To Crate Upgrade", ConfigCategories.ITEMS_CRAFTING); + CHEST_TO_CRATE_UPGRADE("Chest To Crate Upgrade", ConfigCategories.ITEMS_CRAFTING), + DRILL_CORE("Drill Core", ConfigCategories.ITEMS_CRAFTING); public final String name; public final String category; diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java index be7ebf943..e519505a3 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java @@ -174,7 +174,7 @@ public enum ConfigIntValues{ RANGED_COLLECTOR_RANGE("Ranged Collector: Range", ConfigCategories.MACHINE_VALUES, 6, 1, 30, "The range of the Ranged Collector"), LASER_RELAY_LOSS("Laser Relay: Loss", ConfigCategories.MACHINE_VALUES, 5, 0, 80, "The Energy Loss of the Laser Relay per Transfer in Percent"), - LASER_RELAY_MAX_DISTANCE("Laser Relay: Max Distance", ConfigCategories.MACHINE_VALUES, 10, 3, 80, "The max distance between two connected Laser Relays"); + LASER_RELAY_MAX_DISTANCE("Laser Relay: Max Distance", ConfigCategories.MACHINE_VALUES, 15, 3, 80, "The max distance between two connected Laser Relays"); public final String name; public final String category; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java index 405b1fb02..2466d52ad 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java @@ -39,6 +39,7 @@ public class BlockCrafting{ public static IRecipe recipeLiquidPlacer; public static IRecipe recipeLiquidCollector; public static IRecipe recipeCase; + public static IRecipe recipeIronCase; public static IRecipe recipeStoneCase; public static IRecipe recipeEnderCase; public static IRecipe recipeEnderPearlBlock; @@ -83,8 +84,9 @@ public class BlockCrafting{ //Laser Relay if(ConfigCrafting.LASER_RELAY.isEnabled()){ - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockLaserRelay), - "ORO", "RCR", "ORO", + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockLaserRelay, 2), + "OBO", "RCR", "OBO", + 'B', new ItemStack(Blocks.redstone_block), 'O', new ItemStack(Blocks.obsidian), 'R', new ItemStack(Items.redstone), 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()))); @@ -155,6 +157,16 @@ public class BlockCrafting{ recipeCase = Util.GetRecipes.lastIRecipe(); } + //Iron Casing + if(ConfigCrafting.IRON_CASING.isEnabled()){ + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), + "WSW", "SQS", "WSW", + 'Q', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal()), + 'W', "ingotIron", + 'S', "stickWood")); + recipeIronCase = Util.GetRecipes.lastIRecipe(); + } + //Ender Casing if(ConfigCrafting.ENDER_CASING.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.ENDER_CASING.ordinal()), @@ -191,7 +203,7 @@ public class BlockCrafting{ "I I", "CAC", "I I", 'I', "ingotIron", 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()), - 'A', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()))); + 'A', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()))); recipeEnergizer = Util.GetRecipes.lastIRecipe(); } @@ -201,7 +213,7 @@ public class BlockCrafting{ " I ", "CAC", " I ", 'I', "ingotIron", 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()), - 'A', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()))); + 'A', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()))); recipeEnervator = Util.GetRecipes.lastIRecipe(); } @@ -209,7 +221,7 @@ public class BlockCrafting{ if(ConfigCrafting.LAVA_FACTORY.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockLavaFactoryController), "SCS", "ISI", "LLL", - 'C', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()), + 'C', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), 'S', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()), 'I', "blockIron", 'L', Items.lava_bucket)); @@ -220,7 +232,7 @@ public class BlockCrafting{ if(ConfigCrafting.CASING.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockMisc, 32, TheMiscBlocks.LAVA_FACTORY_CASE.ordinal()), "ICI", - 'C', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()), + 'C', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), 'I', "blockIron")); recipeCasing = Util.GetRecipes.lastIRecipe(); } @@ -241,7 +253,7 @@ public class BlockCrafting{ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockOreMagnet), "SSS", "CBC", "ISI", 'S', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.LAVA_FACTORY_CASE.ordinal()), - 'C', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()), + 'C', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), 'B', new ItemStack(InitItems.itemBatteryDouble), 'I', new ItemStack(Blocks.iron_block))); recipeMiner = Util.GetRecipes.lastIRecipe(); @@ -347,7 +359,7 @@ public class BlockCrafting{ "IEI", "GLG", "ICI", 'I', "ingotIron", 'G', "ingotGold", - 'E', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()), + 'E', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), 'L', "treeLeaves", 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()))); recipeLeafGen = Util.GetRecipes.lastIRecipe(); @@ -403,7 +415,7 @@ public class BlockCrafting{ "IQI", "CDC", "IBI", 'D', "blockDiamond", 'I', "ingotIron", - 'Q', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()), + 'Q', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()), 'B', new ItemStack(Blocks.iron_bars))); recipeSolar = Util.GetRecipes.lastIRecipe(); @@ -413,9 +425,9 @@ public class BlockCrafting{ if(ConfigCrafting.HEAT_COLLECTOR.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockHeatCollector), "BRB", "CDC", "BQB", - 'D', "gemDiamond", + 'D', "ingotIron", 'R', new ItemStack(Items.repeater), - 'Q', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.STONE_CASING.ordinal()), + 'Q', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), 'L', new ItemStack(Items.lava_bucket), 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()), 'B', new ItemStack(Blocks.iron_bars))); diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java index 410d1cc48..0836fa0d5 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java @@ -73,6 +73,7 @@ public class ItemCrafting{ public static ArrayList recipesPotionRings = new ArrayList(); public static IRecipe recipeChestToCrateUpgrade; public static IRecipe recipeLaserWrench; + public static IRecipe recipeDrillCore; public static void init(){ @@ -134,11 +135,21 @@ public class ItemCrafting{ "DDD", "CRC", "III", 'D', "gemDiamond", 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()), - 'R', "dustRedstone", + 'R', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DRILL_CORE.ordinal()), 'I', "blockIron")); recipeDrill = Util.GetRecipes.lastIRecipe(); } + //Drill Core + if(ConfigCrafting.DRILL_CORE.isEnabled()){ + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DRILL_CORE.ordinal()), + "ICI", "CRC", "ICI", + 'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), + 'R', "dustRedstone", + 'I', "blockIron")); + recipeDrillCore = Util.GetRecipes.lastIRecipe(); + } + //Tele Staff if(ConfigCrafting.TELE_STAFF.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemTeleStaff), diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java index 2a99be29b..4c82c69de 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java @@ -29,7 +29,8 @@ public enum TheMiscItems{ RICE_SLIME("RiceSlime", EnumRarity.uncommon), CANOLA("Canola", EnumRarity.uncommon), CUP("Cup", EnumRarity.uncommon), - BAT_WING("BatWing", EnumRarity.rare); + BAT_WING("BatWing", EnumRarity.rare), + DRILL_CORE("DrillCore", EnumRarity.uncommon); public final String name; public final EnumRarity rarity; diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 7dda404bf..224aaf142 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -106,6 +106,7 @@ tile.actuallyadditions.blockLeafGenerator.name=Leaf-Eating Generator tile.actuallyadditions.blockDirectionalBreaker.name=Long-Range Breaker tile.actuallyadditions.blockRangedCollector.name=Ranged Collector tile.actuallyadditions.blockLaserRelay.name=Laser Relay +tile.actuallyadditions.blockMiscIronCasing.name=Iron Casing #ESD tile.actuallyadditions.blockInputter.name=ESD @@ -279,6 +280,7 @@ item.actuallyadditions.itemBootsQuartz.name=Black Quartz Boots item.actuallyadditions.itemBooklet.name=Actually Additions Manual item.actuallyadditions.itemLaserWrench.name=Laser Wrench item.actuallyadditions.itemChestToCrateUpgrade.name=Chest To Storage Crate Upgrade +item.actuallyadditions.itemMiscDrillCore.name=Drill Core #Tooltips tooltip.actuallyadditions.onSuffix.desc=On diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemDrillCore.png b/src/main/resources/assets/actuallyadditions/textures/items/itemMiscDrillCore.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/items/itemDrillCore.png rename to src/main/resources/assets/actuallyadditions/textures/items/itemMiscDrillCore.png diff --git a/update/changelog.md b/update/changelog.md index 53f363a9a..a2766afd0 100644 --- a/update/changelog.md +++ b/update/changelog.md @@ -9,4 +9,5 @@ - Chocolate Toast (canitzp) - New AIOT Textures - AIOT Integration for SimpleOres 2 -- Changed Ball Of Hair Name to "Ball Of Fur", addedBooklet Page \ No newline at end of file +- Changed Ball Of Hair Name to "Ball Of Fur", addedBooklet Page +- Added Iron Casing & Drill Core \ No newline at end of file From bf65cc4edb79d387ffa992b1cff4ee1392c0053c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 21:02:10 +0100 Subject: [PATCH 31/73] Made Laser Relay not output to the same block it got the energy from /cc Didi --- .../misc/LaserRelayConnectionHandler.java | 27 ++++++++++--------- .../tile/TileEntityLaserRelay.java | 7 ++--- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index b718a61e8..198488b7a 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -160,7 +160,7 @@ public class LaserRelayConnectionHandler{ System.out.println("Merged Two Networks!"); } - public int transferEnergyToReceiverInNeed(Network network, int maxTransfer, boolean simulate){ + public int transferEnergyToReceiverInNeed(WorldPos energyGottenFrom, Network network, int maxTransfer, boolean simulate){ int transmitted = 0; //Go through all of the connections in the network for(ConnectionPair pair : network.connections){ @@ -171,18 +171,21 @@ public class LaserRelayConnectionHandler{ //Get every side of the relay for(int i = 0; i <= 5; i++){ ForgeDirection side = ForgeDirection.getOrientation(i); - //Get the TileEntity at the side - TileEntity tile = WorldUtil.getTileEntityFromSide(side, relay.getWorld(), relay.getX(), relay.getY(), relay.getZ()); - if(tile instanceof IEnergyReceiver && !(tile instanceof TileEntityLaserRelay)){ - IEnergyReceiver receiver = (IEnergyReceiver)tile; - if(receiver.canConnectEnergy(side.getOpposite())){ - //Transfer the energy (with the energy loss!) - int theoreticalReceived = ((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), maxTransfer-transmitted, true); - //The amount of energy lost during a transfer - int deduct = (int)(theoreticalReceived*((double)ConfigIntValues.LASER_RELAY_LOSS.getValue()/100)); + //Get the Position at the side + WorldPos pos = WorldUtil.getCoordsFromSide(side, relay.getWorld(), relay.getX(), relay.getY(), relay.getZ(), 0); + if(!pos.isEqual(energyGottenFrom)){ + TileEntity tile = pos.getTileEntity(); + if(tile instanceof IEnergyReceiver && !(tile instanceof TileEntityLaserRelay)){ + IEnergyReceiver receiver = (IEnergyReceiver)tile; + if(receiver.canConnectEnergy(side.getOpposite())){ + //Transfer the energy (with the energy loss!) + int theoreticalReceived = ((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), maxTransfer-transmitted, true); + //The amount of energy lost during a transfer + int deduct = (int)(theoreticalReceived*((double)ConfigIntValues.LASER_RELAY_LOSS.getValue()/100)); - transmitted += ((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), theoreticalReceived-deduct, simulate); - transmitted += deduct; + transmitted += ((IEnergyReceiver)tile).receiveEnergy(side.getOpposite(), theoreticalReceived-deduct, simulate); + transmitted += deduct; + } } } } diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 0c0740780..5069060d4 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -16,6 +16,7 @@ import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; +import ellpeck.actuallyadditions.util.WorldUtil; import io.netty.util.internal.ConcurrentSet; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityReddustFX; @@ -98,7 +99,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate){ - return this.transmitEnergy(maxReceive, simulate); + return this.transmitEnergy(WorldUtil.getCoordsFromSide(from, worldObj, xCoord, yCoord, zCoord, 0), maxReceive, simulate); } @Override @@ -111,12 +112,12 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei return 0; } - public int transmitEnergy(int maxTransmit, boolean simulate){ + public int transmitEnergy(WorldPos blockFrom, int maxTransmit, boolean simulate){ int transmitted = 0; if(maxTransmit > 0){ LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); if(network != null){ - transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(network, maxTransmit, simulate); + transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(blockFrom, network, maxTransmit, simulate); } } return transmitted; From caed3ead700bf112fffce901d02ddd807089cf26 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 21:03:40 +0100 Subject: [PATCH 32/73] Remove Debug Print --- .../misc/LaserRelayConnectionHandler.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 198488b7a..3575ec955 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -85,7 +85,7 @@ public class LaserRelayConnectionHandler{ this.addConnection(pair.firstRelay, pair.secondRelay); } } - System.out.println("Removing a Relay from the Network!"); + //System.out.println("Removing a Relay from the Network!"); } WorldData.makeDirty(); } @@ -141,9 +141,9 @@ public class LaserRelayConnectionHandler{ secondNetwork.connections.add(new ConnectionPair(firstRelay, secondRelay)); } WorldData.makeDirty(); - System.out.println("Connected "+firstRelay.toString()+" to "+secondRelay.toString()); - System.out.println(firstNetwork == null ? secondNetwork.toString() : firstNetwork.toString()); - System.out.println(this.networks); + //System.out.println("Connected "+firstRelay.toString()+" to "+secondRelay.toString()); + //System.out.println(firstNetwork == null ? secondNetwork.toString() : firstNetwork.toString()); + //System.out.println(this.networks); return true; } @@ -157,7 +157,7 @@ public class LaserRelayConnectionHandler{ } this.networks.remove(secondNetwork); WorldData.makeDirty(); - System.out.println("Merged Two Networks!"); + //System.out.println("Merged Two Networks!"); } public int transferEnergyToReceiverInNeed(WorldPos energyGottenFrom, Network network, int maxTransfer, boolean simulate){ From d6dcb17e2add1b0726b711c58de326e1e97b0b5c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 21:27:56 +0100 Subject: [PATCH 33/73] r1! --- README.md | 2 +- .../java/ellpeck/actuallyadditions/booklet/GuiBooklet.java | 2 +- src/main/resources/assets/actuallyadditions/lang/en_US.lang | 2 +- update/changelog.md | 2 +- update/changelog.txt | 2 +- update/updateVersion.txt | 3 +-- 6 files changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 1ed51d0b7..7c2769619 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ##It's a Minecraft Mod! -For more information, visit the main Minecraft Forum Thread at http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2374910-actually-additions-a-bunch-of-awesome-gadgets +For more information, visit the main Minecraft Forum Thread at http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/2551118 If you want to see Information on how you can use my Mod and its InterModComms Feature in your own Mod, see the InterModCommsInfo.md File! diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index cf3517719..63ad7bb75 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -242,7 +242,7 @@ public class GuiBooklet extends GuiScreen{ else if(button == this.buttonForum){ try{ if(Desktop.isDesktopSupported()){ - Desktop.getDesktop().browse(new URI("http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/2374910-actually-additions-a-bunch-of-awesome-gadgets")); + Desktop.getDesktop().browse(new URI("http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/2551118")); } } catch(Exception e){ diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 224aaf142..599fedd84 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -371,7 +371,7 @@ container.actuallyadditions.rangedCollector.name=Ranged Collector info.actuallyadditions.update.generic=[{"text":"There is an Update for "},{"text":"Actually Additions ","color":"dark_green"},{"text":"available!","color":"none"}] info.actuallyadditions.update.versionCompare=[{"text":"Current Version: "},{"text":"%s","color":"dark_red"},{"text":", newest Version: ","color":"none"},{"text":"%s","color":"dark_green"}] info.actuallyadditions.update.buttons=[{"text":"["},{"text":"Click for Changelog","color":"green","clickEvent":{"action":"open_url","value":"%s"}},{"text":"] [","color":"none"},{"text":"Click for Download","color":"green","clickEvent":{"action":"open_url","value":"%s"}},{"text":"]","color":"none"}] -info.actuallyadditions.update.buttonOptions=Click for Changelog, Shift-Click for Download! +info.actuallyadditions.update.buttonOptions=Click: Changelog, Shift-Click: Download! (In Browser) info.actuallyadditions.update.failed=[{"text":"The Update Check for "},{"text":"Actually Additions ","color":"dark_green"},{"text":"failed! Check Logs for more Info!","color":"none"}] #Achievements diff --git a/update/changelog.md b/update/changelog.md index a2766afd0..84c0d401b 100644 --- a/update/changelog.md +++ b/update/changelog.md @@ -9,5 +9,5 @@ - Chocolate Toast (canitzp) - New AIOT Textures - AIOT Integration for SimpleOres 2 -- Changed Ball Of Hair Name to "Ball Of Fur", addedBooklet Page +- Changed Ball Of Hair Name to "Ball Of Fur", added Booklet Page - Added Iron Casing & Drill Core \ No newline at end of file diff --git a/update/changelog.txt b/update/changelog.txt index e4d9a3c6f..6e4d36d2d 100644 --- a/update/changelog.txt +++ b/update/changelog.txt @@ -1,2 +1,2 @@ -Laser Relays, out of Beta! +New Update Checker +Laser Relays, out of Beta! +New Update Checker (If you still see this message, you really should update!) (This is a fallback for the old versions of the mod which use the old versioning System. Don't change.) \ No newline at end of file diff --git a/update/updateVersion.txt b/update/updateVersion.txt index bf2568732..4e0debcd3 100644 --- a/update/updateVersion.txt +++ b/update/updateVersion.txt @@ -1,2 +1 @@ -1.7.10-r2 -//For Testing the Update Checker \ No newline at end of file +1.7.10-r1 \ No newline at end of file From 416ea1de02aa155822b01d72c72dea3ec6cf9e22 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 21:52:31 +0100 Subject: [PATCH 34/73] Fixed Bug with Double Furnace & Double Crusher not crushing if both slots are filled /cc KittyVanCat --- .../ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java | 2 +- .../java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java index 445cd1687..051251e1a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java @@ -74,7 +74,7 @@ public class TileEntityFurnaceDouble extends TileEntityInventoryBase implements this.secondSmeltTime = 0; } - if(this.storage.getEnergyStored() >= ConfigIntValues.FURNACE_ENERGY_USED.getValue() && this.firstSmeltTime > 0 || this.secondSmeltTime > 0){ + if(this.storage.getEnergyStored() >= ConfigIntValues.FURNACE_ENERGY_USED.getValue() && (this.firstSmeltTime > 0 || this.secondSmeltTime > 0)){ this.storage.extractEnergy(ConfigIntValues.FURNACE_ENERGY_USED.getValue(), false); } diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java index e9ee62030..d42a96f3f 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java @@ -109,7 +109,7 @@ public class TileEntityGrinder extends TileEntityInventoryBase implements IEnerg } } - if(this.storage.getEnergyStored() >= getEnergyUse() && this.firstCrushTime > 0 || this.secondCrushTime > 0){ + if(this.storage.getEnergyStored() >= getEnergyUse() && (this.firstCrushTime > 0 || this.secondCrushTime > 0)){ this.storage.extractEnergy(getEnergyUse(), false); } From 80f9820f0dd928797e1b50158bbaa79451df20d5 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 29 Oct 2015 22:27:47 +0100 Subject: [PATCH 35/73] Fix Slab --- .../actuallyadditions/blocks/BlockSlabs.java | 39 +++++++++++++++++++ .../actuallyadditions/blocks/InitBlocks.java | 4 +- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java index f5dca8da0..ab1ec868e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java @@ -12,11 +12,13 @@ package ellpeck.actuallyadditions.blocks; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.actuallyadditions.items.ItemBlockBase; import ellpeck.actuallyadditions.util.IActAddItemOrBlock; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumRarity; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; @@ -100,4 +102,41 @@ public class BlockSlabs extends Block implements IActAddItemOrBlock{ public EnumRarity getRarity(ItemStack stack){ return EnumRarity.common; } + + public static class TheItemBlock extends ItemBlockBase{ + + public TheItemBlock(Block block){ + super(block); + this.setHasSubtypes(false); + this.setMaxDamage(0); + } + + @Override + public int getMetadata(int meta){ + return meta; + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + EnumRarity rarity = ((IActAddItemOrBlock)this.field_150939_a).getRarity(stack); + return rarity == null ? EnumRarity.common : rarity; + } + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ){ + if(world.getBlock(x, y, z) == this.field_150939_a && ((side == 1 && world.getBlockMetadata(x, y, z) == 0) || (side == 0 && world.getBlockMetadata(x, y, z) == 1))){ + if(world.setBlock(x, y, z, ((BlockSlabs)this.field_150939_a).fullBlock, 0, 3)){ + world.playSoundEffect(x+0.5F, y+0.5F, z+0.5F, this.field_150939_a.stepSound.getBreakSound(), (this.field_150939_a.stepSound.getVolume()+1.0F)/2.0F, this.field_150939_a.stepSound.getPitch()*0.8F); + stack.stackSize--; + return true; + } + } + return super.onItemUse(stack, player, world, x, y, z, side, hitX, hitY, hitZ); + } + + @Override + public String getUnlocalizedName(ItemStack stack){ + return this.getUnlocalizedName(); + } + } } diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java index 70803ac65..95cdd138e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java @@ -132,9 +132,9 @@ public class InitBlocks{ blockTestifiBucksWhiteStairs = new BlockStair(blockTestifiBucksWhiteWall, "blockTestifiBucksWhiteStairs"); BlockUtil.register(blockTestifiBucksWhiteStairs); blockTestifiBucksGreenSlab = new BlockSlabs("blockTestifiBucksGreenSlab", blockTestifiBucksGreenWall); - BlockUtil.register(blockTestifiBucksGreenSlab); + BlockUtil.register(blockTestifiBucksGreenSlab, BlockSlabs.TheItemBlock.class); blockTestifiBucksWhiteSlab = new BlockSlabs("blockTestifiBucksWhiteSlab", blockTestifiBucksWhiteWall); - BlockUtil.register(blockTestifiBucksWhiteSlab); + BlockUtil.register(blockTestifiBucksWhiteSlab, BlockSlabs.TheItemBlock.class); blockColoredLamp = new BlockColoredLamp(false); BlockUtil.register(blockColoredLamp, BlockColoredLamp.TheItemBlock.class); From 7b9573ca8e4026c1fdcbc032a4ac5f703ff6a251 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 30 Oct 2015 20:07:36 +0100 Subject: [PATCH 36/73] Added Preview Pictures to the booklet (Thanks to Kitty for help!) --- .../actuallyadditions/booklet/GuiBooklet.java | 8 ++-- .../booklet/InitBooklet.java | 10 ++--- .../booklet/page/PagePicture.java | 38 ++++++++++++++++++ .../nei/BookletInfoRecipeHandler.java | 6 ++- .../actuallyadditions/util/AssetUtil.java | 4 ++ .../assets/actuallyadditions/lang/en_US.lang | 11 +++-- .../textures/gui/{ => booklet}/guiBooklet.png | Bin .../gui/{ => booklet}/guiBookletChristmas.png | Bin .../gui/{ => booklet}/guiBookletHalloween.png | Bin .../{ => booklet}/guiBookletValentinesDay.png | Bin .../gui/booklet/pageCoffeeMachine.png | Bin 0 -> 9889 bytes .../textures/gui/booklet/pageFurBalls.png | Bin 0 -> 17105 bytes .../textures/gui/booklet/pageLaserRelay.png | Bin 0 -> 21200 bytes .../textures/gui/booklet/pageLavaFactory.png | Bin 0 -> 23379 bytes .../gui/booklet/pageTreasureChest.png | Bin 0 -> 28222 bytes 15 files changed, 63 insertions(+), 14 deletions(-) create mode 100644 src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java rename src/main/resources/assets/actuallyadditions/textures/gui/{ => booklet}/guiBooklet.png (100%) rename src/main/resources/assets/actuallyadditions/textures/gui/{ => booklet}/guiBookletChristmas.png (100%) rename src/main/resources/assets/actuallyadditions/textures/gui/{ => booklet}/guiBookletHalloween.png (100%) rename src/main/resources/assets/actuallyadditions/textures/gui/{ => booklet}/guiBookletValentinesDay.png (100%) create mode 100644 src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageCoffeeMachine.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageFurBalls.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageLaserRelay.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageLavaFactory.png create mode 100644 src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageTreasureChest.png diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index 63ad7bb75..b12c2b629 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -37,10 +37,10 @@ import java.util.List; @SideOnly(Side.CLIENT) public class GuiBooklet extends GuiScreen{ - public static final ResourceLocation resLoc = AssetUtil.getGuiLocation("guiBooklet"); - public static final ResourceLocation resLocHalloween = AssetUtil.getGuiLocation("guiBookletHalloween"); - public static final ResourceLocation resLocChristmas = AssetUtil.getGuiLocation("guiBookletChristmas"); - public static final ResourceLocation resLocValentine = AssetUtil.getGuiLocation("guiBookletValentinesDay"); + public static final ResourceLocation resLoc = AssetUtil.getBookletGuiLocation("guiBooklet"); + public static final ResourceLocation resLocHalloween = AssetUtil.getBookletGuiLocation("guiBookletHalloween"); + public static final ResourceLocation resLocChristmas = AssetUtil.getBookletGuiLocation("guiBookletChristmas"); + public static final ResourceLocation resLocValentine = AssetUtil.getBookletGuiLocation("guiBookletValentinesDay"); public static final int CHAPTER_BUTTONS_AMOUNT = 13; public static final int TOOLTIP_SPLIT_LENGTH = 200; public int xSize; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index 228ed371c..4d8b2da75 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -59,8 +59,8 @@ public class InitBooklet{ } new BookletChapter("lamps", entryMisc, new ItemStack(InitBlocks.blockColoredLampOn, 1, TheColoredLampColors.GREEN.ordinal()), lampPages.toArray(new BookletPage[lampPages.size()])); - new BookletChapter("treasureChest", entryMisc, new ItemStack(InitBlocks.blockTreasureChest), new PageTextOnly(1).setStack(new ItemStack(InitBlocks.blockTreasureChest))).setSpecial(); - new BookletChapter("hairBalls", entryMisc, new ItemStack(InitItems.itemHairyBall), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemHairyBall))).setSpecial(); + new BookletChapter("treasureChest", entryMisc, new ItemStack(InitBlocks.blockTreasureChest), new PagePicture(1, "pageTreasureChest", 150).setStack(new ItemStack(InitBlocks.blockTreasureChest)), new PageTextOnly(2)).setSpecial(); + new BookletChapter("hairBalls", entryMisc, new ItemStack(InitItems.itemHairyBall), new PagePicture(1, "pageFurBalls", 110).setStack(new ItemStack(InitItems.itemHairyBall)), new PageTextOnly(2)).setSpecial(); //No RF Using Blocks new BookletChapter("breaker", entryFunctionalNonRF, new ItemStack(InitBlocks.blockBreaker), new PageCrafting(1, BlockCrafting.recipeBreaker), new PageCrafting(2, BlockCrafting.recipePlacer), new PageCrafting(3, BlockCrafting.recipeLiquidPlacer), new PageCrafting(4, BlockCrafting.recipeLiquidCollector)); @@ -77,12 +77,12 @@ public class InitBooklet{ new BookletChapter("rangedCollector", entryFunctionalNonRF, new ItemStack(InitBlocks.blockRangedCollector), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.RANGED_COLLECTOR_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipeRangedCollector).setNoText()); //RF Using Blocks - new BookletChapter("laserRelays", entryFunctionalRF, new ItemStack(InitBlocks.blockLaserRelay), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.LASER_RELAY_MAX_DISTANCE.getValue()).addTextReplacement("", ConfigIntValues.LASER_RELAY_LOSS.getValue()), new PageCrafting(2, BlockCrafting.recipeLaserRelay).setNoText(), new PageCrafting(3, ItemCrafting.recipeLaserWrench).setNoText()).setImportant(); - new BookletChapterCoffee("coffeeMachine", entryFunctionalRF, new ItemStack(InitBlocks.blockCoffeeMachine), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemCoffeeBean)).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_ENERGY_USED.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_CACHE_USED_PER_ITEM.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_WATER_USED.getValue()), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemCoffee)), new PageCrafting(3, BlockCrafting.recipeCoffeeMachine).setNoText(), new PageCrafting(4, ItemCrafting.recipeCup).setNoText()).setImportant(); + new BookletChapter("laserRelays", entryFunctionalRF, new ItemStack(InitBlocks.blockLaserRelay), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.LASER_RELAY_MAX_DISTANCE.getValue()).addTextReplacement("", ConfigIntValues.LASER_RELAY_LOSS.getValue()), new PagePicture(2, "pageLaserRelay", 0).setNoText(), new PageCrafting(3, BlockCrafting.recipeLaserRelay).setNoText(), new PageCrafting(4, ItemCrafting.recipeLaserWrench).setNoText()).setImportant(); + new BookletChapterCoffee("coffeeMachine", entryFunctionalRF, new ItemStack(InitBlocks.blockCoffeeMachine), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemCoffeeBean)).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_ENERGY_USED.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_CACHE_USED_PER_ITEM.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_WATER_USED.getValue()), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemCoffee)), new PagePicture(3, "pageCoffeeMachine", 115), new PageCrafting(4, BlockCrafting.recipeCoffeeMachine).setNoText(), new PageCrafting(5, ItemCrafting.recipeCup).setNoText()).setImportant(); new BookletChapter("crusher", entryFunctionalRF, new ItemStack(InitBlocks.blockGrinderDouble), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.GRINDER_ENERGY_USED.getValue()).addTextReplacement("", ConfigIntValues.GRINDER_DOUBLE_ENERGY_USED.getValue()), new PageCrafting(2, BlockCrafting.recipeCrusher).setNoText(), new PageCrafting(3, BlockCrafting.recipeDoubleCrusher).setNoText(), new PageCrusherRecipe(4, CrusherCrafting.recipeSugar).setNoText(), new PageCrusherRecipe(5, CrusherCrafting.recipeIronHorseArmor).setNoText(), new PageCrusherRecipe(6, CrusherCrafting.recipeGoldHorseArmor).setNoText(), new PageCrusherRecipe(7, CrusherCrafting.recipeDiamondHorseArmor).setNoText()); new BookletChapter("furnaceDouble", entryFunctionalRF, new ItemStack(InitBlocks.blockFurnaceDouble), new PageCrafting(1, BlockCrafting.recipeFurnace).addTextReplacement("", ConfigIntValues.FURNACE_ENERGY_USED.getValue())); new BookletChapter("miner", entryFunctionalRF, new ItemStack(InitBlocks.blockOreMagnet), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.ORE_MAGNET_ENERGY_USE.getValue()).addTextReplacement("", ConfigIntValues.ORE_MAGNET_OIL_USE.getValue()).addTextReplacement("", ConfigIntValues.ORE_MAGNET_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipeMiner).setNoText(), new PageCrafting(3, BlockCrafting.recipeCasing).setNoText()); - new BookletChapter("lavaFactory", entryFunctionalRF, new ItemStack(InitBlocks.blockLavaFactoryController), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.LAVA_FACTORY_ENERGY_USED.getValue()), new PageCrafting(2, BlockCrafting.recipeLavaFactory).setNoText()); + new BookletChapter("lavaFactory", entryFunctionalRF, new ItemStack(InitBlocks.blockLavaFactoryController), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.LAVA_FACTORY_ENERGY_USED.getValue()), new PagePicture(2, "pageLavaFactory", 0).setNoText(), new PageCrafting(3, BlockCrafting.recipeLavaFactory).setNoText()); new BookletChapter("energizer", entryFunctionalRF, new ItemStack(InitBlocks.blockEnergizer), new PageCrafting(1, BlockCrafting.recipeEnergizer), new PageCrafting(2, BlockCrafting.recipeEnervator)); new BookletChapter("repairer", entryFunctionalRF, new ItemStack(InitBlocks.blockItemRepairer), new PageCrafting(1, BlockCrafting.recipeRepairer).addTextReplacement("", ConfigIntValues.REPAIRER_ENERGY_USED.getValue())); new BookletChapter("longRangeBreaker", entryFunctionalRF, new ItemStack(InitBlocks.blockDirectionalBreaker), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.DIRECTIONAL_BREAKER_RF_PER_BLOCK.getValue()).addTextReplacement("", ConfigIntValues.DIRECTIONAL_BREAKER_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipeDirectionalBreaker)); diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java new file mode 100644 index 000000000..6052c40c8 --- /dev/null +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java @@ -0,0 +1,38 @@ +/* + * This file ("PagePicture.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015 Ellpeck + */ + +package ellpeck.actuallyadditions.booklet.page; + +import ellpeck.actuallyadditions.booklet.GuiBooklet; +import ellpeck.actuallyadditions.util.AssetUtil; +import net.minecraft.util.ResourceLocation; + +public class PagePicture extends PageTextOnly{ + + private ResourceLocation resLoc; + private int textStartY; + + public PagePicture(int id, String resLocName, int textStartY){ + super(id); + this.textStartY = textStartY; + this.resLoc = AssetUtil.getBookletGuiLocation(resLocName); + } + + @Override + public void renderPre(GuiBooklet gui, int mouseX, int mouseY, int ticksElapsed, boolean mousePressed){ + gui.mc.getTextureManager().bindTexture(this.resLoc); + gui.drawTexturedModalRect(gui.guiLeft, gui.guiTop, 0, 0, gui.xSize, gui.ySize); + + String text = gui.currentPage.getText(); + if(text != null && !text.isEmpty()){ + gui.mc.fontRenderer.drawSplitString(text, gui.guiLeft+14, gui.guiTop+textStartY, 115, 0); + } + } +} diff --git a/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java index 1330c5cff..5151b9273 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java @@ -14,8 +14,10 @@ import codechicken.lib.gui.GuiDraw; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.RecipeInfo; import codechicken.nei.recipe.TemplateRecipeHandler; +import ellpeck.actuallyadditions.booklet.BookletChapter; import ellpeck.actuallyadditions.booklet.InitBooklet; import ellpeck.actuallyadditions.booklet.page.BookletPage; +import ellpeck.actuallyadditions.booklet.page.PagePicture; import ellpeck.actuallyadditions.util.ItemUtil; import ellpeck.actuallyadditions.util.ModUtil; import ellpeck.actuallyadditions.util.StringUtil; @@ -106,11 +108,13 @@ public class BookletInfoRecipeHandler extends TemplateRecipeHandler implements I if(ItemUtil.contains(page.getItemStacksForPage(), stack.theStack, true)){ int maxLines = 6; - String aText = page.getChapter().pages[0].getText(); + BookletChapter chapter = page.getChapter(); + String aText = (chapter.pages[0] instanceof PagePicture && chapter.pages.length > 1 ? chapter.pages[1] : chapter.pages[0]).getText(); List text = Minecraft.getMinecraft().fontRenderer.listFormattedStringToWidth(aText != null ? aText : EnumChatFormatting.DARK_RED+StringUtil.localize("container.nei."+ModUtil.MOD_ID_LOWER+".booklet.noText"), 165); for(int i = 0; i < Math.min(maxLines, text.size()); i++){ GuiDraw.drawString(text.get(i)+(i == maxLines-1 && text.size() > maxLines ? EnumChatFormatting.RESET+""+EnumChatFormatting.BLACK+"..." : ""), 0, 18+25+i*(Minecraft.getMinecraft().fontRenderer.FONT_HEIGHT+1), 0, false); } + break; } } } diff --git a/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java b/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java index b8446daf9..f48de8552 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java @@ -40,6 +40,10 @@ public class AssetUtil{ return new ResourceLocation(ModUtil.MOD_ID_LOWER, "textures/gui/"+file+".png"); } + public static ResourceLocation getBookletGuiLocation(String file){ + return new ResourceLocation(ModUtil.MOD_ID_LOWER, "textures/gui/booklet/"+file+".png"); + } + public static void displayNameString(FontRenderer font, int xSize, int yPositionOfMachineText, String machineName){ String localMachineName = StringUtil.localize(machineName+".name"); font.drawString(localMachineName, xSize/2-font.getStringWidth(localMachineName)/2, yPositionOfMachineText, StringUtil.DECIMAL_COLOR_WHITE); diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 599fedd84..1ab43b1eb 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -448,7 +448,8 @@ booklet.actuallyadditions.chapter.lamps.name=Lamps booklet.actuallyadditions.chapter.lamps.text.1=Lamps are a block providing lots of light, similar to the mystic Glowstone or Torches, but they can be dyed with all of the 16 different colors either by crafting them or by placing them on the ground and right-clicking them with a piece of dye. When right-clicking them with an empty hand, they will turn on and off. If you want them, however, to be toggled using Redstone Power, just place a Lamp Controller next to one. booklet.actuallyadditions.chapter.treasureChest.name=Treasure Chests -booklet.actuallyadditions.chapter.treasureChest.text.1=Treasure Chests are a semi-uncommon occurence in Ocean Biomes. They appear on the bottom of the sea, probably left there by bypassing Ships who threw off or lost some load. These Chests however, hold some valuable items, if you're lucky. Breaking them won't yield you anything, though, you just have to right-click them to receive some amazing goodies. +booklet.actuallyadditions.chapter.treasureChest.text.1=A Treasure Chest found underwater. +booklet.actuallyadditions.chapter.treasureChest.text.2=Treasure Chests are a semi-uncommon occurence in Ocean Biomes. They appear on the bottom of the sea, probably left there by bypassing Ships who threw off or lost some load. These Chests however, hold some valuable items, if you're lucky. Breaking them won't yield you anything, though, you just have to right-click them to receive some amazing goodies. booklet.actuallyadditions.chapter.breaker.name=Breakers and Placers booklet.actuallyadditions.chapter.breaker.text.1=The Breaker... well.. it breaks blocks in front of it. That's about it. It can be oriented in every direction like a Piston. It can be turned off with Redstone. @@ -493,8 +494,9 @@ booklet.actuallyadditions.chapter.crate.text.2=The Chest To Storage Crate booklet.actuallyadditions.chapter.coffeeMachine.name=Coffee Machine booklet.actuallyadditions.chapter.coffeeMachine.text.1=The Coffee Machine is a block used to make Coffee, a potion-like item that gives the user several buffs. To use the coffee machine, you need a Empty Cup, Coffee Beans, which can be found in the wild, harvested and planted on farmland again, RF/t and mB of Water per cup brewed. On the coffee machine recipe pages at the back, to see what the item does, just hover over the Cup of Coffee. booklet.actuallyadditions.chapter.coffeeMachine.text.2=To actually give your coffee some buffs, put some of the items shown on the later pages into the slots on the right. The more slots are filled up with one item, the higher the Amplifier of the effect will be. The Maximum Amplifier is the max amount of items to be put into one coffee. Order matters: When using, for example, Milk (to see what it does exactly, go to a later page), you are going to have to plan the items out inside the numbered slots in such a way that it brews the coffee you want. -booklet.actuallyadditions.chapter.coffeeMachine.text.5=Milk is an important item when brewing coffee: It adds 2 minutes to the effect while removing 1 amplifier. When the amplifier of an effect is 1, however, it will remove the effect. -booklet.actuallyadditions.chapter.coffeeMachine.text.6=The fact that you're reading this means that you either have HarvestCraft installed, or that you're looking at the lang file. This does the same thing as Milk, but for veggie guys. +booklet.actuallyadditions.chapter.coffeeMachine.text.3=This is an example of a recipe making a coffee containing Fire Resistance 1 for 0:20 and Speed 1 for 2:30. +booklet.actuallyadditions.chapter.coffeeMachine.text.6=Milk is an important item when brewing coffee: It adds 2 minutes to all effects of items in slots with lower numbers while removing 1 amplifier. When the amplifier of an effect is 1, however, it will remove the effect. +booklet.actuallyadditions.chapter.coffeeMachine.text.7=The fact that you're reading this means that you either have HarvestCraft installed, or that you're looking at the lang file. This does the same thing as Milk, but for veggie guys. booklet.actuallyadditions.chapter.crusher.name=Crusher and Double Crusher booklet.actuallyadditions.chapter.crusher.text.1=The Crusher turns every ore, ingot and gem into its corresponding dust using RF/t. When you put in Ores however, they will yield 2 pieces of dust. The Double Crusher basically does the same, however it can crush two ores at a time and uses RF/t. On the following pages, you can see some additional useful recipes for inside the crusher. He's my crush @@ -578,7 +580,8 @@ booklet.actuallyadditions.chapter.rangedCollector.name=Ranged Collector booklet.actuallyadditions.chapter.rangedCollector.text.1=The Ranged Collector works much like a hopper, in that it collects items around it, having the power, however, to pick up items that are in an area of blocks around it. It has a filter that can be set to white- or blacklist. This comes with a disadvantage, however: It doesn't auto-output its items. booklet.actuallyadditions.chapter.hairBalls.name=Ball of Fur-s -booklet.actuallyadditions.chapter.hairBalls.text.1=Balls of Fur are an item rarely dropped by cats which have been tamed by the player. Cats are very mysterious creatures as they appear to get everything stuck in their fur. Balls of Fur may seem disgusting at first, but when removing all of the hair by right-clicking, they will reveal some valuable items. Or just some String. FUURRRRRR!! +booklet.actuallyadditions.chapter.hairBalls.text.1=Balls of Fur dropped by live cats. More information on the next page. +booklet.actuallyadditions.chapter.hairBalls.text.2=Balls of Fur are an item rarely dropped by cats which have been tamed by the player. Cats are very mysterious creatures as they appear to get everything stuck in their fur. Balls of Fur may seem disgusting at first, but when removing all of the hair by right-clicking, they will reveal some valuable items. Or just some String. FUURRRRRR!! booklet.actuallyadditions.chapter.laserRelays.name=Laser Relays booklet.actuallyadditions.chapter.laserRelays.text.1=The Laser Relay is a block that can wirelessly transfer RF just by being connected with a Laser Wrench, generating a network. When placing a Power Generator or Receiver next to the relay, it can receive Power from any other relay in the network. Two relays can be at most blocks apart. During an energy transfer, they have an Energy Loss of %. \ No newline at end of file diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiBooklet.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBooklet.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/gui/guiBooklet.png rename to src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBooklet.png diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiBookletChristmas.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletChristmas.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/gui/guiBookletChristmas.png rename to src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletChristmas.png diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiBookletHalloween.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletHalloween.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/gui/guiBookletHalloween.png rename to src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletHalloween.png diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/guiBookletValentinesDay.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletValentinesDay.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/gui/guiBookletValentinesDay.png rename to src/main/resources/assets/actuallyadditions/textures/gui/booklet/guiBookletValentinesDay.png diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageCoffeeMachine.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageCoffeeMachine.png new file mode 100644 index 0000000000000000000000000000000000000000..e807ff62f485479bf0397f98e7cc3bb566eca9c2 GIT binary patch literal 9889 zcmeHtc|6o@`}Q@4p^U9$XV9YV>-FNLgwEE!A7U6dHNN{e-F*|(u# zl9)s&GmH^amSL>J7=F{;^E~gP_w)Y${_*=`KC^u0doAa6p2u+>=XKsbbJ|R3tISpa zfY1r^V`l+?a6dwT0F3+Q5cJZW`^M{GVrc>ZE<(fhci; zn00EntD#r^?IGL8vT|joRpZ^u44dWL>Mt?%2~YJ3g8a`uZa%-Qe>xO56vAm}iunp> zH1rQ%u)48a*Ed0#jT#;-WY2JBMu$iiCSF05ehEpzBO@gvV- z_er!r%;7og@utHQF z-)b+3slf<>fk)Rw%?R5AO(VrT9-)q8DVu2DdWL`S)E;)v{d`+is+)E?DeGZiil>&M zW3ntQNnbfPc|Q%K-@&`BMSROPC8!N-7k`ON(pAM+i7TpIwz)Wi(LLR+sCrR7f=J*o zLopkIWZ?1otKhbC$}al=|KuM^C8Fl{9!Ym-Gv0?8y1BI#q}rHbAj~6VQDcG_^O%E} z6G56e^yNK&_o}ApJ+&~@t%ze5+XJ85F5Snj5pJ*QFZP}@`m%wQ)pSM=MlDl1{_b~- zc(mGA5VNtKo0tfDB547brccCXLM|ec`;zwE^J%^=Dv}aVn*4)y`C^=&ned@+chqQY zvi=7aFExkdp7H?~wfy{Rum89w3s4S6xrQLrH9Qc>Uvx>~y?rP4nv#OlNG_9E{qC`j zYD+=f*sblSH3z*Qf~2bvG9X2^JXOIcJZoA}ecc&U%cFiiZV$U7P+vRB(@YaXLpv8ucMJg7M`g3qq6O9?H%kZS=99 zMq@chX=G66-6C%-c>NsVB&^J{dt2!Hee^6}-c!4wc-BcGz9kq3N9So4yH@U%@WVCO z&YI5RMU1zX$FcO2y^}R)sbMpZavC3P&%g205Te`iKTF}qGM%OsBBrh_k7v)=s8NGp z=s?@(#lor%1*jnD`8@~__rM~fWOiJ)a40jKZHKf;3O1TE>7N8d`$e6kQLbG7QoeQT zoe=(H7YVa8Jy@sf`}I$8Bo6MpI5A0i|DdYQ%9zv3>5plc5e(}qGIi8gYCU@ZEMyz8 z4TlrmoDDMqIg8JKuKkreXpK`}KU{ZXvhSspSRvJ|2z%Uf1fKHLP@@h2eT7lv%D3%J=^245V|vxzC3Y9IbLnT>!I>u)O`znS zx1gv}%Ap;@=k$yf?DqSb>gT(HB^?4{=`Dg9*9Z9N*qFv7U+3<8(?+Wzh*zdV(Cy*2 zYK(gAyK_^5G`BpF=pmcNxd%S0Q70{70gM_9MTg|G(7M4SBI=qpI5R`MLs837%QQ@B zjie*%dELf3F|w%|eGSmDO$QJn>vNe+tPr1hDU#uQzCF&>Qul4OI)W7Z>I%4MLd>hi zEKivh#bt~%#2or?iSwGx9b>A>I#1Fm66e$-igLjFc*MMc$f+-UcDcFrQkL9W+PA7+J%~_jSAz8<{ zNmjIippbLdlg^&#RHBsX&#iED!xleRk%LK`7E0v25o4mzW_qBu;#=I-*69A#V;%jUuYhMZ zrH*M^4ch*2KYI!xx?u<`VT#HBp2Rjw)m(gMWz1?1wl;L=CNW+)A<=iq)L7iOgzWPo z{a`9j6|ZVQB_#E)EzVfuNrZh;~@Zyc}ZZh-d16^o%q# zTPlWRlu?r)sIga?#0^W(YE_1ij4p1qgyOyecmB1TrkcX78E%RtN{!lRf~INQF@Y^E zGQa~m%wdF54)!~Y9?wvib{TO?i&~=h=9b3=l{r~wcz}UYBCsW7I@Z3IoGvH%&3StU zGBbb8X%pk=k#pm(nR1^me@7aUo_m5orlbqAU%MiMXorAGV1{_y#Qr;KHHFZ4F#h4u zeXC(R77pSp>l@}6&~=FZ%_d0v@C*~v6XQ9M)UE1RKj2-TfDdVafmsD0C@ns?UmDyd z&P(mLDe<|YXqXueM~h=>k`E^4HGKMvEi>jq*M6uu{M;_{TX#fjAbE;6Ge|s~uF%F& zA&{^&1%^J@CdUoPXgNW|Aet}jh6A;FH&ykifS+K&>6}Ydkn>L^pk-)Cku6SnnAj40 zTS!s8_flB_>tj))X;HpPpfTYf!3K6ms=)k?fRa)W6ctNo71W11~!JR?ub- zRy|F!bj{S6mz;PAq+WXu&y%rt1r;9vt)(!jF^WA7bFQ#C3R6`5iOxrke1oC)Youh@ zM2PPeLYvCTg8nD8QH5MinFvi9^x^iQM%g@`(1A8$>1Z8J1<>)k7y;?4_b;c_jug$)t$okih2!ZK=HjZ&h zt-b`xV`RR82NjR9CyQLFum?|$p0le9DK-u*6iSuWY3ptGt)e`{Vy=Q`wyB@@hVCd$ zqS^jthvd?My#$s*)ZDlB+6;XS2gnigb5qr`dbHrzL}HqOycVks}ou8!M3+Q zQ-oc|{DA6tam5s@%@v75DcPp-F<1D@EHx7c_lBgVb>8yTzqoc+vGSUnr50LR$33hI z$@cL-fS*Wu{sf|0J$Ed$Ie+__jBQletb>;pS|gf?@oVBN1s_d>UpxPX@W;B8w}qHQ z4E%Q+1~63t-|e^;TbyN0Q`x~&Ps?sDj_;5+Xmd%^O>IV|$jDeg!`H5%#N-ghFFxs@ z^C7A7hx_I^Gcm*S@rX5iu~X9!XUfBP{x}b9-8KcL>DCU(mCco&QHb(;%^u%RWKRcM zk%!gv{ZF27QZ>xH#En`+e2c0?>4gQYoySvWsX1txEt)^MmB!EI(^9yi*1w$x?|R!r zsVmoLFeh@ZUAQR^Dzr=|r$0Ir?B0$nX`4zKMb`w=SNkI|QEJ>B#|s<0<9s(W4k~S0 z4__jA)uZ^oOG*a#0FMtc6AEFj_afNE35*|>I^>9rC>(p-UZu_{inY6H{O%S;W5Q1I zj$rzqsq~ujI%rp>Brc^vK;e&1KpK|)l$|zm=k7zO6LONq1#1_(iDh|#d{rq3LV^?TsI%xrCiFLdL^U7OqqV4*La93x zu$lxxK}41K7~Hw<(@}~q$;#&n@Q*CVMzC`*fazkFztK7g;~SZ?@w=bL)9O^ zotxLX8(G6EGrJk1A|mr^boM-Dzl~nC<+4zSv7O$KQOp(ps;M$1zp;KV9S~Q_tlWyV zZMEP|wp|8&m3Pwtzmb9B=P*udElu^jWmMV3Kcw-W*@*9r*_4^5-<_f((fmCdB8-XA zq3VEV>=Em?5FUb9n>)YUmnlo`;9m;a z2*yGf1tt~4Jbyk7rgt5@%sJuk;h`7`!?xW-FWp{ns$SDd+J?4Bq;&^if9!Dz-!NlbUYn zt^1c&MK>MyrFsbUeu8DTZcXTLR6l2_s;N_mS{lPCjG3X9y%nBsdg#E&jO{WGyTxvM z1M%y5=g5dnI7%TA7XvjM4)it{G-R_Kk6MMYsV077Pjm{S5$Fq360Fz$XZ=$AcLbmN znaFcR$Gd2yMb>S<&nI-q4{RKNJX9}^6#V$tQT}qO+eZ~$5T~(R^n&FgNAObFd@fs| zc>5%e+?xe4X;~VwkowQbA(4gFYE8nCpTBt2#pG1rFUPd;RCx`J+uY_R8Ph}?9k6y& z9UWJhf)E#M5?D8sLar7b{|Tr`n=rIc6QDJw_wvXm2y!vuO&p;SnnSAf6eIx?Sr2=wqlev!+(15kJX3#2Akb4*zo94L9jn=Q{ z$2+s>x;_JE&K3>wOnUS~;e=1#eB3;&LI&Vca)0_FRxU5EI4AE)hjn+TONcTH% zhiVBKb-FqBpkBXnhkZ~wICahsA|R1_ssV=Tsb0#45Lz9&1Zc=HwAeeq`)irjeL%Z&klmImB1p18{5w(1x3Wr(QFURB!UQ0ET-af8M^ z5m>REL3!O^Kyo+|!&E(QL1%ij*zPr*eXQPyf9tiASwoeNIpx3Awz7h|ZN&Cv$i)#q z%S{>mOD{0?uI*bC1_q+nMiKNu>RS?AmRqIS zZwUQf25bxOzDXbB+vqk!+;oLf#pRs{u}mCmSRt9FGnsDTKeH1e1&yBS{GLeSIgX%dDC-EXE2{w!Q$Y-HLHhs*6&n;u!gA zPr$p8!5!4rw0`#{MEu8jruDr3)I*24FrgB>$bRB|PB=VIfU#o2{9 z?9Z|@^>_IPhjgxhEv~-=bP)uQ>yFZU5ze>S=u3W(N(n3xo~NHn-zE#zE1NE`xHj32 zG$()JPhbg%ZKCEB7#ND#;6%O_DHBi2+gAlFpF2VoxzL{lInPD{DbS4Ag4=3bKu%TE zMXPD?)E~R`n?0OA1vevwVmtb(`CdL4H-zpzvNL%jRWdnEG5Wakju^4R0nF?J*G(XO z5{};Dr&iBL{frf?V9zwg)RB448xSvL`Z5y~A3{LnE3iv;ASy|D!#xGN!->(xmH>x z`7}ogTc;EwfZ7 z5kr?pc1%>4b#w~k5lt12%2UGt%xy;$+yfFWu=iI2*Lwwo!SFm~U#nC)zW{;MJll6n z9UdQ|?=w$c)pg|uDaM<1DR(7h+>*fbiBp;&u26TYu6htzhQOBC8=a~l5qNqc?7Tt7MO-kL9(cO- z0o#^X#Jfok?1rHW_eWO^=X(#9_#Sn(0oQONS_~$>K7YhMDV5`tN%pl6E>^<%t)c&7_ZdwM{q~I;w3#2rdf- zko>zNmWTX~)vZMPc6($X3mPkaEF}26rl@D1?Ki2qTzj*O;$IqFGT)UWySR^^*v6&S z%U`cErz+k$mb^`u|Kn5Oi}V|A@-GxNo3savkF|>wtPgL{AF&pi{I^4;LKe=4Qm@*q z_^!znxqtz6iPwB2kzQ9YW#4;T?Na>(IGRXY!n?hwxhvQeN?ex&A*ES-~)c@=DN`!_@xG6~!LR_4YInXkL}j(?DiS5^L1=d@@vJC9gmH0OJEDr5Q_lGD4$(CM97{(;n- z=?E_T49l+f2lcA1}T8H^=oQmq?0&mG)r+w(8>v>;{wwQA3 zoF79D;30f3k~N+_2tELqFx_WJL`G-oe#`!`@Yn$dNnf0W&SCg!89U8g$dPI2UE8XS{@3 z5Wj{~&hoycv}Jy78SpT-5_yVS)*KDQj?$P+rfY)-$)wTuQ?~!Z?}kXC3k=U`_iq?G z$arduLFfR_qmmjSY{#-^&&=(5J(o=zN8M9&fWrM&tmF+os51gR%`ihuw;44K-HhL?~4=HDl%W=*sdaCJ~0tN7)~Q;$`3@MwAGvO)t{A+zF?# ztOiYHx3MYfM3WU94T(FR6Q!~-S8<$}%5DL*X$BwttyVryHd?_~B`d6}DB}iGeGS%k z^Go&6@L<@TM@OuopW$HE(4b<*T3cchrEy`=Tbxr?S#AN9itOF8E{&>?26#0vGx?=- zAal|SCYn*~4hHD8uVCmUWjV=n2LL+y0C4UEwjX%i-b;h8)tymfp6gR{UxMMAcFBFpFMU1{#QrlnT&Y2ot&wLb} zM(Va>U5RMeGVtUMBzZjL7lr-}oBjSYqc(!;(8V>27e%&4n`cW$3vCC1TJOM=@|vN^ zCY4nL`B}6Yj}avpLkGqVG##HC=8C)B9}e9}uM1hJNK1L5B(;+v<%8 zdjC|9IBoQFuHl!?9IgH-o7-OW0LqR28i)~pmha-3LI^b$v3_~2$}UP^)wy#co}1%- zOfw27$_^)=4`qKHJoR-zPa$}&U8U}R`l0rj-*cC>7D4ak!?Wx+*hftwq+76FzuNUZ zPEsGM$94bG4gdCiTf>0x#S+^eGU0mFjq>b=-^W(nB!W6DtFn9*``oRtl$RL?{aSbI zw~%Ka0A4n#4K3LwV$n+($h~L9Jr2>318q)@xdu00A0AEBaiCY`oN6oA=x06f^&#aP z?q4?DWLyIHBlf2SdhfZSKE)~t9jy-;osgZs#rv_Eq{T7t&)r>QSH8#iqD7=b7w~Hw zaUVWzgmf&5ukh}FxNv(A9QXjrgxvOpI(V^`^6YxtYbw0^9!^hoYW18pWFFIt_&P-v z-C~hvOCEDZ6yZdmp5F(ltIOYKFpr}Kx*Ba`*n`6%qrx&OP|?9QkXU)RwRBW@1eq)Z zCaZJ8EdmXb7X$fIg9Rm21FD9?y}#hd^m+adAjKE3cQx`Qvq7#(Mquyvr{uMjc}ne# z$)L0{{}1&y=N&e>IH%ws%7w>J9YcvDHtVi_0<@4yrtL~rjseRaNTYvMyK$C6ihj^u zxA%+9AwHlra0*&xboKq8YZ7?_umA_I1895ynhI-dSXyNej9csXw-^@A_K?`scmZ`d zWht4H5zw>8vO_SNKzxhzhj8PYd+<7u0|9#Lc}#79D~3CV=k{6{Fyg&n;N$W46~U@P zc`P{EZ8YiwfGtVe1__GBuNyM%@*}Pxp`dmC1;m!5G@#OFWxR5|w3RRoOogEO^B;6B z(=Y2Q3dDkX1t!$hm%@1Hh!#g!0CZ!gHRBVnS5_&oV0%Xb_{ z`G}jFqlFA|qn7NdqB*O7Q(Ljkbx)o&@t)_M;h#M?QtL=v0;)W#LDUk(;pWXzg_E3PvY;Yi<^Cc=fP*uT*H?BafQgy3F-CF+7QA zG=qYr_82;p_BBBGl)B@+$zb}2MG}POb}`>}ZSX5s z=Kq$`o`&iptrnu?S8MngG5DxS`{AJdC6`9RXSxTAFX7%-neb1^dUt3HuT3ApwKZ}> zSQ8lXPF2vyos83)N%W(dUJoI82*%U8(K@(}<~VB~v97$!pktbHb>_G)m$=N>3hU)J zem-J08eBFo1Us{36HiSXK<`W2rob0Q4kXsBl#jFZAl8PxHS*r~_gKy$`bV}yy`}`A zd($%57VCnlhvwx*5SFP?MGZ=?FhdRfi2Y{`ikB1A6B>>NR30Z0#2!{h~AvW-< zbQ)X{DZ&`d^q#%Rd7RyUU_uuAc6KD&spwiWtZd&uEdZez^QbqDKl2am#4B=G9QW?O zpx+tXKY33+fv2Qy+@LCy)WA)Do()J+CAh;Qp~(k3xKO|YWqrzQ{8n3`5hZ$U(P*93 zNdf_6TeFxa!I8pY?j!z^mkJ<0@Sj)y{?aJrEamoxOVUEpL~b`im|;($3?8jZJa{rp z!ocxivktoYJEly-*_tRreF1Rpo!s%!HnD2ZvQ-Hzgy4JNFWZ^nhM0EdAKf3|RHo?9 zRs=r;J=U|~ry#wu&>?jnr#M<-QQ8dBegB-jwLH96s<1(VM)Tgf*Q*0exSS&W^++0j zS*bBuho%NK=RLRU%O~}xW^FIwWQ2OhLa{5jXkYA;M)MY?e@ult+x>IRUWNH(nJXP# z((>AxYKE$A?y!4&HgF5sz?o!z^RN`vOR!`~S|Up+Jz0g8!cy)^UhevLcf*%`&?*Q; zdp1DeMBIM90!+0BA%3T!QJa~0{#A6Cl3y}{mK>&B^6NtX%2>Q-)IWQ9(}`yTb72Q1 zO-n+9GPlLymDV-^ECTZoLQAMtica3iZ68to&o)wjwS_=>j*@rMOvLWNY=k2HQZvnt zb%6iw+}IK0n&m3C%M_4!XPrgcd1i9~{=v~Va4DTOQEqETRBAB`(}&r&Rp}F6JVErD zbIOtA1DgNOu9pA(+iz_?|7(!{KMZmfKRvqvp}ppm^`cw-xV>ZGgz4#HB}bg&{s%b6 B{pS+@=^do^D&2s9 z5Nd!BF6aB+_dVyEx%d8mXYNcgJ7w?LPg&1ezqQu0cFf~P8f3&w!~g(*OiL4D2ms*R ze#8L)32zS;KE;l=2Ye@GJ!Jr(GLZyhOK|(0$XnCY7XTnH`|FKU@GS4ItMB+}>8agW zA*QF1C4}+g$>09O;HPHdXXNGR7ijDA9N=y1;^`;s`P`2~LReH-3KM6)0syGUX+e~q z1X=B82YXo>2W-9O&@>d*&(um@m!nu091&MD;F28uz(4J+J7j5XwC|rSuLmsT(Oqla|A#{YY!N-&y+Va8JN(dXPVE&4Ev$J_@xnHa;Xbo; zbbuL^fhSNR zrI=q!Am-jIVdi~2_pkGyg+Pz#KJS--r4_<8PrZn07d_0;q2;zVm08Esw>G+N;ogLiAag5R{KdDqUL1<{FTyx+*V_orOGX+8Ex%lwQZ=?Uisma_yego5G-`yGPA+Xme`o?CukqrmN*{itP8c`{_I$)fLP08Z@8Cn< zkJoyGYag_?jvl9YI(?f+2M5G)+V6NTQEIZf+%qtKX9g{3D>3Xg5LjQyXG!X#1eCBE?* zg&|HT=q@OPf{$YpOgNU=-QRdL*si7ffd5~+`ZpZFE<__SVyFbeQPOu{mN44Lj*T&($CoYdUeB({Wl2|;C z?2tqT_U#nI8h4eYxtGz|K;1`2a(FizckX~N=w-f#6Ei4%gG+Xi9Fz{qdm(q9IUrUu znkU~L7-AOqg@^-k*2t!H3UYzL+7u4x4A~yr9fm$m(C7uvKc!aGP^fk>{;VFv1udXN zrL6f4VoQAz80hASk)4%jd5ujAL6Qo?aKSgDF^hpQxy*iTWZ@!NdBMm)5RiQ%ai@f`tY;odzvf} zm@VLlfPbNiEWqDiVE^LFoLee9Tz2WFIou-B=3q@cs6~rQI1$9R&gG_*4soeNvF+Zc zj4IW&VgEtHQEp3BQD1M2P}Rnd3qSXk`(ZZslZ(%3-D~`~QU1vf8B_I6DbmE_PPqq! z>Jz3S$a~N6<_Tcs&H!55$3HdZl?B8|w=C4VllqnD)M_T*fro%0J(>ynHTRL9{Y}LbBXxe@*_O*iry0MgK`3b{OM&l(>XJtMt6!dg1ZG0tenAP_vW%U=Htt$U z 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 EL!ol-n) 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageLavaFactory.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageLavaFactory.png new file mode 100644 index 0000000000000000000000000000000000000000..a75bb45f653b6b4ed190f22d0587c0be0a337eb2 GIT binary patch literal 23379 zcmZs?byOVRwk=%UG;R$92n1*}xFiG%(hUT6mk?Zn1q*H+T!RKlup~erxVr|IkOX&v zyEJaim%0D$iQf&d(> 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageTreasureChest.png b/src/main/resources/assets/actuallyadditions/textures/gui/booklet/pageTreasureChest.png new file mode 100644 index 0000000000000000000000000000000000000000..85488b7916b88d2f1da0dfc966edd70351c3187a GIT binary patch literal 28222 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 Yk@N163PLB~i`@W|W0r Date: Fri, 30 Oct 2015 21:42:14 +0100 Subject: [PATCH 37/73] Added some Null Checks for stuffs --- .../booklet/page/BookletPage.java | 15 +++++++++++++++ .../booklet/page/PageCrafting.java | 3 +-- .../booklet/page/PageCrusherRecipe.java | 3 +-- .../booklet/page/PageFurnace.java | 3 +-- .../booklet/page/PageTextOnly.java | 5 +---- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java index e5cd65ea1..ae5d77cdc 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java @@ -41,6 +41,21 @@ public class BookletPage{ this.id = id; } + public void addToPagesWithItemStackData(){ + if(!InitBooklet.pagesWithItemStackData.contains(this)){ + ItemStack[] stacks = this.getItemStacksForPage(); + if(stacks != null && stacks.length > 0){ + //Ensure that there is at least one ItemStack + for(ItemStack stack : stacks){ + if(stack != null){ + InitBooklet.pagesWithItemStackData.add(this); + break; + } + } + } + } + } + public static void renderItem(GuiBooklet gui, ItemStack stack, int x, int y, float scale){ GL11.glPushMatrix(); GL11.glEnable(GL11.GL_BLEND); diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java index 5d0ba5660..61d350089 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java @@ -12,7 +12,6 @@ package ellpeck.actuallyadditions.booklet.page; import cpw.mods.fml.relauncher.ReflectionHelper; import ellpeck.actuallyadditions.booklet.GuiBooklet; -import ellpeck.actuallyadditions.booklet.InitBooklet; import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.util.ModUtil; import ellpeck.actuallyadditions.util.StringUtil; @@ -40,7 +39,7 @@ public class PageCrafting extends BookletPage{ public PageCrafting(int id, IRecipe... recipes){ super(id); this.recipes = recipes; - InitBooklet.pagesWithItemStackData.add(this); + this.addToPagesWithItemStackData(); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java index bc8e76b7a..a183a4001 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java @@ -11,7 +11,6 @@ package ellpeck.actuallyadditions.booklet.page; import ellpeck.actuallyadditions.booklet.GuiBooklet; -import ellpeck.actuallyadditions.booklet.InitBooklet; import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.recipe.CrusherRecipeRegistry; import ellpeck.actuallyadditions.util.ModUtil; @@ -34,7 +33,7 @@ public class PageCrusherRecipe extends BookletPage{ public PageCrusherRecipe(int id, CrusherRecipeRegistry.CrusherRecipe recipe){ super(id); this.recipe = recipe; - InitBooklet.pagesWithItemStackData.add(this); + this.addToPagesWithItemStackData(); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java index fed2615e7..d6cf9c55d 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java @@ -11,7 +11,6 @@ package ellpeck.actuallyadditions.booklet.page; import ellpeck.actuallyadditions.booklet.GuiBooklet; -import ellpeck.actuallyadditions.booklet.InitBooklet; import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.util.ModUtil; import ellpeck.actuallyadditions.util.StringUtil; @@ -35,7 +34,7 @@ public class PageFurnace extends BookletPage{ super(id); this.result = result; this.input = input; - InitBooklet.pagesWithItemStackData.add(this); + this.addToPagesWithItemStackData(); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java index 7c30d94fb..5055c7828 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java @@ -11,7 +11,6 @@ package ellpeck.actuallyadditions.booklet.page; import ellpeck.actuallyadditions.booklet.GuiBooklet; -import ellpeck.actuallyadditions.booklet.InitBooklet; import net.minecraft.item.ItemStack; public class PageTextOnly extends BookletPage{ @@ -23,10 +22,8 @@ public class PageTextOnly extends BookletPage{ } public PageTextOnly setStack(ItemStack stack){ - if(!InitBooklet.pagesWithItemStackData.contains(this)){ - InitBooklet.pagesWithItemStackData.add(this); - } this.stack = stack; + this.addToPagesWithItemStackData(); return this; } From e404bbf783b1cd99f677ee2c4e30748c38cc0eb5 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 30 Oct 2015 23:24:49 +0100 Subject: [PATCH 38/73] Removed Magnetic Miner --- .../blocks/BlockOreMagnet.java | 91 ------ .../actuallyadditions/blocks/InitBlocks.java | 4 - .../booklet/InitBooklet.java | 3 +- .../config/ConfigValues.java | 5 - .../config/values/ConfigCrafting.java | 1 - .../crafting/BlockCrafting.java | 12 - .../creative/CreativeTab.java | 2 - .../inventory/ContainerOreMagnet.java | 106 ------- .../inventory/GuiHandler.java | 5 - .../inventory/gui/GuiOreMagnet.java | 82 ------ .../tile/TileEntityBase.java | 1 - .../tile/TileEntityOreMagnet.java | 265 ------------------ .../assets/actuallyadditions/lang/en_US.lang | 7 +- .../{blocks => unused}/blockOreMagnet.png | Bin .../blockOreMagnetBottom.png | Bin .../{blocks => unused}/blockOreMagnetTop.png | Bin 16 files changed, 2 insertions(+), 582 deletions(-) delete mode 100644 src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java delete mode 100644 src/main/java/ellpeck/actuallyadditions/inventory/ContainerOreMagnet.java delete mode 100644 src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java delete mode 100644 src/main/java/ellpeck/actuallyadditions/tile/TileEntityOreMagnet.java rename src/main/resources/assets/actuallyadditions/textures/{blocks => unused}/blockOreMagnet.png (100%) rename src/main/resources/assets/actuallyadditions/textures/{blocks => unused}/blockOreMagnetBottom.png (100%) rename src/main/resources/assets/actuallyadditions/textures/{blocks => unused}/blockOreMagnetTop.png (100%) diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java deleted file mode 100644 index de2264fab..000000000 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOreMagnet.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * This file ("BlockOreMagnet.java") is part of the Actually Additions Mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015 Ellpeck - */ - -package ellpeck.actuallyadditions.blocks; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import ellpeck.actuallyadditions.ActuallyAdditions; -import ellpeck.actuallyadditions.inventory.GuiHandler; -import ellpeck.actuallyadditions.tile.TileEntityOreMagnet; -import ellpeck.actuallyadditions.util.IActAddItemOrBlock; -import ellpeck.actuallyadditions.util.ModUtil; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.EnumRarity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class BlockOreMagnet extends BlockContainerBase implements IActAddItemOrBlock{ - - @SideOnly(Side.CLIENT) - private IIcon topIcon; - @SideOnly(Side.CLIENT) - private IIcon bottomIcon; - - public BlockOreMagnet(){ - super(Material.rock); - this.setHarvestLevel("pickaxe", 0); - this.setHardness(1.5F); - this.setResistance(10.0F); - this.setStepSound(soundTypeStone); - } - - @Override - public TileEntity createNewTileEntity(World world, int par2){ - return new TileEntityOreMagnet(); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int meta){ - return (side == 1 ? this.topIcon : (side == 0 ? this.bottomIcon : this.blockIcon)); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9){ - if(!world.isRemote){ - TileEntityOreMagnet magnet = (TileEntityOreMagnet)world.getTileEntity(x, y, z); - if(magnet != null){ - player.openGui(ActuallyAdditions.instance, GuiHandler.GuiTypes.ORE_MAGNET.ordinal(), world, x, y, z); - } - return true; - } - return true; - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconReg){ - this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()); - this.topIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+"Top"); - this.bottomIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()+"Bottom"); - } - - @Override - public String getName(){ - return "blockOreMagnet"; - } - - @Override - public EnumRarity getRarity(ItemStack stack){ - return EnumRarity.epic; - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block block, int par6){ - this.dropInventory(world, x, y, z); - super.breakBlock(world, x, y, z, block, par6); - } -} diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java index 95cdd138e..dda2c9499 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java @@ -89,7 +89,6 @@ public class InitBlocks{ public static Block blockTreasureChest; public static Block blockXPSolidifier; - public static Block blockOreMagnet; public static Block blockSmileyCloud; @@ -117,9 +116,6 @@ public class InitBlocks{ blockSmileyCloud = new BlockSmileyCloud(); BlockUtil.register(blockSmileyCloud); - blockOreMagnet = new BlockOreMagnet(); - BlockUtil.register(blockOreMagnet); - blockXPSolidifier = new BlockXPSolidifier(); BlockUtil.register(blockXPSolidifier); diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index 4d8b2da75..734da6de7 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -81,8 +81,7 @@ public class InitBooklet{ new BookletChapterCoffee("coffeeMachine", entryFunctionalRF, new ItemStack(InitBlocks.blockCoffeeMachine), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemCoffeeBean)).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_ENERGY_USED.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_CACHE_USED_PER_ITEM.getValue()).addTextReplacement("", ConfigIntValues.COFFEE_MACHINE_WATER_USED.getValue()), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemCoffee)), new PagePicture(3, "pageCoffeeMachine", 115), new PageCrafting(4, BlockCrafting.recipeCoffeeMachine).setNoText(), new PageCrafting(5, ItemCrafting.recipeCup).setNoText()).setImportant(); new BookletChapter("crusher", entryFunctionalRF, new ItemStack(InitBlocks.blockGrinderDouble), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.GRINDER_ENERGY_USED.getValue()).addTextReplacement("", ConfigIntValues.GRINDER_DOUBLE_ENERGY_USED.getValue()), new PageCrafting(2, BlockCrafting.recipeCrusher).setNoText(), new PageCrafting(3, BlockCrafting.recipeDoubleCrusher).setNoText(), new PageCrusherRecipe(4, CrusherCrafting.recipeSugar).setNoText(), new PageCrusherRecipe(5, CrusherCrafting.recipeIronHorseArmor).setNoText(), new PageCrusherRecipe(6, CrusherCrafting.recipeGoldHorseArmor).setNoText(), new PageCrusherRecipe(7, CrusherCrafting.recipeDiamondHorseArmor).setNoText()); new BookletChapter("furnaceDouble", entryFunctionalRF, new ItemStack(InitBlocks.blockFurnaceDouble), new PageCrafting(1, BlockCrafting.recipeFurnace).addTextReplacement("", ConfigIntValues.FURNACE_ENERGY_USED.getValue())); - new BookletChapter("miner", entryFunctionalRF, new ItemStack(InitBlocks.blockOreMagnet), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.ORE_MAGNET_ENERGY_USE.getValue()).addTextReplacement("", ConfigIntValues.ORE_MAGNET_OIL_USE.getValue()).addTextReplacement("", ConfigIntValues.ORE_MAGNET_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipeMiner).setNoText(), new PageCrafting(3, BlockCrafting.recipeCasing).setNoText()); - new BookletChapter("lavaFactory", entryFunctionalRF, new ItemStack(InitBlocks.blockLavaFactoryController), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.LAVA_FACTORY_ENERGY_USED.getValue()), new PagePicture(2, "pageLavaFactory", 0).setNoText(), new PageCrafting(3, BlockCrafting.recipeLavaFactory).setNoText()); + new BookletChapter("lavaFactory", entryFunctionalRF, new ItemStack(InitBlocks.blockLavaFactoryController), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.LAVA_FACTORY_ENERGY_USED.getValue()), new PagePicture(2, "pageLavaFactory", 0).setNoText(), new PageCrafting(3, BlockCrafting.recipeLavaFactory).setNoText(), new PageCrafting(4, BlockCrafting.recipeCasing).setNoText()); new BookletChapter("energizer", entryFunctionalRF, new ItemStack(InitBlocks.blockEnergizer), new PageCrafting(1, BlockCrafting.recipeEnergizer), new PageCrafting(2, BlockCrafting.recipeEnervator)); new BookletChapter("repairer", entryFunctionalRF, new ItemStack(InitBlocks.blockItemRepairer), new PageCrafting(1, BlockCrafting.recipeRepairer).addTextReplacement("", ConfigIntValues.REPAIRER_ENERGY_USED.getValue())); new BookletChapter("longRangeBreaker", entryFunctionalRF, new ItemStack(InitBlocks.blockDirectionalBreaker), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.DIRECTIONAL_BREAKER_RF_PER_BLOCK.getValue()).addTextReplacement("", ConfigIntValues.DIRECTIONAL_BREAKER_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipeDirectionalBreaker)); diff --git a/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java b/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java index 358e8fbbd..ba5b1eb2f 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java @@ -26,9 +26,6 @@ public class ConfigValues{ public static String[] crusherRecipeExceptions; public static String[] mashedFoodCraftingExceptions; - public static String[] oreMagnetExceptions; - public static String[] oreMagnetExtraWhitelist; - public static String[] paxelExtraMiningWhitelist; public static String[] drillExtraminingWhitelist; @@ -49,8 +46,6 @@ public class ConfigValues{ crusherRecipeExceptions = config.get(ConfigCategories.CRUSHER_RECIPES.name, "Crusher Recipe Exceptions", new String[]{"ingotBrick", "ingotBrickNether"}, "The Ingots, Dusts and Ores blacklisted from being auto-registered to be crushed by the Crusher. This list uses OreDictionary Names of the Inputs only.").getStringList(); mashedFoodCraftingExceptions = config.get(ConfigCategories.ITEMS_CRAFTING.name, "Mashed Food Crafting Exceptions", new String[]{"ActuallyAdditions:itemCoffee"}, "The ItemFood, IGrowable and IPlantable Items that can not be used to craft Mashed Food. These are the actual registered Item Names, the ones you use, for example, when using the /give Command.").getStringList(); - oreMagnetExceptions = config.get(ConfigCategories.MACHINE_VALUES.name, "Ore Magnet Exceptions", new String[0], "By default, the Ore Magnet pulls up everything that is registered in the OreDictionary as a String that starts with 'ore'. If you want any Ore not to be pulled up by the Magnet, put its ORE DICTIONARY name here.").getStringList(); - oreMagnetExtraWhitelist = config.get(ConfigCategories.MACHINE_VALUES.name, "Ore Magnet Extra Whitelist", new String[]{"rftools:dimensionalShardBlock"}, "By default, the Ore Magnet pulls up everything that is registered in the OreDictionary as a String that starts with 'ore'. If you want anything else to be pulled up by the Magnet, put its REGISTRY NAME here. These are the actual registered Item Names, the ones you use, for example, when using the /give Command.").getStringList(); paxelExtraMiningWhitelist = config.get(ConfigCategories.TOOL_VALUES.name, "AIOT Extra Whitelist", new String[]{"TConstruct:GravelOre"}, "By default, the AIOT can mine certain blocks. If there is one that it can't mine, but should be able to, put its REGISTRY NAME here. These are the actual registered Item Names, the ones you use, for example, when using the /give Command.").getStringList(); drillExtraminingWhitelist = config.get(ConfigCategories.TOOL_VALUES.name, "Drill Extra Whitelist", new String[]{"TConstruct:GravelOre"}, "By default, the Drill can mine certain blocks. If there is one that it can't mine, but should be able to, put its REGISTRY NAME here. These are the actual registered Item Names, the ones you use, for example, when using the /give Command.").getStringList(); } diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java index 508fbc43f..00ff8c61c 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java @@ -147,7 +147,6 @@ public enum ConfigCrafting{ TELE_STAFF("Tele Staff", ConfigCategories.ITEMS_CRAFTING), CASING("Casing", ConfigCategories.BLOCKS_CRAFTING), - ORE_MAGNET("Ore Magnet", ConfigCategories.BLOCKS_CRAFTING), MAGNET_RING("Magnet Ring", ConfigCategories.ITEMS_CRAFTING), WATER_RING("Water Ring", ConfigCategories.ITEMS_CRAFTING), diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java index 2466d52ad..4187f5fb8 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java @@ -51,7 +51,6 @@ public class BlockCrafting{ public static IRecipe recipeDoubleCrusher; public static IRecipe recipeFurnace; public static IRecipe recipeSolidifier; - public static IRecipe recipeMiner; public static IRecipe recipeCasing; public static IRecipe recipeGlass; public static IRecipe recipeLavaFactory; @@ -248,17 +247,6 @@ public class BlockCrafting{ recipeCanolaPress = Util.GetRecipes.lastIRecipe(); } - //Ore Magnet - if(ConfigCrafting.ORE_MAGNET.isEnabled()){ - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockOreMagnet), - "SSS", "CBC", "ISI", - 'S', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.LAVA_FACTORY_CASE.ordinal()), - 'C', new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.IRON_CASING.ordinal()), - 'B', new ItemStack(InitItems.itemBatteryDouble), - 'I', new ItemStack(Blocks.iron_block))); - recipeMiner = Util.GetRecipes.lastIRecipe(); - } - //Fermenting Barrel if(ConfigCrafting.FERMENTING_BARREL.isEnabled()){ GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockFermentingBarrel), diff --git a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java index 82b9f8104..58a6bb19a 100644 --- a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java +++ b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java @@ -62,8 +62,6 @@ public class CreativeTab extends CreativeTabs{ add(InitBlocks.blockCoffeeMachine); add(InitBlocks.blockXPSolidifier); - add(InitBlocks.blockOreMagnet); - add(InitBlocks.blockGreenhouseGlass); add(InitBlocks.blockGrinder); add(InitBlocks.blockGrinderDouble); diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerOreMagnet.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerOreMagnet.java deleted file mode 100644 index 497d2e495..000000000 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerOreMagnet.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * This file ("ContainerOreMagnet.java") is part of the Actually Additions Mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015 Ellpeck - */ - -package ellpeck.actuallyadditions.inventory; - -import ellpeck.actuallyadditions.blocks.InitBlocks; -import ellpeck.actuallyadditions.inventory.slot.SlotOutput; -import ellpeck.actuallyadditions.tile.TileEntityBase; -import ellpeck.actuallyadditions.tile.TileEntityOreMagnet; -import invtweaks.api.container.InventoryContainer; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; - -@InventoryContainer -public class ContainerOreMagnet extends Container{ - - private TileEntityOreMagnet magnet; - - public ContainerOreMagnet(InventoryPlayer inventory, TileEntityBase tile){ - this.magnet = (TileEntityOreMagnet)tile; - - this.addSlotToContainer(new Slot(this.magnet, TileEntityOreMagnet.SLOT_OIL_INPUT, 98, 74)); - this.addSlotToContainer(new SlotOutput(this.magnet, TileEntityOreMagnet.SLOT_OIL_OUTPUT, 98, 43)); - - this.addSlotToContainer(new SlotOutput(this.magnet, TileEntityOreMagnet.SLOT_UPGRADE, 71, 43)); - - for(int i = 0; i < 3; i++){ - for(int j = 0; j < 9; j++){ - this.addSlotToContainer(new Slot(inventory, j+i*9+9, 8+j*18, 97+i*18)); - } - } - for(int i = 0; i < 9; i++){ - this.addSlotToContainer(new Slot(inventory, i, 8+i*18, 155)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer player, int slot){ - final int inventoryStart = 3; - final int inventoryEnd = inventoryStart+26; - final int hotbarStart = inventoryEnd+1; - final int hotbarEnd = hotbarStart+8; - - Slot theSlot = (Slot)this.inventorySlots.get(slot); - - if(theSlot != null && theSlot.getHasStack()){ - ItemStack newStack = theSlot.getStack(); - ItemStack currentStack = newStack.copy(); - - //Other Slots in Inventory excluded - if(slot >= inventoryStart){ - //Shift from Inventory - if(FluidContainerRegistry.containsFluid(newStack, new FluidStack(InitBlocks.fluidOil, 1))){ - if(!this.mergeItemStack(newStack, TileEntityOreMagnet.SLOT_OIL_INPUT, TileEntityOreMagnet.SLOT_OIL_INPUT+1, false)){ - return null; - } - } - // - - else if(slot >= inventoryStart && slot <= inventoryEnd){ - if(!this.mergeItemStack(newStack, hotbarStart, hotbarEnd+1, false)){ - return null; - } - } - else if(slot >= inventoryEnd+1 && slot < hotbarEnd+1 && !this.mergeItemStack(newStack, inventoryStart, inventoryEnd+1, false)){ - return null; - } - } - else if(!this.mergeItemStack(newStack, inventoryStart, hotbarEnd+1, false)){ - return null; - } - - if(newStack.stackSize == 0){ - theSlot.putStack(null); - } - else{ - theSlot.onSlotChanged(); - } - - if(newStack.stackSize == currentStack.stackSize){ - return null; - } - theSlot.onPickupFromSlot(player, newStack); - - return currentStack; - } - return null; - } - - @Override - public boolean canInteractWith(EntityPlayer player){ - return this.magnet.isUseableByPlayer(player); - } -} \ No newline at end of file diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java b/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java index 6c72b89d8..b05fecb81 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java @@ -78,8 +78,6 @@ public class GuiHandler implements IGuiHandler{ return new ContainerEnervator(entityPlayer, tile); case XP_SOLIDIFIER: return new ContainerXPSolidifier(entityPlayer.inventory, tile); - case ORE_MAGNET: - return new ContainerOreMagnet(entityPlayer.inventory, tile); case CLOUD: return new ContainerSmileyCloud(); case DIRECTIONAL_BREAKER: @@ -142,8 +140,6 @@ public class GuiHandler implements IGuiHandler{ return new GuiEnervator(entityPlayer, tile); case XP_SOLIDIFIER: return new GuiXPSolidifier(entityPlayer.inventory, tile, x, y, z, world); - case ORE_MAGNET: - return new GuiOreMagnet(entityPlayer.inventory, tile); case CLOUD: return new GuiSmileyCloud(tile, x, y, z, world); case BOOK: @@ -180,7 +176,6 @@ public class GuiHandler implements IGuiHandler{ ENERGIZER, ENERVATOR, XP_SOLIDIFIER, - ORE_MAGNET, CLOUD, BOOK(false), DIRECTIONAL_BREAKER, diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java deleted file mode 100644 index db97bc416..000000000 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOreMagnet.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * This file ("GuiOreMagnet.java") is part of the Actually Additions Mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015 Ellpeck - */ - -package ellpeck.actuallyadditions.inventory.gui; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import ellpeck.actuallyadditions.inventory.ContainerOreMagnet; -import ellpeck.actuallyadditions.tile.TileEntityBase; -import ellpeck.actuallyadditions.tile.TileEntityOreMagnet; -import ellpeck.actuallyadditions.util.AssetUtil; -import ellpeck.actuallyadditions.util.StringUtil; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; -import org.lwjgl.opengl.GL11; - -import java.util.Arrays; -import java.util.Collections; - -@SideOnly(Side.CLIENT) -public class GuiOreMagnet extends GuiContainer{ - - private static final ResourceLocation resLoc = AssetUtil.getGuiLocation("guiOreMagnet"); - private TileEntityOreMagnet magnet; - - public GuiOreMagnet(InventoryPlayer inventory, TileEntityBase tile){ - super(new ContainerOreMagnet(inventory, tile)); - this.magnet = (TileEntityOreMagnet)tile; - this.xSize = 176; - this.ySize = 93+86; - } - - @Override - public void drawScreen(int x, int y, float f){ - super.drawScreen(x, y, f); - String text1 = this.magnet.storage.getEnergyStored()+"/"+this.magnet.storage.getMaxEnergyStored()+" RF"; - if(x >= guiLeft+43 && y >= guiTop+6 && x <= guiLeft+58 && y <= guiTop+88){ - this.func_146283_a(Collections.singletonList(text1), x, y); - } - String text2 = this.magnet.tank.getFluidAmount()+"/"+this.magnet.tank.getCapacity()+" mB "+StringUtil.localize("fluid.oil"); - if(x >= guiLeft+117 && y >= guiTop+6 && x <= guiLeft+132 && y <= guiTop+88){ - this.func_146283_a(Collections.singletonList(text2), x, y); - } - if(x >= guiLeft+70 && y >= guiTop+42 && x <= guiLeft+70+18 && y <= guiTop+42+18){ - this.func_146283_a(Arrays.asList("@SuppressWarnings(\"unused\")", "This slot is currently unused. Ignore it."), x, y); - } - } - - @Override - public void drawGuiContainerForegroundLayer(int x, int y){ - AssetUtil.displayNameString(this.fontRendererObj, xSize, -10, this.magnet.getInventoryName()); - } - - @Override - public void drawGuiContainerBackgroundLayer(float f, int x, int y){ - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - this.mc.getTextureManager().bindTexture(AssetUtil.GUI_INVENTORY_LOCATION); - this.drawTexturedModalRect(this.guiLeft, this.guiTop+93, 0, 0, 176, 86); - - this.mc.getTextureManager().bindTexture(resLoc); - this.drawTexturedModalRect(this.guiLeft, this.guiTop, 0, 0, 176, 93); - - if(this.magnet.storage.getEnergyStored() > 0){ - int i = this.magnet.getEnergyScaled(83); - drawTexturedModalRect(this.guiLeft+43, this.guiTop+89-i, 176, 0, 16, i); - } - - if(this.magnet.tank.getFluidAmount() > 0){ - int i = this.magnet.getTankScaled(83); - drawTexturedModalRect(this.guiLeft+117, this.guiTop+89-i, 192, 0, 16, i); - } - } -} \ No newline at end of file diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java index babc3bd7c..0158e56d9 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java @@ -57,7 +57,6 @@ public abstract class TileEntityBase extends TileEntity{ GameRegistry.registerTileEntity(TileEntityEnergizer.class, ModUtil.MOD_ID_LOWER+":tileEntityEnergizer"); GameRegistry.registerTileEntity(TileEntityEnervator.class, ModUtil.MOD_ID_LOWER+":tileEntityEnervator"); GameRegistry.registerTileEntity(TileEntityXPSolidifier.class, ModUtil.MOD_ID_LOWER+":tileEntityXPSolidifier"); - GameRegistry.registerTileEntity(TileEntityOreMagnet.class, ModUtil.MOD_ID_LOWER+":tileEntityOreMagnet"); GameRegistry.registerTileEntity(TileEntitySmileyCloud.class, ModUtil.MOD_ID_LOWER+":tileEntityCloud"); GameRegistry.registerTileEntity(TileEntityLeafGenerator.class, ModUtil.MOD_ID_LOWER+":tileEntityLeafGenerator"); GameRegistry.registerTileEntity(TileEntityDirectionalBreaker.class, ModUtil.MOD_ID_LOWER+":tileEntityDirectionalBreaker"); diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityOreMagnet.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityOreMagnet.java deleted file mode 100644 index 8138937f8..000000000 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityOreMagnet.java +++ /dev/null @@ -1,265 +0,0 @@ -/* - * This file ("TileEntityOreMagnet.java") is part of the Actually Additions Mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015 Ellpeck - */ - -package ellpeck.actuallyadditions.tile; - -import cofh.api.energy.EnergyStorage; -import cofh.api.energy.IEnergyReceiver; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import ellpeck.actuallyadditions.blocks.InitBlocks; -import ellpeck.actuallyadditions.blocks.metalists.TheMiscBlocks; -import ellpeck.actuallyadditions.config.ConfigValues; -import ellpeck.actuallyadditions.config.values.ConfigIntValues; -import ellpeck.actuallyadditions.util.WorldPos; -import ellpeck.actuallyadditions.util.WorldUtil; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.MathHelper; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.fluids.*; -import net.minecraftforge.oredict.OreDictionary; - -import java.util.ArrayList; - -public class TileEntityOreMagnet extends TileEntityInventoryBase implements IEnergyReceiver, IFluidHandler{ - - public static final int SLOT_OIL_INPUT = 0; - public static final int SLOT_OIL_OUTPUT = 1; - @SuppressWarnings("unused") - public static final int SLOT_UPGRADE = 2; - - public EnergyStorage storage = new EnergyStorage(2000000); - public FluidTank tank = new FluidTank(16*FluidContainerRegistry.BUCKET_VOLUME); - private int lastEnergy; - private int lastTankAmount; - - private int currentWorkTimer; - - public TileEntityOreMagnet(){ - super(3, "oreMagnet"); - } - - @Override - @SuppressWarnings("unchecked") - public void updateEntity(){ - if(!worldObj.isRemote){ - - if(this.storage.getEnergyStored() >= ConfigIntValues.ORE_MAGNET_ENERGY_USE.getValue() && this.tank.getFluid() != null && this.tank.getFluid().getFluid() == InitBlocks.fluidOil && this.tank.getFluidAmount() >= ConfigIntValues.ORE_MAGNET_OIL_USE.getValue() && !worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord)){ - if(this.currentWorkTimer > 0){ - currentWorkTimer--; - - if(currentWorkTimer <= 0){ - this.mine(); - } - } - else{ - this.currentWorkTimer = ConfigIntValues.ORE_MAGNET_MAX_TIMER.getValue()+MathHelper.getRandomIntegerInRange(worldObj.rand, 0, ConfigIntValues.ORE_MAGNET_MAX_TIMER.getValue()); - } - - //Extract energy - this.storage.extractEnergy(ConfigIntValues.ORE_MAGNET_ENERGY_USE.getValue(), false); - } - - //Update Clients - if(this.lastEnergy != this.storage.getEnergyStored() || this.lastTankAmount != this.tank.getFluidAmount()){ - this.lastEnergy = this.storage.getEnergyStored(); - this.lastTankAmount = this.tank.getFluidAmount(); - this.sendUpdate(); - } - - //Empty Oil Bucket - WorldUtil.emptyBucket(this.tank, this.slots, SLOT_OIL_INPUT, SLOT_OIL_OUTPUT, InitBlocks.fluidOil); - } - } - - private void mine(){ - //The possible positions where ores can be mined up in RELATIVE COORDINATES!! - ArrayList possiblePlacingPositions = new ArrayList(); - - for(int x = -ConfigIntValues.ORE_MAGNET_RANGE.getValue()/2; x <= ConfigIntValues.ORE_MAGNET_RANGE.getValue()/2; x++){ - for(int z = -ConfigIntValues.ORE_MAGNET_RANGE.getValue()/2; z <= ConfigIntValues.ORE_MAGNET_RANGE.getValue()/2; z++){ - //Check if there is a casing below the Block to mine - if(WorldUtil.hasBlocksInPlacesGiven(new int[][]{{x, -1, z}}, InitBlocks.blockMisc, TheMiscBlocks.LAVA_FACTORY_CASE.ordinal(), worldObj, xCoord, yCoord, zCoord)){ - //Can the block at the top be replaced? - for(int toPlaceY = 0; toPlaceY < 5; toPlaceY++){ - Block block = worldObj.getBlock(xCoord+x, yCoord+toPlaceY, zCoord+z); - //Check if the Block is okay to be replaced - if(block.isAir(worldObj, xCoord+x, yCoord+toPlaceY, zCoord+z) || block.isReplaceable(worldObj, xCoord+x, yCoord+toPlaceY, zCoord+z)){ - //Add it to the possible positions - possiblePlacingPositions.add(new WorldPos(worldObj, x, toPlaceY, z)); - //Only add the lowest Block, you don't want to make random floating towers, duh! - break; - } - } - } - } - } - - if(!possiblePlacingPositions.isEmpty()){ - //Get a random placing Position - WorldPos randomPlacingPos = possiblePlacingPositions.get(worldObj.rand.nextInt(possiblePlacingPositions.size())); - int x = randomPlacingPos.getX(); - int z = randomPlacingPos.getZ(); - int toPlaceY = randomPlacingPos.getY(); - //Find the first available block - for(int y = this.yCoord-2; y > 0; y--){ - Block block = worldObj.getBlock(xCoord+x, y, zCoord+z); - int meta = worldObj.getBlockMetadata(xCoord+x, y, zCoord+z); - if(block != null && !block.isAir(worldObj, xCoord+x, y, zCoord+z) && !block.hasTileEntity(meta) && block.getBlockHardness(worldObj, xCoord+x, y, zCoord+z) >= 0.0F && ((block.getMaterial() != null && block.getMaterial().isToolNotRequired()) || (block.getHarvestTool(meta) == null || (block.getHarvestTool(meta).equals("pickaxe") && block.getHarvestLevel(meta) <= 3)))){ - //Check Whitelist - if(this.hasExtraWhitelist(block)){ - this.removeBlock(x, y, z, block, meta, toPlaceY); - return; - } - //Check Ores - int[] oreIDs = OreDictionary.getOreIDs(new ItemStack(block, 1, meta)); - for(int ID : oreIDs){ - String oreName = OreDictionary.getOreName(ID); - //Is the block an ore according to the OreDictionary? - if(oreName.substring(0, 3).equals("ore") && !this.hasException(oreName)){ - this.removeBlock(x, y, z, block, meta, toPlaceY); - return; - } - } - } - } - } - } - - private boolean hasExtraWhitelist(Block block){ - String name = Block.blockRegistry.getNameForObject(block); - if(name != null){ - for(String list : ConfigValues.oreMagnetExtraWhitelist){ - if(list.equals(name)){ - return true; - } - } - } - return false; - } - - private void removeBlock(int x, int y, int z, Block block, int meta, int toPlaceY){ - //Remove the Block - worldObj.setBlockToAir(xCoord+x, y, zCoord+z); - worldObj.playAuxSFX(2001, xCoord+x, y, zCoord+z, Block.getIdFromBlock(block)+(meta << 12)); - - //Set the Block at the Top again - worldObj.setBlock(xCoord+x, yCoord+toPlaceY, zCoord+z, block, meta, 2); - worldObj.playSoundEffect((double)xCoord+x+0.5D, (double)yCoord+toPlaceY+0.5D, (double)zCoord+z+0.5D, block.stepSound.func_150496_b(), (block.stepSound.getVolume()+1.0F)/2.0F, block.stepSound.getPitch()*0.8F); - - //Extract oil - this.tank.drain(ConfigIntValues.ORE_MAGNET_OIL_USE.getValue(), true); - } - - private boolean hasException(String name){ - for(String except : ConfigValues.oreMagnetExceptions){ - if(except.equals(name)){ - return true; - } - } - return false; - } - - @SideOnly(Side.CLIENT) - public int getEnergyScaled(int i){ - return this.storage.getEnergyStored()*i/this.storage.getMaxEnergyStored(); - } - - @SideOnly(Side.CLIENT) - public int getTankScaled(int i){ - return this.tank.getFluidAmount()*i/this.tank.getCapacity(); - } - - @Override - public void writeSyncableNBT(NBTTagCompound compound, boolean sync){ - this.storage.writeToNBT(compound); - this.tank.writeToNBT(compound); - compound.setInteger("CurrentWorkTimer", this.currentWorkTimer); - super.writeSyncableNBT(compound, sync); - } - - @Override - public void readSyncableNBT(NBTTagCompound compound, boolean sync){ - this.storage.readFromNBT(compound); - this.tank.readFromNBT(compound); - this.currentWorkTimer = compound.getInteger("CurrentWorkTimer"); - super.readSyncableNBT(compound, sync); - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack){ - return FluidContainerRegistry.containsFluid(stack, new FluidStack(InitBlocks.fluidOil, 1)) && i == SLOT_OIL_INPUT; - } - - @Override - public boolean canInsertItem(int slot, ItemStack stack, int side){ - return this.isItemValidForSlot(slot, stack); - } - - @Override - public boolean canExtractItem(int slot, ItemStack stack, int side){ - return slot == SLOT_OIL_OUTPUT; - } - - @Override - public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate){ - return this.storage.receiveEnergy(maxReceive, simulate); - } - - @Override - public int getEnergyStored(ForgeDirection from){ - return this.storage.getEnergyStored(); - } - - @Override - public int getMaxEnergyStored(ForgeDirection from){ - return this.storage.getMaxEnergyStored(); - } - - @Override - public boolean canConnectEnergy(ForgeDirection from){ - return true; - } - - @Override - public int fill(ForgeDirection from, FluidStack resource, boolean doFill){ - if(this.canFill(from, resource.getFluid())){ - return this.tank.fill(resource, doFill); - } - return 0; - } - - @Override - public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain){ - return null; - } - - @Override - public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain){ - return null; - } - - @Override - public boolean canFill(ForgeDirection from, Fluid fluid){ - return from != ForgeDirection.DOWN && fluid == InitBlocks.fluidOil; - } - - @Override - public boolean canDrain(ForgeDirection from, Fluid fluid){ - return false; - } - - @Override - public FluidTankInfo[] getTankInfo(ForgeDirection from){ - return new FluidTankInfo[]{this.tank.getInfo()}; - } -} diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 1ab43b1eb..3ec7d3468 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -64,7 +64,6 @@ tile.actuallyadditions.blockColoredLampLime.name=Lime Lamp tile.actuallyadditions.blockColoredLampPink.name=Pink Lamp tile.actuallyadditions.blockColoredLampCyan.name=Cyan Lamp tile.actuallyadditions.blockColoredLampPurple.name=Purple Lamp -tile.actuallyadditions.blockOreMagnet.name=Magnetic Miner tile.actuallyadditions.blockPhantomface.name=Phantomface tile.actuallyadditions.blockPhantomEnergyface.name=Phantom Energyface tile.actuallyadditions.blockPhantomLiquiface.name=Phantom Liquiface @@ -362,7 +361,6 @@ container.actuallyadditions.drill.name=Drill container.actuallyadditions.energizer.name=Energizer container.actuallyadditions.enervator.name=Enervator container.actuallyadditions.xpSolidifier.name=Experience Solidifier -container.actuallyadditions.oreMagnet.name=Magnetic Miner container.actuallyadditions.cloud.name=Smiley Cloud container.actuallyadditions.directionalBreaker.name=Long-Range Breaker container.actuallyadditions.rangedCollector.name=Ranged Collector @@ -504,11 +502,8 @@ booklet.actuallyadditions.chapter.crusher.text.1=The Crusher turns ever booklet.actuallyadditions.chapter.furnaceDouble.name=Double Furnace booklet.actuallyadditions.chapter.furnaceDouble.text.1=The Double Furnace works like a furnace, however, it uses RF/t and can smelt two items at a time. -booklet.actuallyadditions.chapter.miner.name=Magnetic Miner -booklet.actuallyadditions.chapter.miner.text.1=The Magnetic Miner pulls ore blocks out of the ground using RF/t and of Oil/block mined. Every place where an ore should be pulled up must have a Casing Block one block lower than the miner. It has a range of blocks. - booklet.actuallyadditions.chapter.lavaFactory.name=Lava Factory -booklet.actuallyadditions.chapter.lavaFactory.text.1=The Lava Factory can produce blocks of lava given RF/block. The Block above it has to be surrounded with 4 Casing Blocks (which can be found on the Magnetic Miner Page!), otherwise it won't be able to produce Lava. Right-Clicking on the Lava Factory will show you if it's able to produce Lava in its current setup. Lava, for a fact. ory +booklet.actuallyadditions.chapter.lavaFactory.text.1=The Lava Factory can produce blocks of lava given RF/block. The Block above it has to be surrounded with 4 Casing Blocks, otherwise it won't be able to produce Lava. Right-Clicking on the Lava Factory will show you if it's able to produce Lava in its current setup. Lava, for a fact. ory booklet.actuallyadditions.chapter.energizer.name=Energizer and Enervator booklet.actuallyadditions.chapter.energizer.text.1=The Energizer charges items that hold RF using its energy supply. diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockOreMagnet.png b/src/main/resources/assets/actuallyadditions/textures/unused/blockOreMagnet.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/blocks/blockOreMagnet.png rename to src/main/resources/assets/actuallyadditions/textures/unused/blockOreMagnet.png diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockOreMagnetBottom.png b/src/main/resources/assets/actuallyadditions/textures/unused/blockOreMagnetBottom.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/blocks/blockOreMagnetBottom.png rename to src/main/resources/assets/actuallyadditions/textures/unused/blockOreMagnetBottom.png diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockOreMagnetTop.png b/src/main/resources/assets/actuallyadditions/textures/unused/blockOreMagnetTop.png similarity index 100% rename from src/main/resources/assets/actuallyadditions/textures/blocks/blockOreMagnetTop.png rename to src/main/resources/assets/actuallyadditions/textures/unused/blockOreMagnetTop.png From c6d14a25a4c11a635ab35f63a0cdbf92fc02e139 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Fri, 30 Oct 2015 23:37:20 +0100 Subject: [PATCH 39/73] Word in Search Bar gets saved between sessions --- .../actuallyadditions/booklet/GuiBooklet.java | 63 ++++++++++--------- .../util/playerdata/PersistentClientData.java | 40 +++++++----- 2 files changed, 56 insertions(+), 47 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index b12c2b629..128e0b935 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -52,17 +52,17 @@ public class GuiBooklet extends GuiScreen{ public BookletIndexEntry currentIndexEntry; public int pageOpenInIndex; public int indexPageAmount; - public GuiButton buttonForward; - public GuiButton buttonBackward; - public GuiButton buttonPreviousScreen; - public GuiButton buttonPreviouslyOpenedGui; - public GuiButton buttonUpdate; - public GuiButton buttonTwitter; - public GuiButton buttonForum; - public GuiButton buttonAchievements; - public GuiButton buttonConfig; - public GuiButton[] chapterButtons = new GuiButton[CHAPTER_BUTTONS_AMOUNT]; - private GuiTextField searchField; + private GuiButton buttonForward; + private GuiButton buttonBackward; + private GuiButton buttonPreviousScreen; + private GuiButton buttonPreviouslyOpenedGui; + private GuiButton buttonUpdate; + private GuiButton buttonTwitter; + private GuiButton buttonForum; + private GuiButton buttonAchievements; + private GuiButton buttonConfig; + private GuiButton[] chapterButtons = new GuiButton[CHAPTER_BUTTONS_AMOUNT]; + public GuiTextField searchField; private int ticksElapsed; private boolean mousePressed; @@ -166,34 +166,37 @@ public class GuiBooklet extends GuiScreen{ } } - @SuppressWarnings("unchecked") @Override public void keyTyped(char theChar, int key){ if(key != 1 && this.searchField.isFocused()){ this.searchField.textboxKeyTyped(theChar, key); - - if(this.currentIndexEntry instanceof BookletEntryAllSearch){ - BookletEntryAllSearch currentEntry = (BookletEntryAllSearch)this.currentIndexEntry; - if(this.searchField.getText() != null && !this.searchField.getText().isEmpty()){ - currentEntry.chapters.clear(); - - for(BookletChapter chapter : currentEntry.allChapters){ - if(chapter.getLocalizedName().toLowerCase().contains(this.searchField.getText().toLowerCase())){ - currentEntry.chapters.add(chapter); - } - } - } - else{ - currentEntry.chapters = (ArrayList)currentEntry.allChapters.clone(); - } - this.openIndexEntry(this.currentIndexEntry, this.pageOpenInIndex, false); - } + this.updateSearchBar(); } else{ super.keyTyped(theChar, key); } } + @SuppressWarnings("unchecked") + public void updateSearchBar(){ + if(this.currentIndexEntry instanceof BookletEntryAllSearch){ + BookletEntryAllSearch currentEntry = (BookletEntryAllSearch)this.currentIndexEntry; + if(this.searchField.getText() != null && !this.searchField.getText().isEmpty()){ + currentEntry.chapters.clear(); + + for(BookletChapter chapter : currentEntry.allChapters){ + if(chapter.getLocalizedName().toLowerCase().contains(this.searchField.getText().toLowerCase())){ + currentEntry.chapters.add(chapter); + } + } + } + else{ + currentEntry.chapters = (ArrayList)currentEntry.allChapters.clone(); + } + this.openIndexEntry(this.currentIndexEntry, this.pageOpenInIndex, false); + } + } + @Override protected void mouseClicked(int par1, int par2, int par3){ this.searchField.mouseClicked(par1, par2, par3); @@ -398,7 +401,7 @@ public class GuiBooklet extends GuiScreen{ @Override public void onGuiClosed(){ - PersistentClientData.saveBookPage(this.currentIndexEntry, this.currentChapter, this.currentPage, this.pageOpenInIndex); + PersistentClientData.saveBookPage(this.currentIndexEntry, this.currentChapter, this.currentPage, this.pageOpenInIndex, this.searchField.getText()); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java index 1a9ab2c27..e8998beb8 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java +++ b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java @@ -31,7 +31,7 @@ public class PersistentClientData{ private static File theFile; - public static void saveBookPage(BookletIndexEntry entry, BookletChapter chapter, BookletPage page, int pageInIndex){ + public static void saveBookPage(BookletIndexEntry entry, BookletChapter chapter, BookletPage page, int pageInIndex, String searchWord){ NBTTagCompound baseCompound = getBaseCompound(); NBTTagCompound worldCompound = getCompoundForWorld(baseCompound); if(worldCompound != null){ @@ -39,6 +39,7 @@ public class PersistentClientData{ worldCompound.setInteger("Chapter", entry == null || chapter == null ? -1 : entry.chapters.indexOf(chapter)); worldCompound.setInteger("Page", page == null ? -1 : page.getID()); worldCompound.setInteger("PageInIndex", pageInIndex); + worldCompound.setString("SearchWord", searchWord); writeCompound(baseCompound, worldCompound); } } @@ -88,26 +89,31 @@ public class PersistentClientData{ public static void openLastBookPage(GuiBooklet gui){ NBTTagCompound worldCompound = getCompoundForWorld(getBaseCompound()); - if(worldCompound != null){ - if(worldCompound.hasKey("Entry")){ - int entry = worldCompound.getInteger("Entry"); - int chapter = worldCompound.getInteger("Chapter"); - int page = worldCompound.getInteger("Page"); + if(worldCompound != null && worldCompound.hasKey("Entry")){ + int entry = worldCompound.getInteger("Entry"); + int chapter = worldCompound.getInteger("Chapter"); + int page = worldCompound.getInteger("Page"); - BookletIndexEntry currentIndexEntry = entry == -1 ? null : InitBooklet.entries.get(entry); - BookletChapter currentChapter = chapter == -1 || entry == -1 || currentIndexEntry.chapters.size() <= chapter ? null : currentIndexEntry.chapters.get(chapter); - BookletPage currentPage = chapter == -1 || currentChapter == null || currentChapter.pages.length <= page-1 ? null : currentChapter.pages[page-1]; - int pageInIndex = worldCompound.getInteger("PageInIndex"); + BookletIndexEntry currentIndexEntry = entry == -1 ? null : InitBooklet.entries.get(entry); + BookletChapter currentChapter = chapter == -1 || entry == -1 || currentIndexEntry.chapters.size() <= chapter ? null : currentIndexEntry.chapters.get(chapter); + BookletPage currentPage = chapter == -1 || currentChapter == null || currentChapter.pages.length <= page-1 ? null : currentChapter.pages[page-1]; + int pageInIndex = worldCompound.getInteger("PageInIndex"); - gui.openIndexEntry(currentIndexEntry, pageInIndex, true); - if(currentChapter != null){ - gui.openChapter(currentChapter, currentPage); - } - return; + gui.openIndexEntry(currentIndexEntry, pageInIndex, true); + if(currentChapter != null){ + gui.openChapter(currentChapter, currentPage); + } + + String searchText = worldCompound.getString("SearchWord"); + if(!searchText.isEmpty()){ + gui.searchField.setText(searchText); + gui.updateSearchBar(); } } - //If everything fails, initialize the front page - gui.openIndexEntry(null, 1, true); + else{ + //If everything fails, initialize the front page + gui.openIndexEntry(null, 1, true); + } } public static void setBoolean(String name, boolean bool){ From c753104586ce8c330b638b1218344404764ebdf8 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 12:02:28 +0100 Subject: [PATCH 40/73] Gave the Laser Relay an Energy Transfer Cap --- .../actuallyadditions/config/values/ConfigIntValues.java | 3 ++- .../ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java index e519505a3..a736420ee 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java @@ -174,7 +174,8 @@ public enum ConfigIntValues{ RANGED_COLLECTOR_RANGE("Ranged Collector: Range", ConfigCategories.MACHINE_VALUES, 6, 1, 30, "The range of the Ranged Collector"), LASER_RELAY_LOSS("Laser Relay: Loss", ConfigCategories.MACHINE_VALUES, 5, 0, 80, "The Energy Loss of the Laser Relay per Transfer in Percent"), - LASER_RELAY_MAX_DISTANCE("Laser Relay: Max Distance", ConfigCategories.MACHINE_VALUES, 15, 3, 80, "The max distance between two connected Laser Relays"); + LASER_RELAY_MAX_DISTANCE("Laser Relay: Max Distance", ConfigCategories.MACHINE_VALUES, 15, 3, 80, "The max distance between two connected Laser Relays"), + LASER_RELAY_MAX_TRANSFER("Laser Relay: Max Transfer", ConfigCategories.MACHINE_VALUES, 10000, 100, 1000000, "The max amount of RF a Laser Relay can receive and try to transfer (if it's given 100 RF and can only transfer 50, it will only accept 50, it won't waste any power!)"); public final String name; public final String category; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 5069060d4..59c23d9ce 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -14,6 +14,7 @@ import cofh.api.energy.IEnergyReceiver; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; +import ellpeck.actuallyadditions.config.values.ConfigIntValues; import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; import ellpeck.actuallyadditions.util.WorldPos; import ellpeck.actuallyadditions.util.WorldUtil; @@ -117,7 +118,7 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei if(maxTransmit > 0){ LaserRelayConnectionHandler.Network network = LaserRelayConnectionHandler.getInstance().getNetworkFor(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); if(network != null){ - transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(blockFrom, network, maxTransmit, simulate); + transmitted = LaserRelayConnectionHandler.getInstance().transferEnergyToReceiverInNeed(blockFrom, network, Math.min(ConfigIntValues.LASER_RELAY_MAX_TRANSFER.getValue(), maxTransmit), simulate); } } return transmitted; From ae584fce2f059886c49d5d42aa18b2d7a94fbeae Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 14:42:51 +0100 Subject: [PATCH 41/73] Fix a Crash on Server with the Laser Relay /derp --- .../tile/TileEntityLaserRelay.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index 59c23d9ce..eb2a6f761 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -87,14 +87,18 @@ public class TileEntityLaserRelay extends TileEntityBase implements IEnergyRecei @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt){ - NBTTagCompound compound = pkt.func_148857_g(); + if(pkt != null){ + NBTTagCompound compound = pkt.func_148857_g(); - LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); + if(compound != null){ + LaserRelayConnectionHandler.getInstance().removeRelayFromNetwork(new WorldPos(this.worldObj, this.xCoord, this.yCoord, this.zCoord)); - NBTTagList list = compound.getTagList("Connections", 10); - for(int i = 0; i < list.tagCount(); i++){ - LaserRelayConnectionHandler.ConnectionPair pair = LaserRelayConnectionHandler.ConnectionPair.readFromNBT(list.getCompoundTagAt(i)); - LaserRelayConnectionHandler.getInstance().addConnection(pair.firstRelay, pair.secondRelay); + NBTTagList list = compound.getTagList("Connections", 10); + for(int i = 0; i < list.tagCount(); i++){ + LaserRelayConnectionHandler.ConnectionPair pair = LaserRelayConnectionHandler.ConnectionPair.readFromNBT(list.getCompoundTagAt(i)); + LaserRelayConnectionHandler.getInstance().addConnection(pair.firstRelay, pair.secondRelay); + } + } } } From 9b536fc3d5bba6e1651ebae67b7b62aba59aa9ed Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 14:45:35 +0100 Subject: [PATCH 42/73] r2 --- build.gradle | 2 +- .../java/ellpeck/actuallyadditions/util/ModUtil.java | 2 +- update/changelog.md | 9 ++++++++- update/updateVersion.txt | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index aa6b6fa89..982abe8b9 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ buildscript { apply plugin: 'forge' apply plugin: 'maven' -version = "1.7.10-r1" +version = "1.7.10-r2" group = "ellpeck.actuallyadditions" archivesBaseName = "ActuallyAdditions" diff --git a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java index 7ac928674..2b9061e66 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java @@ -15,7 +15,7 @@ import org.apache.logging.log4j.Logger; public class ModUtil{ - public static final String VERSION = "1.7.10-r1"; + public static final String VERSION = "1.7.10-r2"; public static final String MOD_ID = "ActuallyAdditions"; public static final String NAME = "Actually Additions"; diff --git a/update/changelog.md b/update/changelog.md index 84c0d401b..aa6d3dd62 100644 --- a/update/changelog.md +++ b/update/changelog.md @@ -1,3 +1,10 @@ +# 1.7.10-r2 +- Fix a Crash on Server with the Laser Relay +- Gave the Laser Relay an Energy Transfer Cap +- Added Preview Pictures to the booklet (Thanks to KittyVanCat for help!) +- Fix Slabs +- Fixed Bug with Double Furnace and Double Crusher not crushing if both slots are filled (Thanks to KittyVanCat) + # 1.7.10-r1 - Finally out of beta! ~ - Added the Laser Relay, a block that works like a cable to transfer RF, only without the cable but with LAZORZ @@ -10,4 +17,4 @@ - New AIOT Textures - AIOT Integration for SimpleOres 2 - Changed Ball Of Hair Name to "Ball Of Fur", added Booklet Page -- Added Iron Casing & Drill Core \ No newline at end of file +- Added Iron Casing & Drill Coreg \ No newline at end of file diff --git a/update/updateVersion.txt b/update/updateVersion.txt index 4e0debcd3..80f8d3a63 100644 --- a/update/updateVersion.txt +++ b/update/updateVersion.txt @@ -1 +1 @@ -1.7.10-r1 \ No newline at end of file +1.7.10-r2 \ No newline at end of file From 9fad9b17877483cb78b136f44da29d1ac00654e1 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 14:46:02 +0100 Subject: [PATCH 43/73] fml --- update/changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update/changelog.md b/update/changelog.md index aa6d3dd62..2749f06e8 100644 --- a/update/changelog.md +++ b/update/changelog.md @@ -17,4 +17,4 @@ - New AIOT Textures - AIOT Integration for SimpleOres 2 - Changed Ball Of Hair Name to "Ball Of Fur", added Booklet Page -- Added Iron Casing & Drill Coreg \ No newline at end of file +- Added Iron Casing & Drill Core \ No newline at end of file From 1cab983658a8c0d0aef7a6357b57ffac54a3ff7a Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 15:09:27 +0100 Subject: [PATCH 44/73] Updated Forge because canitz is a whining guy --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 982abe8b9..b1143cb93 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ group = "ellpeck.actuallyadditions" archivesBaseName = "ActuallyAdditions" minecraft { - version = "1.7.10-10.13.4.1492-1.7.10" + version = "1.7.10-10.13.4.1541-1.7.10" runDir = "idea" } From 44633498ddc600d8f3458cfbe4cb4a01985b75af Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 15:13:28 +0100 Subject: [PATCH 45/73] Update changelog.md --- update/changelog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/update/changelog.md b/update/changelog.md index 2749f06e8..1e0fb7113 100644 --- a/update/changelog.md +++ b/update/changelog.md @@ -4,6 +4,7 @@ - Added Preview Pictures to the booklet (Thanks to KittyVanCat for help!) - Fix Slabs - Fixed Bug with Double Furnace and Double Crusher not crushing if both slots are filled (Thanks to KittyVanCat) +- Remove the Magnetic Miner # 1.7.10-r1 - Finally out of beta! ~ @@ -17,4 +18,4 @@ - New AIOT Textures - AIOT Integration for SimpleOres 2 - Changed Ball Of Hair Name to "Ball Of Fur", added Booklet Page -- Added Iron Casing & Drill Core \ No newline at end of file +- Added Iron Casing & Drill Core From 42a6401c0d74fc1d9f423f8c07474ec81be249c6 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 15:21:50 +0100 Subject: [PATCH 46/73] Fix Laser Relay Network. Damn it. --- .../java/ellpeck/actuallyadditions/ActuallyAdditions.java | 4 ---- .../misc/LaserRelayConnectionHandler.java | 7 +++---- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java index ee787c9ba..a0459901b 100644 --- a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java +++ b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java @@ -117,10 +117,6 @@ public class ActuallyAdditions{ Util.registerDispenserHandler(Items.bucket, new DispenserHandlerFillBucket()); Util.registerDispenserHandler(InitItems.itemFertilizer, new DispenserHandlerFertilize()); - if(LaserRelayConnectionHandler.getInstance() == null){ - LaserRelayConnectionHandler.setInstance(new LaserRelayConnectionHandler()); - } - WorldData.init(event.getServer()); } diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 3575ec955..1f1736e44 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -31,13 +31,12 @@ public class LaserRelayConnectionHandler{ public ConcurrentSet networks = new ConcurrentSet(); public static LaserRelayConnectionHandler getInstance(){ + if(instance == null){ + instance = new LaserRelayConnectionHandler(); + } return instance; } - public static void setInstance(LaserRelayConnectionHandler i){ - instance = i; - } - public NBTTagCompound writeNetworkToNBT(Network network){ NBTTagList list = new NBTTagList(); for(ConnectionPair pair : network.connections){ From 5e5173cf54ece2d8070cf0cf18c17622625bad5e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 17:14:56 +0100 Subject: [PATCH 47/73] Fixed Heat Collector behaving stupidly --- .../actuallyadditions/tile/TileEntityHeatCollector.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java index ef04e01b0..641e7015a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java @@ -52,9 +52,10 @@ public class TileEntityHeatCollector extends TileEntityBase implements IEnergyPr WorldUtil.breakBlockAtSide(WorldUtil.getDirectionBySidesInOrder(randomSide), worldObj, xCoord, yCoord, zCoord); } } - if(this.getEnergyStored(ForgeDirection.UNKNOWN) > 0){ - WorldUtil.pushEnergy(worldObj, xCoord, yCoord, zCoord, ForgeDirection.UP, this.storage); - } + } + + if(this.getEnergyStored(ForgeDirection.UNKNOWN) > 0){ + WorldUtil.pushEnergy(worldObj, xCoord, yCoord, zCoord, ForgeDirection.UP, this.storage); } } } From b24cd48984ed02b01bf111e17ac76339b8dc8bfe Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 21:42:16 +0100 Subject: [PATCH 48/73] Prevented Crash when the manual was open during a world crash or kick --- .../util/playerdata/PersistentClientData.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java index e8998beb8..108df2714 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java +++ b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java @@ -54,7 +54,10 @@ public class PersistentClientData{ } private static String getName(){ - return Minecraft.getMinecraft().isIntegratedServerRunning() ? Minecraft.getMinecraft().getIntegratedServer().getFolderName() : Minecraft.getMinecraft().func_147104_D().serverIP; + if(Minecraft.getMinecraft().theWorld != null){ + return Minecraft.getMinecraft().isIntegratedServerRunning() ? Minecraft.getMinecraft().getIntegratedServer().getFolderName() : Minecraft.getMinecraft().func_147104_D().serverIP; + } + return "Invalid"; } private static NBTTagCompound getCompoundForWorld(NBTTagCompound mainCompound){ From 62cc0a96ce4b3b523b373e80db9a7213ea19604e Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 31 Oct 2015 21:45:19 +0100 Subject: [PATCH 49/73] Why does this annoy me so much? --- .../actuallyadditions/util/playerdata/PersistentClientData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java index 108df2714..4b132ebaf 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java +++ b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java @@ -57,7 +57,7 @@ public class PersistentClientData{ if(Minecraft.getMinecraft().theWorld != null){ return Minecraft.getMinecraft().isIntegratedServerRunning() ? Minecraft.getMinecraft().getIntegratedServer().getFolderName() : Minecraft.getMinecraft().func_147104_D().serverIP; } - return "Invalid"; + else return "Invalid"; } private static NBTTagCompound getCompoundForWorld(NBTTagCompound mainCompound){ From d42e2d2e4eefb36754fbe510d06acbf379e33fbc Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sun, 1 Nov 2015 10:34:17 +0100 Subject: [PATCH 50/73] Finally actually fixed some stuff --- .../actuallyadditions/ActuallyAdditions.java | 6 ++-- .../actuallyadditions/event/InitEvents.java | 1 + .../event/WorldLoadingEvents.java | 31 +++++++++++++++++++ .../misc/LaserRelayConnectionHandler.java | 7 +++-- 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java diff --git a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java index a0459901b..e3e0b8690 100644 --- a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java +++ b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java @@ -31,7 +31,10 @@ import ellpeck.actuallyadditions.items.InitItems; import ellpeck.actuallyadditions.items.ItemCoffee; import ellpeck.actuallyadditions.material.InitArmorMaterials; import ellpeck.actuallyadditions.material.InitToolMaterials; -import ellpeck.actuallyadditions.misc.*; +import ellpeck.actuallyadditions.misc.DispenserHandlerEmptyBucket; +import ellpeck.actuallyadditions.misc.DispenserHandlerFertilize; +import ellpeck.actuallyadditions.misc.DispenserHandlerFillBucket; +import ellpeck.actuallyadditions.misc.WorldData; import ellpeck.actuallyadditions.network.PacketHandler; import ellpeck.actuallyadditions.ore.InitOreDict; import ellpeck.actuallyadditions.proxy.IProxy; @@ -123,7 +126,6 @@ public class ActuallyAdditions{ @EventHandler public void serverStopped(FMLServerStoppedEvent event){ //Clear Data so that it won't be carried over to other worlds - LaserRelayConnectionHandler.getInstance().networks.clear(); PersistentServerData.playerSaveData.clear(); } } diff --git a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java index 20e36c5ed..02c4e4c50 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java +++ b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java @@ -31,6 +31,7 @@ public class InitEvents{ Util.registerEvent(new EntityLivingEvent()); Util.registerEvent(new BucketFillEvent()); Util.registerEvent(new LogoutEvent()); + Util.registerEvent(new WorldLoadingEvents()); MinecraftForge.TERRAIN_GEN_BUS.register(new WorldDecorationEvent()); } diff --git a/src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java b/src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java new file mode 100644 index 000000000..abc923b7b --- /dev/null +++ b/src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java @@ -0,0 +1,31 @@ +/* + * This file ("WorldLoadingEvents.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015 Ellpeck + */ + +package ellpeck.actuallyadditions.event; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import ellpeck.actuallyadditions.misc.LaserRelayConnectionHandler; +import net.minecraftforge.event.world.WorldEvent; + +public class WorldLoadingEvents{ + + @SubscribeEvent + public void onLoad(WorldEvent.Load event){ + if(LaserRelayConnectionHandler.getInstance() == null){ + LaserRelayConnectionHandler.setInstance(new LaserRelayConnectionHandler()); + } + } + + @SubscribeEvent + public void onUnload(WorldEvent.Unload event){ + //Clear Data so that it won't be carried over to other worlds + LaserRelayConnectionHandler.getInstance().networks.clear(); + } +} diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 1f1736e44..36c8f1330 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -31,12 +31,13 @@ public class LaserRelayConnectionHandler{ public ConcurrentSet networks = new ConcurrentSet(); public static LaserRelayConnectionHandler getInstance(){ - if(instance == null){ - instance = new LaserRelayConnectionHandler(); - } return instance; } + public static void setInstance(LaserRelayConnectionHandler handler){ + instance = handler; + } + public NBTTagCompound writeNetworkToNBT(Network network){ NBTTagList list = new NBTTagList(); for(ConnectionPair pair : network.connections){ From 0a21c048c47cfa2ebc6421bebb60bae65da2ae3c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sun, 1 Nov 2015 23:18:58 +0100 Subject: [PATCH 51/73] Removed some seasonal stuff that didn't really work --- .../java/ellpeck/actuallyadditions/booklet/InitBooklet.java | 6 ++---- src/main/resources/assets/actuallyadditions/lang/en_US.lang | 2 -- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index 734da6de7..b1fb1ab77 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -20,7 +20,6 @@ import ellpeck.actuallyadditions.items.InitItems; import ellpeck.actuallyadditions.items.metalists.TheFoods; import ellpeck.actuallyadditions.items.metalists.TheMiscItems; import ellpeck.actuallyadditions.items.metalists.TheSpecialDrops; -import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.util.Util; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; @@ -46,8 +45,7 @@ public class InitBooklet{ chapterIntro = new BookletChapter("intro", entryMisc, new ItemStack(InitItems.itemLexicon), new PageTextOnly(1), new PageTextOnly(2), new PageTextOnly(3), new PageCrafting(4, ItemCrafting.recipeBook)).setImportant(); //Miscellaneous - BookletPage pageStoneCase = new PageCrafting(5, BlockCrafting.recipeStoneCase); - new BookletChapter("craftingIngs", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeCoil).setNoText(), new PageCrafting(3, ItemCrafting.recipeCoilAdvanced).setNoText(), new PageCrafting(4, BlockCrafting.recipeCase).setNoText(), ClientProxy.jingleAllTheWay ? pageStoneCase : pageStoneCase.setNoText(), new PageCrafting(6, BlockCrafting.recipeEnderPearlBlock).setNoText(), new PageCrafting(7, BlockCrafting.recipeEnderCase).setNoText(), new PageCrafting(8, ItemCrafting.recipeRing).setNoText(), new PageCrafting(9, ItemCrafting.recipeKnifeHandle).setNoText(), new PageCrafting(10, ItemCrafting.recipeKnifeBlade).setNoText(), new PageCrafting(11, ItemCrafting.recipeKnife).setNoText(), new PageCrafting(12, ItemCrafting.recipeDough).setNoText(), new PageCrafting(13, ItemCrafting.recipeRiceDough).setNoText(), new PageCrafting(14, BlockCrafting.recipeIronCase).setNoText()).setImportant(); + new BookletChapter("craftingIngs", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeCoil).setNoText(), new PageCrafting(3, ItemCrafting.recipeCoilAdvanced).setNoText(), new PageCrafting(4, BlockCrafting.recipeCase).setNoText(), new PageCrafting(5, BlockCrafting.recipeStoneCase).setNoText(), new PageCrafting(6, BlockCrafting.recipeEnderPearlBlock).setNoText(), new PageCrafting(7, BlockCrafting.recipeEnderCase).setNoText(), new PageCrafting(8, ItemCrafting.recipeRing).setNoText(), new PageCrafting(9, ItemCrafting.recipeKnifeHandle).setNoText(), new PageCrafting(10, ItemCrafting.recipeKnifeBlade).setNoText(), new PageCrafting(11, ItemCrafting.recipeKnife).setNoText(), new PageCrafting(12, ItemCrafting.recipeDough).setNoText(), new PageCrafting(13, ItemCrafting.recipeRiceDough).setNoText(), new PageCrafting(14, BlockCrafting.recipeIronCase).setNoText()).setImportant(); new BookletChapter("quartz", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal()), new PageTextOnly(1).setStack(new ItemStack(InitBlocks.blockMisc, 1, TheMiscBlocks.ORE_QUARTZ.ordinal())).addTextReplacement("", ConfigIntValues.BLACK_QUARTZ_MIN_HEIGHT.getValue()).addTextReplacement("", ConfigIntValues.BLACK_QUARTZ_MAX_HEIGHT.getValue()), new PageTextOnly(2).setStack(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.QUARTZ.ordinal())), new PageCrafting(3, BlockCrafting.recipeQuartzBlock).setNoText(), new PageCrafting(4, BlockCrafting.recipeQuartzPillar).setNoText(), new PageCrafting(5, BlockCrafting.recipeQuartzChiseled).setNoText()); new BookletChapter("cloud", entryMisc, new ItemStack(InitBlocks.blockSmileyCloud), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeSmileyCloud).setNoText()).setSpecial(); new BookletChapter("coalStuff", entryMisc, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.TINY_COAL.ordinal()), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeTinyCoal).setNoText(), new PageCrafting(3, ItemCrafting.recipeTinyChar).setNoText(), new PageCrafting(4, BlockCrafting.recipeBlockChar).setNoText()); @@ -65,7 +63,7 @@ public class InitBooklet{ //No RF Using Blocks new BookletChapter("breaker", entryFunctionalNonRF, new ItemStack(InitBlocks.blockBreaker), new PageCrafting(1, BlockCrafting.recipeBreaker), new PageCrafting(2, BlockCrafting.recipePlacer), new PageCrafting(3, BlockCrafting.recipeLiquidPlacer), new PageCrafting(4, BlockCrafting.recipeLiquidCollector)); new BookletChapter("dropper", entryFunctionalNonRF, new ItemStack(InitBlocks.blockDropper), new PageTextOnly(1), new PageCrafting(1, BlockCrafting.recipeDropper).setNoText()); - new BookletChapter("phantomfaces", entryFunctionalNonRF, new ItemStack(InitBlocks.blockPhantomLiquiface), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.PHANTOMFACE_RANGE.getValue()), new PageCrafting(ClientProxy.pumpkinBlurPumpkinBlur ? 666 : 2, BlockCrafting.recipePhantomface), new PageCrafting(3, BlockCrafting.recipeLiquiface), new PageCrafting(4, BlockCrafting.recipeEnergyface), new PageCrafting(5, ItemCrafting.recipePhantomConnector).setNoText(), new PageCrafting(6, BlockCrafting.recipePhantomBooster)).setImportant(); + new BookletChapter("phantomfaces", entryFunctionalNonRF, new ItemStack(InitBlocks.blockPhantomLiquiface), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.PHANTOMFACE_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipePhantomface), new PageCrafting(3, BlockCrafting.recipeLiquiface), new PageCrafting(4, BlockCrafting.recipeEnergyface), new PageCrafting(5, ItemCrafting.recipePhantomConnector).setNoText(), new PageCrafting(6, BlockCrafting.recipePhantomBooster)).setImportant(); new BookletChapter("phantomBreaker", entryFunctionalNonRF, new ItemStack(InitBlocks.blockPhantomBreaker), new PageTextOnly(1).addTextReplacement("", ConfigIntValues.PHANTOM_PLACER_RANGE.getValue()), new PageCrafting(2, BlockCrafting.recipePhantomPlacer).setNoText(), new PageCrafting(3, BlockCrafting.recipePhantomBreaker).setNoText()); new BookletChapter("esd", entryFunctionalNonRF, new ItemStack(InitBlocks.blockInputterAdvanced), new PageTextOnly(1), new PageCrafting(2, BlockCrafting.recipeESD).setNoText(), new PageCrafting(3, BlockCrafting.recipeAdvancedESD).setNoText()).setSpecial(); new BookletChapter("xpSolidifier", entryFunctionalNonRF, new ItemStack(InitBlocks.blockXPSolidifier), new PageTextOnly(1).setStack(new ItemStack(InitItems.itemSpecialDrop, 1, TheSpecialDrops.SOLIDIFIED_EXPERIENCE.ordinal())), new PageCrafting(2, BlockCrafting.recipeSolidifier).setNoText()).setSpecial(); diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 3ec7d3468..48da8570a 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -430,7 +430,6 @@ booklet.actuallyadditions.chapter.intro.text.4=If you, for some reason, want to booklet.actuallyadditions.chapter.craftingIngs.name=Crafting Ingredients booklet.actuallyadditions.chapter.craftingIngs.text.1=Actually Additions has lots of items that use certain basic crafting items to be crafted. This chapter has all of these basic items grouped up so that you can see all of them at once. -booklet.actuallyadditions.chapter.craftingIngs.text.5=This thing is terribly snowy right now. If you put this into your machines, you might make them explode. Watch out for that. booklet.actuallyadditions.chapter.quartz.name=Black Quartz booklet.actuallyadditions.chapter.quartz.text.1=Black Quartz is an Ore that generates in the world between layer and . When broken, it can be smelted in a furnace or crushed in a crusher to get broken down into Black Quartz. @@ -458,7 +457,6 @@ booklet.actuallyadditions.chapter.breaker.text.4=The Liquid Collector w booklet.actuallyadditions.chapter.phantomfaces.name=Phantomfaces booklet.actuallyadditions.chapter.phantomfaces.text.1=Phantomfaces are a simple way to connect inventories together, they have a very important twist however: Instead of just connecting two inventories, a Phantomface simulates the inventory it is connected to, meaning you can put items into and pull out of the Phantomface itself. A Phantomface has a default range of blocks, but it can be upgraded with a Phantom Booster. Phantomfaces are connected by right-clicking an inventory with a Phantom Connector and then right-clicking the Phantomface. booklet.actuallyadditions.chapter.phantomfaces.text.2=The default Phantomface works for items, like described on the first page. -booklet.actuallyadditions.chapter.phantomfaces.text.666=The default Phantomface scares people away by being so terribly creepy. Actually, it just works for items like described on the first page. booklet.actuallyadditions.chapter.phantomfaces.text.3=The Phantom Liquiface acts exactly like the normal Phantomface, but it works for liquid containing blocks. When given a Redstone Signal, it can be set to Auto-Output. Be careful with this though, as it could cause infinte loops and lag under certain conditions! booklet.actuallyadditions.chapter.phantomfaces.text.4=The Phantom Energyface acts exactly like the normal Phantomface, but it works for RF, meaning you can connect it to things like Generators and Crushers. booklet.actuallyadditions.chapter.phantomfaces.text.6=The Phantom Booster, as explained on the first page, ups the range of Phantomfaces by being placed on top of them. The maximum amount above one Phantomface is 3. From 23853bd7f55afe77fff604e270a19cc6439cae77 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 2 Nov 2015 20:47:14 +0100 Subject: [PATCH 52/73] I don't know why I did this. --- .../java/ellpeck/actuallyadditions/update/UpdateChecker.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java index 3503195bc..5d343e126 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java +++ b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java @@ -5,14 +5,13 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * � 2015 Ellpeck */ package ellpeck.actuallyadditions.update; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.util.ModUtil; -import ellpeck.actuallyadditions.util.Util; public class UpdateChecker{ @@ -25,7 +24,6 @@ public class UpdateChecker{ public void init(){ if(ConfigBoolValues.DO_UPDATE_CHECK.isEnabled()){ ModUtil.LOGGER.info("Initializing Update Checker..."); - Util.registerEvent(this); new ThreadUpdateChecker(); } } From 988a27009ad8766b336864b103ae425f91377cf4 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 2 Nov 2015 20:55:19 +0100 Subject: [PATCH 53/73] IntelliJ no IntelliJ y --- specialPeopleStuff.properties | 0 .../actuallyadditions/ActuallyAdditions.java | 2 +- .../achievement/InitAchievements.java | 2 +- .../achievement/TheAchievements.java | 2 +- .../blocks/BlockBreaker.java | 2 +- .../blocks/BlockCanolaPress.java | 2 +- .../blocks/BlockCoalGenerator.java | 2 +- .../blocks/BlockCoffeeMachine.java | 2 +- .../blocks/BlockColoredLamp.java | 2 +- .../blocks/BlockCompost.java | 2 +- .../blocks/BlockContainerBase.java | 2 +- .../blocks/BlockDirectionalBreaker.java | 2 +- .../blocks/BlockDropper.java | 2 +- .../blocks/BlockEnergizer.java | 2 +- .../actuallyadditions/blocks/BlockFeeder.java | 2 +- .../blocks/BlockFermentingBarrel.java | 2 +- .../blocks/BlockFishingNet.java | 2 +- .../blocks/BlockFluidCollector.java | 2 +- .../blocks/BlockFluidFlowing.java | 2 +- .../blocks/BlockFurnaceDouble.java | 2 +- .../blocks/BlockFurnaceSolar.java | 2 +- .../blocks/BlockGeneric.java | 2 +- .../blocks/BlockGiantChest.java | 2 +- .../blocks/BlockGreenhouseGlass.java | 2 +- .../blocks/BlockGrinder.java | 2 +- .../blocks/BlockHeatCollector.java | 2 +- .../blocks/BlockInputter.java | 2 +- .../blocks/BlockItemRepairer.java | 2 +- .../blocks/BlockLampPowerer.java | 2 +- .../blocks/BlockLaserRelay.java | 2 +- .../blocks/BlockLavaFactoryController.java | 2 +- .../blocks/BlockLeafGenerator.java | 2 +- .../actuallyadditions/blocks/BlockMisc.java | 2 +- .../blocks/BlockOilGenerator.java | 2 +- .../blocks/BlockPhantom.java | 2 +- .../blocks/BlockPhantomBooster.java | 2 +- .../actuallyadditions/blocks/BlockPlant.java | 2 +- .../blocks/BlockRangedCollector.java | 2 +- .../actuallyadditions/blocks/BlockSlabs.java | 2 +- .../blocks/BlockSmileyCloud.java | 2 +- .../actuallyadditions/blocks/BlockStair.java | 2 +- .../blocks/BlockTreasureChest.java | 2 +- .../blocks/BlockWildPlant.java | 2 +- .../blocks/BlockXPSolidifier.java | 2 +- .../actuallyadditions/blocks/FluidAA.java | 2 +- .../actuallyadditions/blocks/InitBlocks.java | 2 +- .../metalists/TheColoredLampColors.java | 2 +- .../blocks/metalists/TheMiscBlocks.java | 2 +- .../blocks/metalists/TheWildPlants.java | 2 +- .../blocks/render/ModelBaseAA.java | 2 +- .../blocks/render/ModelCoffeeMachine.java | 2 +- .../blocks/render/ModelCompost.java | 2 +- .../blocks/render/ModelFishingNet.java | 2 +- .../blocks/render/ModelFurnaceSolar.java | 2 +- .../blocks/render/ModelLaserRelay.java | 2 +- .../blocks/render/ModelPhantomBooster.java | 2 +- .../blocks/render/ModelSmileyCloud.java | 2 +- .../blocks/render/RenderItems.java | 2 +- .../blocks/render/RenderLaserRelay.java | 2 +- .../blocks/render/RenderSmileyCloud.java | 2 +- .../blocks/render/RenderTileEntity.java | 2 +- .../booklet/BookletChapter.java | 2 +- .../booklet/BookletChapterCoffee.java | 2 +- .../booklet/BookletEntryAllSearch.java | 2 +- .../booklet/BookletIndexEntry.java | 2 +- .../booklet/GuiAAAchievements.java | 2 +- .../actuallyadditions/booklet/GuiBooklet.java | 2 +- .../booklet/InitBooklet.java | 2 +- .../booklet/page/BookletPage.java | 2 +- .../booklet/page/PageCoffeeRecipe.java | 2 +- .../booklet/page/PageCrafting.java | 2 +- .../booklet/page/PageCrusherRecipe.java | 2 +- .../booklet/page/PageFurnace.java | 2 +- .../booklet/page/PagePicture.java | 2 +- .../booklet/page/PageTextOnly.java | 2 +- .../communication/InterModCommunications.java | 2 +- .../config/ConfigCategories.java | 2 +- .../config/ConfigValues.java | 2 +- .../config/ConfigurationHandler.java | 2 +- .../config/GuiConfiguration.java | 2 +- .../actuallyadditions/config/GuiFactory.java | 2 +- .../config/values/ConfigBoolValues.java | 2 +- .../config/values/ConfigCrafting.java | 2 +- .../config/values/ConfigFloatValues.java | 2 +- .../config/values/ConfigIntValues.java | 2 +- .../crafting/BlockCrafting.java | 2 +- .../crafting/CrusherCrafting.java | 2 +- .../crafting/FoodCrafting.java | 2 +- .../crafting/InitCrafting.java | 2 +- .../crafting/ItemCrafting.java | 2 +- .../crafting/MiscCrafting.java | 2 +- .../crafting/ToolCrafting.java | 2 +- .../creative/CreativeTab.java | 2 +- .../event/BucketFillEvent.java | 2 +- .../actuallyadditions/event/CraftEvent.java | 2 +- .../event/EntityLivingEvent.java | 2 +- .../actuallyadditions/event/InitEvents.java | 3 +- .../event/LivingDropEvent.java | 2 +- .../actuallyadditions/event/LogoutEvent.java | 2 +- .../actuallyadditions/event/PickupEvent.java | 2 +- .../actuallyadditions/event/SmeltEvent.java | 2 +- .../actuallyadditions/event/TooltipEvent.java | 2 +- .../event/WorldDecorationEvent.java | 2 +- .../event/WorldLoadingEvents.java | 2 +- .../actuallyadditions/gen/InitVillager.java | 2 +- .../gen/JamVillagerTradeHandler.java | 2 +- .../ellpeck/actuallyadditions/gen/OreGen.java | 2 +- .../gen/VillageComponentCustomCropField.java | 2 +- .../gen/VillageComponentJamHouse.java | 2 +- .../gen/VillageCustomCropFieldHandler.java | 2 +- .../gen/VillageJamHouseHandler.java | 2 +- .../inventory/ContainerBreaker.java | 2 +- .../inventory/ContainerCanolaPress.java | 2 +- .../inventory/ContainerCoalGenerator.java | 2 +- .../inventory/ContainerCoffeeMachine.java | 2 +- .../inventory/ContainerCrafter.java | 2 +- .../ContainerDirectionalBreaker.java | 2 +- .../inventory/ContainerDrill.java | 2 +- .../inventory/ContainerDropper.java | 2 +- .../inventory/ContainerEnergizer.java | 2 +- .../inventory/ContainerEnervator.java | 2 +- .../inventory/ContainerFeeder.java | 2 +- .../inventory/ContainerFermentingBarrel.java | 2 +- .../inventory/ContainerFluidCollector.java | 2 +- .../inventory/ContainerFurnaceDouble.java | 2 +- .../inventory/ContainerGiantChest.java | 2 +- .../inventory/ContainerGrinder.java | 2 +- .../inventory/ContainerInputter.java | 2 +- .../inventory/ContainerOilGenerator.java | 2 +- .../inventory/ContainerPhantomPlacer.java | 2 +- .../inventory/ContainerRangedCollector.java | 2 +- .../inventory/ContainerRepairer.java | 2 +- .../inventory/ContainerSmileyCloud.java | 2 +- .../inventory/ContainerXPSolidifier.java | 2 +- .../inventory/GuiHandler.java | 2 +- .../inventory/gui/GuiBreaker.java | 2 +- .../inventory/gui/GuiCanolaPress.java | 2 +- .../inventory/gui/GuiCoalGenerator.java | 2 +- .../inventory/gui/GuiCoffeeMachine.java | 2 +- .../inventory/gui/GuiCrafter.java | 2 +- .../inventory/gui/GuiDirectionalBreaker.java | 2 +- .../inventory/gui/GuiDrill.java | 2 +- .../inventory/gui/GuiDropper.java | 2 +- .../inventory/gui/GuiEnergizer.java | 2 +- .../inventory/gui/GuiEnervator.java | 2 +- .../inventory/gui/GuiFeeder.java | 2 +- .../inventory/gui/GuiFermentingBarrel.java | 2 +- .../inventory/gui/GuiFluidCollector.java | 2 +- .../inventory/gui/GuiFurnaceDouble.java | 2 +- .../inventory/gui/GuiGiantChest.java | 2 +- .../inventory/gui/GuiGrinder.java | 2 +- .../inventory/gui/GuiInputter.java | 2 +- .../inventory/gui/GuiOilGenerator.java | 2 +- .../inventory/gui/GuiPhantomPlacer.java | 2 +- .../inventory/gui/GuiRangedCollector.java | 2 +- .../inventory/gui/GuiRepairer.java | 2 +- .../inventory/gui/GuiSmileyCloud.java | 2 +- .../inventory/gui/GuiXPSolidifier.java | 2 +- .../inventory/slot/SlotFilter.java | 2 +- .../inventory/slot/SlotImmovable.java | 2 +- .../inventory/slot/SlotOutput.java | 2 +- .../items/InitForeignPaxels.java | 2 +- .../actuallyadditions/items/InitItems.java | 2 +- .../actuallyadditions/items/ItemArmorAA.java | 2 +- .../actuallyadditions/items/ItemBattery.java | 2 +- .../items/ItemBlockBase.java | 2 +- .../actuallyadditions/items/ItemBooklet.java | 2 +- .../actuallyadditions/items/ItemBucketAA.java | 2 +- .../items/ItemChestToCrateUpgrade.java | 2 +- .../actuallyadditions/items/ItemCoffee.java | 2 +- .../items/ItemCoffeeBean.java | 2 +- .../items/ItemCrafterOnAStick.java | 2 +- .../actuallyadditions/items/ItemDrill.java | 2 +- .../items/ItemDrillUpgrade.java | 2 +- .../actuallyadditions/items/ItemDust.java | 2 +- .../actuallyadditions/items/ItemEnergy.java | 2 +- .../items/ItemFertilizer.java | 2 +- .../actuallyadditions/items/ItemFoods.java | 2 +- .../items/ItemGrowthRing.java | 2 +- .../items/ItemHairyBall.java | 2 +- .../actuallyadditions/items/ItemJams.java | 2 +- .../actuallyadditions/items/ItemKnife.java | 2 +- .../items/ItemLaserWrench.java | 2 +- .../items/ItemLeafBlower.java | 2 +- .../items/ItemMagnetRing.java | 2 +- .../actuallyadditions/items/ItemMisc.java | 2 +- .../items/ItemPhantomConnector.java | 2 +- .../items/ItemPotionRing.java | 2 +- .../items/ItemResonantRice.java | 2 +- .../actuallyadditions/items/ItemSeed.java | 2 +- .../items/ItemSpecialDrop.java | 2 +- .../items/ItemTeleStaff.java | 2 +- .../items/ItemWaterRemovalRing.java | 2 +- .../items/ItemWingsOfTheBats.java | 2 +- .../items/metalists/TheDusts.java | 2 +- .../items/metalists/TheFoods.java | 2 +- .../items/metalists/TheJams.java | 2 +- .../items/metalists/TheMiscItems.java | 2 +- .../items/metalists/ThePotionRings.java | 2 +- .../items/metalists/TheSpecialDrops.java | 2 +- .../items/tools/ItemAllToolAA.java | 2 +- .../items/tools/ItemAxeAA.java | 2 +- .../items/tools/ItemHoeAA.java | 2 +- .../items/tools/ItemPickaxeAA.java | 2 +- .../items/tools/ItemShovelAA.java | 2 +- .../items/tools/ItemSwordAA.java | 2 +- .../material/InitArmorMaterials.java | 2 +- .../material/InitToolMaterials.java | 2 +- .../misc/DispenserHandlerEmptyBucket.java | 2 +- .../misc/DispenserHandlerFertilize.java | 2 +- .../misc/DispenserHandlerFillBucket.java | 2 +- .../misc/LaserRelayConnectionHandler.java | 2 +- .../actuallyadditions/misc/WorldData.java | 2 +- .../misc/cloud/ISmileyCloudEasterEgg.java | 2 +- .../misc/cloud/SmileyCloudEasterEggs.java | 2 +- .../special}/RenderPlayerEventAA.java | 5 +-- .../misc/{ => special}/RenderSpecial.java | 4 +- .../misc/special/ThreadSpecialFetcher.java | 43 +++++++++++++++++++ .../nei/BookletInfoRecipeHandler.java | 2 +- .../nei/CoffeeMachineRecipeHandler.java | 2 +- .../nei/CompostRecipeHandler.java | 2 +- .../nei/CrusherRecipeHandler.java | 2 +- .../nei/FurnaceDoubleRecipeHandler.java | 2 +- .../nei/HairyBallRecipeHandler.java | 2 +- .../nei/INeiRecipeHandler.java | 2 +- .../nei/NEIActuallyAdditionsConfig.java | 2 +- .../nei/NeiScreenEvents.java | 2 +- .../nei/TreasureChestRecipeHandler.java | 2 +- .../network/PacketHandler.java | 2 +- .../network/gui/IButtonReactor.java | 2 +- .../network/gui/INumberReactor.java | 2 +- .../network/gui/IStringReactor.java | 2 +- .../network/gui/PacketGuiButton.java | 2 +- .../network/gui/PacketGuiNumber.java | 2 +- .../network/gui/PacketGuiString.java | 2 +- .../actuallyadditions/ore/InitOreDict.java | 2 +- .../actuallyadditions/proxy/ClientProxy.java | 2 +- .../actuallyadditions/proxy/IProxy.java | 2 +- .../actuallyadditions/proxy/ServerProxy.java | 2 +- .../recipe/CrusherRecipeRegistry.java | 2 +- .../actuallyadditions/recipe/FuelHandler.java | 2 +- .../recipe/HairyBallHandler.java | 2 +- .../recipe/TreasureChestHandler.java | 2 +- .../actuallyadditions/tile/IPhantomTile.java | 2 +- .../tile/TileEntityBase.java | 2 +- .../tile/TileEntityBreaker.java | 2 +- .../tile/TileEntityCanolaPress.java | 2 +- .../tile/TileEntityCoalGenerator.java | 2 +- .../tile/TileEntityCoffeeMachine.java | 2 +- .../tile/TileEntityCompost.java | 2 +- .../tile/TileEntityDirectionalBreaker.java | 2 +- .../tile/TileEntityDropper.java | 2 +- .../tile/TileEntityEnergizer.java | 2 +- .../tile/TileEntityEnervator.java | 2 +- .../tile/TileEntityFeeder.java | 2 +- .../tile/TileEntityFermentingBarrel.java | 2 +- .../tile/TileEntityFishingNet.java | 2 +- .../tile/TileEntityFluidCollector.java | 2 +- .../tile/TileEntityFurnaceDouble.java | 2 +- .../tile/TileEntityFurnaceSolar.java | 2 +- .../tile/TileEntityGiantChest.java | 2 +- .../tile/TileEntityGreenhouseGlass.java | 2 +- .../tile/TileEntityGrinder.java | 2 +- .../tile/TileEntityHeatCollector.java | 2 +- .../tile/TileEntityInputter.java | 2 +- .../tile/TileEntityInventoryBase.java | 2 +- .../tile/TileEntityItemRepairer.java | 2 +- .../tile/TileEntityLaserRelay.java | 2 +- .../tile/TileEntityLavaFactoryController.java | 2 +- .../tile/TileEntityLeafGenerator.java | 2 +- .../tile/TileEntityOilGenerator.java | 2 +- .../tile/TileEntityPhantomBooster.java | 2 +- .../tile/TileEntityPhantomEnergyface.java | 2 +- .../tile/TileEntityPhantomItemface.java | 2 +- .../tile/TileEntityPhantomLiquiface.java | 2 +- .../tile/TileEntityPhantomPlacer.java | 2 +- .../tile/TileEntityPhantomface.java | 2 +- .../tile/TileEntityRangedCollector.java | 2 +- .../tile/TileEntitySmileyCloud.java | 2 +- .../tile/TileEntityXPSolidifier.java | 2 +- .../update/ThreadUpdateChecker.java | 2 +- .../update/UpdateChecker.java | 2 +- .../update/UpdateCheckerClientNotifier.java | 2 +- .../actuallyadditions/util/AssetUtil.java | 2 +- .../actuallyadditions/util/BlockUtil.java | 2 +- .../actuallyadditions/util/CompatUtil.java | 2 +- .../util/FakePlayerUtil.java | 2 +- .../util/IActAddItemOrBlock.java | 2 +- .../actuallyadditions/util/ItemUtil.java | 2 +- .../actuallyadditions/util/KeyUtil.java | 2 +- .../actuallyadditions/util/ModUtil.java | 2 +- .../actuallyadditions/util/StringUtil.java | 2 +- .../ellpeck/actuallyadditions/util/Util.java | 2 +- .../actuallyadditions/util/WorldPos.java | 2 +- .../actuallyadditions/util/WorldUtil.java | 2 +- .../util/playerdata/PersistentClientData.java | 4 +- .../util/playerdata/PersistentServerData.java | 2 +- .../waila/WailaDataProvider.java | 2 +- 298 files changed, 343 insertions(+), 300 deletions(-) create mode 100644 specialPeopleStuff.properties rename src/main/java/ellpeck/actuallyadditions/{event => misc/special}/RenderPlayerEventAA.java (95%) rename src/main/java/ellpeck/actuallyadditions/misc/{ => special}/RenderSpecial.java (98%) create mode 100644 src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java diff --git a/specialPeopleStuff.properties b/specialPeopleStuff.properties new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java index e3e0b8690..f2057b331 100644 --- a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java +++ b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions; diff --git a/src/main/java/ellpeck/actuallyadditions/achievement/InitAchievements.java b/src/main/java/ellpeck/actuallyadditions/achievement/InitAchievements.java index d9c62d1d5..c2397bae7 100644 --- a/src/main/java/ellpeck/actuallyadditions/achievement/InitAchievements.java +++ b/src/main/java/ellpeck/actuallyadditions/achievement/InitAchievements.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.achievement; diff --git a/src/main/java/ellpeck/actuallyadditions/achievement/TheAchievements.java b/src/main/java/ellpeck/actuallyadditions/achievement/TheAchievements.java index 7002a6ba9..267639438 100644 --- a/src/main/java/ellpeck/actuallyadditions/achievement/TheAchievements.java +++ b/src/main/java/ellpeck/actuallyadditions/achievement/TheAchievements.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.achievement; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java index 0ce77d71e..482363b35 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java index 910a43791..63067a077 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCanolaPress.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java index aabe11828..1dc7fe1e3 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoalGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java index c2c6d8ed1..8db6d7037 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCoffeeMachine.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java index d254c4f4f..5d0fb0979 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockColoredLamp.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java index 4727be853..ea43954af 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockCompost.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockContainerBase.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockContainerBase.java index 53e2304bc..ba9713482 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockContainerBase.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockContainerBase.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java index badd8980b..2af149383 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDirectionalBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java index 0ddcfe509..1a5a14c6e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockDropper.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java index 45e0319ca..9152cf5da 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockEnergizer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java index 7aaef3fbc..f55e9216d 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFeeder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java index 1f81b3b96..e8f96cebb 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFermentingBarrel.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java index 0845f3981..08b17163f 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFishingNet.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java index 1b331c073..841080045 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java index bf9517eeb..d5dfce51a 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFluidFlowing.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java index eee7c2878..d50a18404 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceDouble.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java index f2d0a9d81..2cab0b504 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockFurnaceSolar.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java index 125403510..e7cc02576 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGeneric.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java index 486eb1be3..f018c2c54 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGiantChest.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java index 7eca03e4f..264278130 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGreenhouseGlass.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java index e0a401b32..169942c4e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockGrinder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java index 8869ea63c..92651762b 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockHeatCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java index c385a85e1..55a718ec0 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockInputter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java index 068276a25..68e45cfff 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockItemRepairer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java index cb5b04752..c201ea80f 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLampPowerer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java index ab5545c1a..c93dfbd3b 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLaserRelay.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java index 43eaf9d52..feaf96ffb 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLavaFactoryController.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java index 5a06cda2d..a1e18ebed 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockLeafGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java index 665560f3c..0735686be 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockMisc.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java index 5fba34347..f9a4df65a 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockOilGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java index fc557c1a3..8c3810085 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantom.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java index fde34920c..43bb9bdc3 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPhantomBooster.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java index 088321f3d..9df6c4dea 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockPlant.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java index d321f5046..fdc4f7a8a 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockRangedCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java index ab1ec868e..5ca203db8 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSlabs.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java index fdc89a61b..2f2634c0a 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockSmileyCloud.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockStair.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockStair.java index 00b6d8b92..64b407b8f 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockStair.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockStair.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java index 9e6a62e98..8bdd8e58e 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockTreasureChest.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java index 51a09a3a0..61abd430d 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockWildPlant.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java index 036541aa3..c5de4fa8a 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockXPSolidifier.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/FluidAA.java b/src/main/java/ellpeck/actuallyadditions/blocks/FluidAA.java index b68a681c6..e31ac0dbb 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/FluidAA.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/FluidAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java index dda2c9499..7b99a2cef 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheColoredLampColors.java b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheColoredLampColors.java index 7d7f05761..b359b322d 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheColoredLampColors.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheColoredLampColors.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java index 4a1031e0d..b54e14120 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheMiscBlocks.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheWildPlants.java b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheWildPlants.java index b8d00b392..3bf34a309 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheWildPlants.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/metalists/TheWildPlants.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelBaseAA.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelBaseAA.java index 0b547d633..c71be274d 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelBaseAA.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelBaseAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCoffeeMachine.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCoffeeMachine.java index 39ae29d95..58eae3b66 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCoffeeMachine.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCoffeeMachine.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCompost.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCompost.java index d40eb2443..ac81682d5 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCompost.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelCompost.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFishingNet.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFishingNet.java index bd1a78c98..db3371583 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFishingNet.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFishingNet.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFurnaceSolar.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFurnaceSolar.java index 1754511a1..fdd0d09f1 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFurnaceSolar.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelFurnaceSolar.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java index 063fe66c7..0c53a6906 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelLaserRelay.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelPhantomBooster.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelPhantomBooster.java index dbe6fba6a..402ba8648 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelPhantomBooster.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelPhantomBooster.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelSmileyCloud.java index f8c29fc60..944b7aea4 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/ModelSmileyCloud.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderItems.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderItems.java index 266c1de80..9aa261bd8 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderItems.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderItems.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java index b80383699..25b4036d1 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderLaserRelay.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderSmileyCloud.java index 61156127f..80382ab7a 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderSmileyCloud.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderTileEntity.java b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderTileEntity.java index 2e4950f17..3ca24fa80 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderTileEntity.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/render/RenderTileEntity.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.blocks.render; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java b/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java index 3399dbae1..64878d8f3 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapterCoffee.java b/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapterCoffee.java index 8014eed17..9e7ef8677 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapterCoffee.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/BookletChapterCoffee.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/BookletEntryAllSearch.java b/src/main/java/ellpeck/actuallyadditions/booklet/BookletEntryAllSearch.java index df900dcc1..41152f432 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/BookletEntryAllSearch.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/BookletEntryAllSearch.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java b/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java index 3ad7bd543..493df8d20 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/BookletIndexEntry.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiAAAchievements.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiAAAchievements.java index 42476c136..ee8470a14 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiAAAchievements.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiAAAchievements.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index 128e0b935..62478f542 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index b1fb1ab77..bcc5be2d3 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java index ae5d77cdc..a19d97253 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/BookletPage.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet.page; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java index 9baa889d8..22bb9301d 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCoffeeRecipe.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet.page; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java index 61d350089..ca27656b3 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet.page; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java index a183a4001..02aad62f3 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrusherRecipe.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet.page; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java index d6cf9c55d..bc1e36b25 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageFurnace.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet.page; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java index 6052c40c8..fbd083f87 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PagePicture.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet.page; diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java index 5055c7828..d6021c5d9 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageTextOnly.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.booklet.page; diff --git a/src/main/java/ellpeck/actuallyadditions/communication/InterModCommunications.java b/src/main/java/ellpeck/actuallyadditions/communication/InterModCommunications.java index db8484443..af4ecc7c7 100644 --- a/src/main/java/ellpeck/actuallyadditions/communication/InterModCommunications.java +++ b/src/main/java/ellpeck/actuallyadditions/communication/InterModCommunications.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.communication; diff --git a/src/main/java/ellpeck/actuallyadditions/config/ConfigCategories.java b/src/main/java/ellpeck/actuallyadditions/config/ConfigCategories.java index 91d96b874..0be6bb9dd 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/ConfigCategories.java +++ b/src/main/java/ellpeck/actuallyadditions/config/ConfigCategories.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config; diff --git a/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java b/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java index ba5b1eb2f..43f7279e7 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/ConfigValues.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config; diff --git a/src/main/java/ellpeck/actuallyadditions/config/ConfigurationHandler.java b/src/main/java/ellpeck/actuallyadditions/config/ConfigurationHandler.java index 65947c7ce..56cbc9169 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/ConfigurationHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/config/ConfigurationHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config; diff --git a/src/main/java/ellpeck/actuallyadditions/config/GuiConfiguration.java b/src/main/java/ellpeck/actuallyadditions/config/GuiConfiguration.java index 414c09755..747283569 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/GuiConfiguration.java +++ b/src/main/java/ellpeck/actuallyadditions/config/GuiConfiguration.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config; diff --git a/src/main/java/ellpeck/actuallyadditions/config/GuiFactory.java b/src/main/java/ellpeck/actuallyadditions/config/GuiFactory.java index b351661a1..a5de8a524 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/GuiFactory.java +++ b/src/main/java/ellpeck/actuallyadditions/config/GuiFactory.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config; diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java index a5af772d6..f54d098d7 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config.values; diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java index 00ff8c61c..b8423fdf9 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config.values; diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigFloatValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigFloatValues.java index 7d065ddf7..2fca4bba2 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigFloatValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigFloatValues.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config.values; diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java index a736420ee..ff05ae90b 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.config.values; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java index 4187f5fb8..f0f83970d 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/BlockCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.crafting; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java index db98cd795..daec1de77 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/CrusherCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.crafting; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java index bd9a50fbf..64f94d695 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/FoodCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.crafting; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/InitCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/InitCrafting.java index fddc245b8..924c68170 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/InitCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/InitCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.crafting; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java index 0836fa0d5..9b1c483dd 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.crafting; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/MiscCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/MiscCrafting.java index 1033da67f..31dfd10f3 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/MiscCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/MiscCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.crafting; diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/ToolCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/ToolCrafting.java index 63d1c538d..8ce69b21a 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/ToolCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/ToolCrafting.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.crafting; diff --git a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java index 58a6bb19a..93926a421 100644 --- a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java +++ b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.creative; diff --git a/src/main/java/ellpeck/actuallyadditions/event/BucketFillEvent.java b/src/main/java/ellpeck/actuallyadditions/event/BucketFillEvent.java index c19ab4c71..391bd84ef 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/BucketFillEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/BucketFillEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/CraftEvent.java b/src/main/java/ellpeck/actuallyadditions/event/CraftEvent.java index 42aba2872..2e6c6ae88 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/CraftEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/CraftEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/EntityLivingEvent.java b/src/main/java/ellpeck/actuallyadditions/event/EntityLivingEvent.java index fad4a3934..29e5d1b52 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/EntityLivingEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/EntityLivingEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java index 02c4e4c50..82d9b0c42 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java +++ b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java @@ -5,13 +5,14 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; import cpw.mods.fml.common.Loader; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; +import ellpeck.actuallyadditions.misc.special.RenderPlayerEventAA; import ellpeck.actuallyadditions.nei.NeiScreenEvents; import ellpeck.actuallyadditions.update.UpdateCheckerClientNotifier; import ellpeck.actuallyadditions.util.ModUtil; diff --git a/src/main/java/ellpeck/actuallyadditions/event/LivingDropEvent.java b/src/main/java/ellpeck/actuallyadditions/event/LivingDropEvent.java index abcd14501..dacd62cf1 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/LivingDropEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/LivingDropEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/LogoutEvent.java b/src/main/java/ellpeck/actuallyadditions/event/LogoutEvent.java index c292a10c1..68e83d1b1 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/LogoutEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/LogoutEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/PickupEvent.java b/src/main/java/ellpeck/actuallyadditions/event/PickupEvent.java index acfdf15c2..7776b6367 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/PickupEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/PickupEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/SmeltEvent.java b/src/main/java/ellpeck/actuallyadditions/event/SmeltEvent.java index 531128732..e87e943a5 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/SmeltEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/SmeltEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/TooltipEvent.java b/src/main/java/ellpeck/actuallyadditions/event/TooltipEvent.java index c0112d142..c0688a9d3 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/TooltipEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/TooltipEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java b/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java index 21bc2abf8..d5cb3d98f 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java b/src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java index abc923b7b..a7c6ff860 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java +++ b/src/main/java/ellpeck/actuallyadditions/event/WorldLoadingEvents.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.event; diff --git a/src/main/java/ellpeck/actuallyadditions/gen/InitVillager.java b/src/main/java/ellpeck/actuallyadditions/gen/InitVillager.java index 5dce6d86b..c2a0ca39d 100644 --- a/src/main/java/ellpeck/actuallyadditions/gen/InitVillager.java +++ b/src/main/java/ellpeck/actuallyadditions/gen/InitVillager.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.gen; diff --git a/src/main/java/ellpeck/actuallyadditions/gen/JamVillagerTradeHandler.java b/src/main/java/ellpeck/actuallyadditions/gen/JamVillagerTradeHandler.java index b414c9e0a..03c0d152b 100644 --- a/src/main/java/ellpeck/actuallyadditions/gen/JamVillagerTradeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/gen/JamVillagerTradeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.gen; diff --git a/src/main/java/ellpeck/actuallyadditions/gen/OreGen.java b/src/main/java/ellpeck/actuallyadditions/gen/OreGen.java index b505b6a4a..7a268e8c6 100644 --- a/src/main/java/ellpeck/actuallyadditions/gen/OreGen.java +++ b/src/main/java/ellpeck/actuallyadditions/gen/OreGen.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.gen; diff --git a/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentCustomCropField.java b/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentCustomCropField.java index 5718eb2a0..a2629a1cb 100644 --- a/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentCustomCropField.java +++ b/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentCustomCropField.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.gen; diff --git a/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentJamHouse.java b/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentJamHouse.java index 31bddc791..85d45101b 100644 --- a/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentJamHouse.java +++ b/src/main/java/ellpeck/actuallyadditions/gen/VillageComponentJamHouse.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.gen; diff --git a/src/main/java/ellpeck/actuallyadditions/gen/VillageCustomCropFieldHandler.java b/src/main/java/ellpeck/actuallyadditions/gen/VillageCustomCropFieldHandler.java index 6be4e42d6..a03b53e94 100644 --- a/src/main/java/ellpeck/actuallyadditions/gen/VillageCustomCropFieldHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/gen/VillageCustomCropFieldHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.gen; diff --git a/src/main/java/ellpeck/actuallyadditions/gen/VillageJamHouseHandler.java b/src/main/java/ellpeck/actuallyadditions/gen/VillageJamHouseHandler.java index 00552a653..83e3f0f59 100644 --- a/src/main/java/ellpeck/actuallyadditions/gen/VillageJamHouseHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/gen/VillageJamHouseHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.gen; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerBreaker.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerBreaker.java index a02841045..989104924 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCanolaPress.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCanolaPress.java index d656642af..2c8eca8a9 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCanolaPress.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCanolaPress.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoalGenerator.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoalGenerator.java index a512c3476..f81bd2c16 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoalGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoalGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoffeeMachine.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoffeeMachine.java index 04b1d4345..0eecd9c60 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoffeeMachine.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCoffeeMachine.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCrafter.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCrafter.java index 21f0edc73..35757373a 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCrafter.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerCrafter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDirectionalBreaker.java index 859660998..910fb0bcb 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDirectionalBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDrill.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDrill.java index 70c6a92b5..bc8fa673a 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDrill.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDrill.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDropper.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDropper.java index 4b2434faf..c84f29f30 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDropper.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerDropper.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnergizer.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnergizer.java index 4f9a73f71..977cb4f16 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnergizer.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnergizer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnervator.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnervator.java index cd00b3586..464b2a4e5 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnervator.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerEnervator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFeeder.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFeeder.java index c80aa3719..2c2fae4f8 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFeeder.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFeeder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFermentingBarrel.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFermentingBarrel.java index 5c8eac2c2..631a067a3 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFermentingBarrel.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFermentingBarrel.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFluidCollector.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFluidCollector.java index 8b00bd168..9c0b2df9b 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFluidCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFluidCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFurnaceDouble.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFurnaceDouble.java index 78cf29182..203852b71 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFurnaceDouble.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerFurnaceDouble.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGiantChest.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGiantChest.java index b22544c21..3307a5833 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGiantChest.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGiantChest.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGrinder.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGrinder.java index 550a9bc8f..f8a5e805b 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGrinder.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerGrinder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerInputter.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerInputter.java index 16222e833..2c1b14286 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerInputter.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerInputter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerOilGenerator.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerOilGenerator.java index 42f660411..697da8a7c 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerOilGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerOilGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerPhantomPlacer.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerPhantomPlacer.java index 4b31aa261..63dbbe73f 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerPhantomPlacer.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerPhantomPlacer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRangedCollector.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRangedCollector.java index 3677e0297..5846d0d55 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRangedCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRangedCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRepairer.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRepairer.java index ac23ab05c..217f5b006 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRepairer.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerRepairer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerSmileyCloud.java index bb2d00993..ae88ff48c 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerSmileyCloud.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerXPSolidifier.java b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerXPSolidifier.java index 3de6f8969..2d35e13a9 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/ContainerXPSolidifier.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/ContainerXPSolidifier.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java b/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java index b05fecb81..474f4c5df 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/GuiHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiBreaker.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiBreaker.java index dced1f3ca..890a1da0b 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCanolaPress.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCanolaPress.java index e494349d0..b77b975a3 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCanolaPress.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCanolaPress.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoalGenerator.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoalGenerator.java index 2f88d52dc..426a87009 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoalGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoalGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoffeeMachine.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoffeeMachine.java index 9d9ef0e29..838db2da1 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoffeeMachine.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCoffeeMachine.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCrafter.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCrafter.java index fb2b0c22d..ca758388e 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCrafter.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiCrafter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDirectionalBreaker.java index af17ac28a..43b7696b7 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDirectionalBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDrill.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDrill.java index e4e1a6c58..3922d80c7 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDrill.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDrill.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDropper.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDropper.java index d346981cd..9ddd6c702 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDropper.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiDropper.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnergizer.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnergizer.java index 8523a76ae..389347666 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnergizer.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnergizer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnervator.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnervator.java index 3da69fb75..2128a622c 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnervator.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiEnervator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFeeder.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFeeder.java index ab39d61d3..1aedee295 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFeeder.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFeeder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFermentingBarrel.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFermentingBarrel.java index a30f15b5f..5c219aef8 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFermentingBarrel.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFermentingBarrel.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFluidCollector.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFluidCollector.java index 375515255..01a03bc10 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFluidCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFluidCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFurnaceDouble.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFurnaceDouble.java index bb8810ec6..8f44bf966 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFurnaceDouble.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiFurnaceDouble.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGiantChest.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGiantChest.java index c7c1c9c53..268bc8812 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGiantChest.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGiantChest.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGrinder.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGrinder.java index a0549f19c..ee6141e50 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGrinder.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiGrinder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiInputter.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiInputter.java index 7992081d8..c989df169 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiInputter.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiInputter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOilGenerator.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOilGenerator.java index fac78a7b0..f4f8f9768 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOilGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiOilGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiPhantomPlacer.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiPhantomPlacer.java index e2e8c1b33..619547e52 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiPhantomPlacer.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiPhantomPlacer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRangedCollector.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRangedCollector.java index 639b97c75..204225d32 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRangedCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRangedCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRepairer.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRepairer.java index 46e8d7882..e33c3ce58 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRepairer.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiRepairer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiSmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiSmileyCloud.java index abefd386b..60ab7db3d 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiSmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiSmileyCloud.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiXPSolidifier.java b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiXPSolidifier.java index dd15dfee2..c0dc82c07 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiXPSolidifier.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/gui/GuiXPSolidifier.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotFilter.java b/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotFilter.java index 4a3d5a1f7..d36c31b76 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotFilter.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotFilter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.slot; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotImmovable.java b/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotImmovable.java index 19401f441..edbedaf97 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotImmovable.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotImmovable.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.slot; diff --git a/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotOutput.java b/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotOutput.java index 54f5be088..54e0599a7 100644 --- a/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotOutput.java +++ b/src/main/java/ellpeck/actuallyadditions/inventory/slot/SlotOutput.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.inventory.slot; diff --git a/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java b/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java index 47d3b927d..9c6052d92 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java +++ b/src/main/java/ellpeck/actuallyadditions/items/InitForeignPaxels.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/InitItems.java b/src/main/java/ellpeck/actuallyadditions/items/InitItems.java index 4614e6b86..e0fc3460d 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/InitItems.java +++ b/src/main/java/ellpeck/actuallyadditions/items/InitItems.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java b/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java index a7f9d1077..c5f1228a0 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemArmorAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java b/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java index 6c4850cbe..342640a66 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemBattery.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemBlockBase.java b/src/main/java/ellpeck/actuallyadditions/items/ItemBlockBase.java index 42ad445ce..61d841bab 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemBlockBase.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemBlockBase.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemBooklet.java b/src/main/java/ellpeck/actuallyadditions/items/ItemBooklet.java index 4bc179d34..dc828a4e6 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemBooklet.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java b/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java index 08ceb4c10..c96d92e63 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemBucketAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java b/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java index f984d0886..6394ca3f8 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemChestToCrateUpgrade.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java b/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java index 1b9c9e3e6..5ec9b1070 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemCoffee.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemCoffeeBean.java b/src/main/java/ellpeck/actuallyadditions/items/ItemCoffeeBean.java index 77273a62c..d319cf326 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemCoffeeBean.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemCoffeeBean.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java b/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java index ca4692a84..ec6e38d4c 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemCrafterOnAStick.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java b/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java index 2fa3df505..fda8b3ff9 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemDrill.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java b/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java index 8614f6e1e..1d5aa5238 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemDrillUpgrade.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java b/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java index 1925aed89..ac8d40333 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemDust.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemEnergy.java b/src/main/java/ellpeck/actuallyadditions/items/ItemEnergy.java index 9d37ae944..c29897bb2 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemEnergy.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemEnergy.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java b/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java index 47abf04d0..2e56ccf43 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemFertilizer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java b/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java index 369c88874..0c4f8258e 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemFoods.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java index d515ff346..a938715a6 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemGrowthRing.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java b/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java index 4b5349052..31a0a3dda 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemHairyBall.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java b/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java index ad7b5c851..0d50b38dd 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemJams.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java b/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java index 26f54bafc..9d1c6e853 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemKnife.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java index ee3d3f1e2..38f686df0 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLaserWrench.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java b/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java index 5418e8309..57a1c5831 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemLeafBlower.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java index 510eca331..44d7ae55e 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemMagnetRing.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java b/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java index eecaa168a..1fc0305d6 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemMisc.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java index f49c715dc..1261312de 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPhantomConnector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java index 905785632..e1dd906ef 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemPotionRing.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java b/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java index b6b7f82c6..8bb7f9629 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemResonantRice.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java b/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java index 59ab0ddbe..8d059a9fc 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemSeed.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java b/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java index b7e0d088c..797b8fc04 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemSpecialDrop.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java b/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java index 20964ad39..77daaf80d 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemTeleStaff.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java b/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java index 398ca3a22..ddc9c3adc 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemWaterRemovalRing.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java b/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java index 4bb255738..8b5e9919a 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java +++ b/src/main/java/ellpeck/actuallyadditions/items/ItemWingsOfTheBats.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items; diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheDusts.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheDusts.java index 01ff4a5fb..8533cc6a0 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheDusts.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheDusts.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java index 7b6a703d6..645425d99 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheFoods.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheJams.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheJams.java index e7d239946..1f3756df9 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheJams.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheJams.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java index 4c82c69de..1ed222a19 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/ThePotionRings.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/ThePotionRings.java index 0a60fd404..a8d701f31 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/ThePotionRings.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/ThePotionRings.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheSpecialDrops.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheSpecialDrops.java index 16f26480a..164483248 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheSpecialDrops.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheSpecialDrops.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.metalists; diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java index 69b7a6ee4..854e873a8 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAllToolAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.tools; diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java index 32aa628c8..8362e63f8 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemAxeAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.tools; diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java index d20113a47..b5995960c 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemHoeAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.tools; diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java index fd2c7cef6..493ba88c2 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemPickaxeAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.tools; diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java index eddc57e64..9ea9b3ed1 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemShovelAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.tools; diff --git a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java index 7fb6bdf86..0355fd30b 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java +++ b/src/main/java/ellpeck/actuallyadditions/items/tools/ItemSwordAA.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.items.tools; diff --git a/src/main/java/ellpeck/actuallyadditions/material/InitArmorMaterials.java b/src/main/java/ellpeck/actuallyadditions/material/InitArmorMaterials.java index eda0c5269..d2d1dd67f 100644 --- a/src/main/java/ellpeck/actuallyadditions/material/InitArmorMaterials.java +++ b/src/main/java/ellpeck/actuallyadditions/material/InitArmorMaterials.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.material; diff --git a/src/main/java/ellpeck/actuallyadditions/material/InitToolMaterials.java b/src/main/java/ellpeck/actuallyadditions/material/InitToolMaterials.java index aa3f3990e..72d174db8 100644 --- a/src/main/java/ellpeck/actuallyadditions/material/InitToolMaterials.java +++ b/src/main/java/ellpeck/actuallyadditions/material/InitToolMaterials.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.material; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerEmptyBucket.java b/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerEmptyBucket.java index 4cff8abf1..46bb7be27 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerEmptyBucket.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerEmptyBucket.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.misc; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFertilize.java b/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFertilize.java index 76899678e..4a96736f3 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFertilize.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFertilize.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.misc; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFillBucket.java b/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFillBucket.java index 4fc0e849a..b71c70f12 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFillBucket.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/DispenserHandlerFillBucket.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.misc; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java index 36c8f1330..a8905c153 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/LaserRelayConnectionHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.misc; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java index 4bc7347d8..81c35550b 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.misc; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/cloud/ISmileyCloudEasterEgg.java b/src/main/java/ellpeck/actuallyadditions/misc/cloud/ISmileyCloudEasterEgg.java index d67538782..bb8e531da 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/cloud/ISmileyCloudEasterEgg.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/cloud/ISmileyCloudEasterEgg.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.misc.cloud; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java b/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java index 93adb8e4b..6053cbde9 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.misc.cloud; diff --git a/src/main/java/ellpeck/actuallyadditions/event/RenderPlayerEventAA.java b/src/main/java/ellpeck/actuallyadditions/misc/special/RenderPlayerEventAA.java similarity index 95% rename from src/main/java/ellpeck/actuallyadditions/event/RenderPlayerEventAA.java rename to src/main/java/ellpeck/actuallyadditions/misc/special/RenderPlayerEventAA.java index 0477108e5..bf58b476a 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/RenderPlayerEventAA.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/special/RenderPlayerEventAA.java @@ -5,16 +5,15 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ -package ellpeck.actuallyadditions.event; +package ellpeck.actuallyadditions.misc.special; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import ellpeck.actuallyadditions.blocks.InitBlocks; import ellpeck.actuallyadditions.items.InitItems; -import ellpeck.actuallyadditions.misc.RenderSpecial; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/RenderSpecial.java b/src/main/java/ellpeck/actuallyadditions/misc/special/RenderSpecial.java similarity index 98% rename from src/main/java/ellpeck/actuallyadditions/misc/RenderSpecial.java rename to src/main/java/ellpeck/actuallyadditions/misc/special/RenderSpecial.java index 91afbee47..ec31103b9 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/RenderSpecial.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/special/RenderSpecial.java @@ -5,10 +5,10 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ -package ellpeck.actuallyadditions.misc; +package ellpeck.actuallyadditions.misc.special; import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.util.AssetUtil; diff --git a/src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java b/src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java new file mode 100644 index 000000000..20285b52b --- /dev/null +++ b/src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java @@ -0,0 +1,43 @@ +/* + * This file ("ThreadSpecialFetcher.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015 Ellpeck + */ + +package ellpeck.actuallyadditions.misc.special; + +import ellpeck.actuallyadditions.util.ModUtil; + +import java.io.InputStreamReader; +import java.net.URL; +import java.util.Properties; + +public class ThreadSpecialFetcher extends Thread{ + + private static Properties specialProperties; + + public ThreadSpecialFetcher(){ + this.setName(ModUtil.MOD_ID+" Special Fetcher"); + this.setDaemon(true); + this.start(); + } + + @Override + public void run(){ + ModUtil.LOGGER.info("Fetching Special People Stuff"); + try{ + URL url = new URL("https://raw.githubusercontent.com/Ellpeck/ActuallyAdditions/master/specialPeopleStuff.properties"); + specialProperties = new Properties(); + specialProperties.load(new InputStreamReader(url.openStream())); + + ModUtil.LOGGER.info("Fetching Special People Stuff done!"); + } + catch(Exception e){ + ModUtil.LOGGER.error("Fetching Special People Stuff failed!", e); + } + } +} diff --git a/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java index 5151b9273..fe46a335b 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/BookletInfoRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/CoffeeMachineRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/CoffeeMachineRecipeHandler.java index f0a5a74bd..e3d11ec77 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/CoffeeMachineRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/CoffeeMachineRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/CompostRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/CompostRecipeHandler.java index 986205415..b4bc8488a 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/CompostRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/CompostRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/CrusherRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/CrusherRecipeHandler.java index 97e1fe3f5..85c511f5d 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/CrusherRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/CrusherRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/FurnaceDoubleRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/FurnaceDoubleRecipeHandler.java index 7f0d7626e..6838ce0c3 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/FurnaceDoubleRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/FurnaceDoubleRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/HairyBallRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/HairyBallRecipeHandler.java index f44ba0981..94ed760c6 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/HairyBallRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/HairyBallRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/INeiRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/INeiRecipeHandler.java index 0f3444945..2e642ca3f 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/INeiRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/INeiRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/NEIActuallyAdditionsConfig.java b/src/main/java/ellpeck/actuallyadditions/nei/NEIActuallyAdditionsConfig.java index ac0c24fd4..a81cd005e 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/NEIActuallyAdditionsConfig.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/NEIActuallyAdditionsConfig.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/NeiScreenEvents.java b/src/main/java/ellpeck/actuallyadditions/nei/NeiScreenEvents.java index 56ecb0868..734386c48 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/NeiScreenEvents.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/NeiScreenEvents.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/nei/TreasureChestRecipeHandler.java b/src/main/java/ellpeck/actuallyadditions/nei/TreasureChestRecipeHandler.java index 468e19253..b8e29ecb9 100644 --- a/src/main/java/ellpeck/actuallyadditions/nei/TreasureChestRecipeHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/nei/TreasureChestRecipeHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.nei; diff --git a/src/main/java/ellpeck/actuallyadditions/network/PacketHandler.java b/src/main/java/ellpeck/actuallyadditions/network/PacketHandler.java index 212089ff1..d61dc3f95 100644 --- a/src/main/java/ellpeck/actuallyadditions/network/PacketHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/network/PacketHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.network; diff --git a/src/main/java/ellpeck/actuallyadditions/network/gui/IButtonReactor.java b/src/main/java/ellpeck/actuallyadditions/network/gui/IButtonReactor.java index cc3564fdb..d2d5501ee 100644 --- a/src/main/java/ellpeck/actuallyadditions/network/gui/IButtonReactor.java +++ b/src/main/java/ellpeck/actuallyadditions/network/gui/IButtonReactor.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.network.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/network/gui/INumberReactor.java b/src/main/java/ellpeck/actuallyadditions/network/gui/INumberReactor.java index 9cdd89970..a35c2300a 100644 --- a/src/main/java/ellpeck/actuallyadditions/network/gui/INumberReactor.java +++ b/src/main/java/ellpeck/actuallyadditions/network/gui/INumberReactor.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.network.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/network/gui/IStringReactor.java b/src/main/java/ellpeck/actuallyadditions/network/gui/IStringReactor.java index ee7a37e88..82019cc4e 100644 --- a/src/main/java/ellpeck/actuallyadditions/network/gui/IStringReactor.java +++ b/src/main/java/ellpeck/actuallyadditions/network/gui/IStringReactor.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.network.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiButton.java b/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiButton.java index e2024282e..2cd3d156b 100644 --- a/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiButton.java +++ b/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiButton.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.network.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiNumber.java b/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiNumber.java index 0541eb89b..e3eef77f7 100644 --- a/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiNumber.java +++ b/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiNumber.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.network.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiString.java b/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiString.java index 41dd8d5b4..77f471a46 100644 --- a/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiString.java +++ b/src/main/java/ellpeck/actuallyadditions/network/gui/PacketGuiString.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.network.gui; diff --git a/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java b/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java index 4cd6ef781..7acd2f3a7 100644 --- a/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java +++ b/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.ore; diff --git a/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java b/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java index 504b0c4e8..9ca165670 100644 --- a/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java +++ b/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.proxy; diff --git a/src/main/java/ellpeck/actuallyadditions/proxy/IProxy.java b/src/main/java/ellpeck/actuallyadditions/proxy/IProxy.java index af8b27ff5..b71f8fda4 100644 --- a/src/main/java/ellpeck/actuallyadditions/proxy/IProxy.java +++ b/src/main/java/ellpeck/actuallyadditions/proxy/IProxy.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.proxy; diff --git a/src/main/java/ellpeck/actuallyadditions/proxy/ServerProxy.java b/src/main/java/ellpeck/actuallyadditions/proxy/ServerProxy.java index 69a0cd35b..5d1b2f181 100644 --- a/src/main/java/ellpeck/actuallyadditions/proxy/ServerProxy.java +++ b/src/main/java/ellpeck/actuallyadditions/proxy/ServerProxy.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.proxy; diff --git a/src/main/java/ellpeck/actuallyadditions/recipe/CrusherRecipeRegistry.java b/src/main/java/ellpeck/actuallyadditions/recipe/CrusherRecipeRegistry.java index b1851dceb..a881248af 100644 --- a/src/main/java/ellpeck/actuallyadditions/recipe/CrusherRecipeRegistry.java +++ b/src/main/java/ellpeck/actuallyadditions/recipe/CrusherRecipeRegistry.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.recipe; diff --git a/src/main/java/ellpeck/actuallyadditions/recipe/FuelHandler.java b/src/main/java/ellpeck/actuallyadditions/recipe/FuelHandler.java index e82daf214..9350f9d8f 100644 --- a/src/main/java/ellpeck/actuallyadditions/recipe/FuelHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/recipe/FuelHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.recipe; diff --git a/src/main/java/ellpeck/actuallyadditions/recipe/HairyBallHandler.java b/src/main/java/ellpeck/actuallyadditions/recipe/HairyBallHandler.java index d2cf7604a..ca46805ae 100644 --- a/src/main/java/ellpeck/actuallyadditions/recipe/HairyBallHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/recipe/HairyBallHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.recipe; diff --git a/src/main/java/ellpeck/actuallyadditions/recipe/TreasureChestHandler.java b/src/main/java/ellpeck/actuallyadditions/recipe/TreasureChestHandler.java index d67b0416e..9d1154882 100644 --- a/src/main/java/ellpeck/actuallyadditions/recipe/TreasureChestHandler.java +++ b/src/main/java/ellpeck/actuallyadditions/recipe/TreasureChestHandler.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.recipe; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/IPhantomTile.java b/src/main/java/ellpeck/actuallyadditions/tile/IPhantomTile.java index fc9ba5fca..ddea8f73a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/IPhantomTile.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/IPhantomTile.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java index 0158e56d9..44e6ca79c 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBase.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java index bd82fe3eb..84b737e1d 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCanolaPress.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCanolaPress.java index a8df33e1f..0220e93eb 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCanolaPress.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCanolaPress.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoalGenerator.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoalGenerator.java index 08a11570f..427d7a24a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoalGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoalGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoffeeMachine.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoffeeMachine.java index 47ded202a..2c841c57c 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoffeeMachine.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCoffeeMachine.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCompost.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCompost.java index e39141293..b6343d967 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCompost.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityCompost.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java index 0b912a9ef..157588820 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDirectionalBreaker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDropper.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDropper.java index 9d6322a37..3d0bc293c 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDropper.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityDropper.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnergizer.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnergizer.java index 142ab7657..4f1fd3923 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnergizer.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnergizer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnervator.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnervator.java index 2905b2a97..23cd597fd 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnervator.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityEnervator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFeeder.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFeeder.java index 57bd9406f..ad9a015b7 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFeeder.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFeeder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFermentingBarrel.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFermentingBarrel.java index 4a6580442..c4838ee5f 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFermentingBarrel.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFermentingBarrel.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFishingNet.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFishingNet.java index 62c76d26f..304d89adf 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFishingNet.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFishingNet.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java index 4e5517a78..a3f8c3678 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFluidCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java index 051251e1a..16890f67b 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceDouble.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceSolar.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceSolar.java index 5ddb0c4e2..c0d65883e 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceSolar.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityFurnaceSolar.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGiantChest.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGiantChest.java index 45ffd3adc..6a95d4e33 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGiantChest.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGiantChest.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java index b314bd10f..d2b16df00 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGreenhouseGlass.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java index d42a96f3f..f2b0599ac 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityGrinder.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java index 641e7015a..bf797b11e 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java index b52d0ca85..55ad9230f 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInputter.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInventoryBase.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInventoryBase.java index 71aaaec0a..29d8b4771 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInventoryBase.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityInventoryBase.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityItemRepairer.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityItemRepairer.java index f4177dff0..afd095ffb 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityItemRepairer.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityItemRepairer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java index eb2a6f761..5c32d1eb5 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLaserRelay.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLavaFactoryController.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLavaFactoryController.java index 874e2a725..35b14a33a 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLavaFactoryController.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLavaFactoryController.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java index 2f0af50c4..9028e5fe9 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityLeafGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityOilGenerator.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityOilGenerator.java index 87903ad54..2743d10b1 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityOilGenerator.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityOilGenerator.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomBooster.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomBooster.java index 04e6d7828..a2ce28086 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomBooster.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomBooster.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java index d64e71c05..2d50071fe 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomEnergyface.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java index 7045d08f9..1a2cbdab0 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomItemface.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java index 9ad50d3c7..bb417bdda 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomLiquiface.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java index 2997a3fe4..0c484d001 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomPlacer.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java index 8c868bbb5..cb8919913 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityPhantomface.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityRangedCollector.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityRangedCollector.java index 0f6eb5f4d..b1616dd24 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityRangedCollector.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityRangedCollector.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntitySmileyCloud.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntitySmileyCloud.java index 051600dcf..e37a05da7 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntitySmileyCloud.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntitySmileyCloud.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityXPSolidifier.java b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityXPSolidifier.java index bc7ac4678..9ebd62288 100644 --- a/src/main/java/ellpeck/actuallyadditions/tile/TileEntityXPSolidifier.java +++ b/src/main/java/ellpeck/actuallyadditions/tile/TileEntityXPSolidifier.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.tile; diff --git a/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java b/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java index 1ed25e78c..e2b1cf579 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java +++ b/src/main/java/ellpeck/actuallyadditions/update/ThreadUpdateChecker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.update; diff --git a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java index 5d343e126..4892b0477 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java +++ b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * � 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.update; diff --git a/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java b/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java index db195f0a0..52712dbb5 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java +++ b/src/main/java/ellpeck/actuallyadditions/update/UpdateCheckerClientNotifier.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.update; diff --git a/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java b/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java index f48de8552..61775f029 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/AssetUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java b/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java index 66fa60af2..f91101dac 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/BlockUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/CompatUtil.java b/src/main/java/ellpeck/actuallyadditions/util/CompatUtil.java index 56c905d05..2f1fc1d8a 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/CompatUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/CompatUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java b/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java index 43d352801..f27502bd6 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/FakePlayerUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/IActAddItemOrBlock.java b/src/main/java/ellpeck/actuallyadditions/util/IActAddItemOrBlock.java index 827e96dd1..5be186b19 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/IActAddItemOrBlock.java +++ b/src/main/java/ellpeck/actuallyadditions/util/IActAddItemOrBlock.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java b/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java index 8fc5883b2..01a9f17f5 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/ItemUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/KeyUtil.java b/src/main/java/ellpeck/actuallyadditions/util/KeyUtil.java index 0731cb144..081d6d159 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/KeyUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/KeyUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java index 2b9061e66..1b2f32160 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java b/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java index 5fd5b7220..3086cbd94 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/Util.java b/src/main/java/ellpeck/actuallyadditions/util/Util.java index 9d8c7ec97..a8ad80c7c 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/Util.java +++ b/src/main/java/ellpeck/actuallyadditions/util/Util.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java b/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java index db9e46645..0fa89625a 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldPos.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java index babde58f6..7dfd6bae3 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/WorldUtil.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util; diff --git a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java index 4b132ebaf..58d1d6b72 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java +++ b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentClientData.java @@ -1,11 +1,11 @@ /* * This file ("PersistentClientData.java") is part of the Actually Additions Mod for Minecraft. * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at + * under the Actually Additions License to be found at * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util.playerdata; diff --git a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java index 1eec655d9..83c8088bf 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java +++ b/src/main/java/ellpeck/actuallyadditions/util/playerdata/PersistentServerData.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.util.playerdata; diff --git a/src/main/java/ellpeck/actuallyadditions/waila/WailaDataProvider.java b/src/main/java/ellpeck/actuallyadditions/waila/WailaDataProvider.java index 5e4304fd1..3bda9d2ee 100644 --- a/src/main/java/ellpeck/actuallyadditions/waila/WailaDataProvider.java +++ b/src/main/java/ellpeck/actuallyadditions/waila/WailaDataProvider.java @@ -5,7 +5,7 @@ * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md * View the source code at https://github.com/Ellpeck/ActuallyAdditions * - * © 2015 Ellpeck + * © 2015 Ellpeck */ package ellpeck.actuallyadditions.waila; From 3507961cc0b6a255b40fb1af3085e7dee07ea8bc Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 2 Nov 2015 21:30:05 +0100 Subject: [PATCH 54/73] This is not a test and it doesn't exist. Act if it didn't exist. Shush. --- specialPeopleStuff.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/specialPeopleStuff.properties b/specialPeopleStuff.properties index e69de29bb..bdbd356fd 100644 --- a/specialPeopleStuff.properties +++ b/specialPeopleStuff.properties @@ -0,0 +1 @@ +ellpeck=ActuallyAdditions:itemPhantomConnector \ No newline at end of file From b5e92b10b323bd5ed2ff2612691b58c1bb0fa46b Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 2 Nov 2015 21:38:49 +0100 Subject: [PATCH 55/73] Changed the way Special People Overhead Rendering is handled --- .../actuallyadditions/ActuallyAdditions.java | 2 +- .../actuallyadditions/event/InitEvents.java | 2 - .../misc/special/RenderPlayerEventAA.java | 55 -------------- .../misc/special/RenderSpecial.java | 26 +++---- .../misc/special/SpecialRenderInit.java | 70 ++++++++++++++++++ .../misc/special/ThreadSpecialFetcher.java | 9 +-- .../actuallyadditions/proxy/ClientProxy.java | 3 + .../update/UpdateChecker.java | 2 +- .../textures/specialSquid.png | Bin 2567 -> 0 bytes 9 files changed, 88 insertions(+), 81 deletions(-) delete mode 100644 src/main/java/ellpeck/actuallyadditions/misc/special/RenderPlayerEventAA.java create mode 100644 src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java delete mode 100644 src/main/resources/assets/actuallyadditions/textures/specialSquid.png diff --git a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java index f2057b331..c2e5f35fa 100644 --- a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java +++ b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java @@ -70,7 +70,7 @@ public class ActuallyAdditions{ InitItems.init(); InitVillager.init(); FuelHandler.init(); - new UpdateChecker().init(); + UpdateChecker.init(); proxy.preInit(event); ModUtil.LOGGER.info("PreInitialization Finished."); diff --git a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java index 82d9b0c42..02f6e8426 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java +++ b/src/main/java/ellpeck/actuallyadditions/event/InitEvents.java @@ -12,7 +12,6 @@ package ellpeck.actuallyadditions.event; import cpw.mods.fml.common.Loader; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; -import ellpeck.actuallyadditions.misc.special.RenderPlayerEventAA; import ellpeck.actuallyadditions.nei.NeiScreenEvents; import ellpeck.actuallyadditions.update.UpdateCheckerClientNotifier; import ellpeck.actuallyadditions.util.ModUtil; @@ -38,7 +37,6 @@ public class InitEvents{ public static void initClient(){ Util.registerEvent(new TooltipEvent()); - Util.registerEvent(new RenderPlayerEventAA()); if(Loader.isModLoaded("NotEnoughItems")){ Util.registerEvent(new NeiScreenEvents()); diff --git a/src/main/java/ellpeck/actuallyadditions/misc/special/RenderPlayerEventAA.java b/src/main/java/ellpeck/actuallyadditions/misc/special/RenderPlayerEventAA.java deleted file mode 100644 index bf58b476a..000000000 --- a/src/main/java/ellpeck/actuallyadditions/misc/special/RenderPlayerEventAA.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * This file ("RenderPlayerEventAA.java") is part of the Actually Additions Mod for Minecraft. - * It is created and owned by Ellpeck and distributed - * under the Actually Additions License to be found at - * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md - * View the source code at https://github.com/Ellpeck/ActuallyAdditions - * - * © 2015 Ellpeck - */ - -package ellpeck.actuallyadditions.misc.special; - -import cpw.mods.fml.common.eventhandler.EventPriority; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import ellpeck.actuallyadditions.blocks.InitBlocks; -import ellpeck.actuallyadditions.items.InitItems; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.event.RenderPlayerEvent; - -import java.util.UUID; - -public class RenderPlayerEventAA{ - - public static RenderSpecial lariRender = new RenderSpecial(new ItemStack(Items.dye)); - private static RenderSpecial ellpeckRender = new RenderSpecial(new ItemStack(InitItems.itemPhantomConnector)); - private static RenderSpecial hoseRender = new RenderSpecial(new ItemStack(Blocks.torch)); - private static RenderSpecial paktoRender = new RenderSpecial(new ItemStack(Blocks.wool, 1, 6)); - private static RenderSpecial glenRender = new RenderSpecial(new ItemStack(InitBlocks.blockHeatCollector)); - - @SubscribeEvent(priority = EventPriority.HIGHEST) - public void RenderPlayerEvent(RenderPlayerEvent.Specials.Pre event){ - //Ellpeck - if(event.entityPlayer.getUniqueID().equals(UUID.fromString("3f9f4a94-95e3-40fe-8895-e8e3e84d1468"))){ - ellpeckRender.render(event.entityPlayer, 0.4F, 0.2F); - } - //Paktosan - else if(event.entityPlayer.getUniqueID().equals(UUID.fromString("0bac71ad-9156-487e-9ade-9c5b57274b23"))){ - paktoRender.render(event.entityPlayer, 0.3F, 0); - } - //TwoOfEight - else if(event.entityPlayer.getUniqueID().equals(UUID.fromString("a57d2829-9711-4552-a7de-ee800802f643"))){ - glenRender.render(event.entityPlayer, 0.3F, 0); - } - //dqmhose - else if(event.entityPlayer.getUniqueID().equals(UUID.fromString("cb7b293a-5031-484e-b5be-b4f2f4e92726"))){ - hoseRender.render(event.entityPlayer, 0.5F, -0.075F); - } - //Lari - else if(event.entityPlayer.getUniqueID().equals(UUID.fromString("ac275e30-c468-42af-b5d4-b26c1c705b70"))){ - lariRender.render(event.entityPlayer, 0.15F, -0.125F); - } - } -} diff --git a/src/main/java/ellpeck/actuallyadditions/misc/special/RenderSpecial.java b/src/main/java/ellpeck/actuallyadditions/misc/special/RenderSpecial.java index ec31103b9..5a23913a5 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/special/RenderSpecial.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/special/RenderSpecial.java @@ -12,23 +12,18 @@ package ellpeck.actuallyadditions.misc.special; import ellpeck.actuallyadditions.proxy.ClientProxy; import ellpeck.actuallyadditions.util.AssetUtil; -import ellpeck.actuallyadditions.util.ModUtil; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; -import net.minecraft.client.model.ModelSquid; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; -import net.minecraft.init.Items; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import java.util.Calendar; public class RenderSpecial{ - private static final ResourceLocation squidTextures = new ResourceLocation(ModUtil.MOD_ID_LOWER, "textures/specialSquid.png"); private double lastTimeForBobbing; private ItemStack theThingToRender; @@ -36,11 +31,15 @@ public class RenderSpecial{ this.theThingToRender = stack; } - public void render(EntityPlayer player, float size, float offsetUp){ + public void render(EntityPlayer player){ if(player.isInvisible() || player.getHideCape()){ return; } + boolean isBlock = this.theThingToRender.getItem() instanceof ItemBlock; + float size = isBlock ? 0.3F : 0.4F; + float offsetUp = isBlock ? 0F : 0.2F; + if(ClientProxy.pumpkinBlurPumpkinBlur){ this.theThingToRender = new ItemStack(Calendar.getInstance().get(Calendar.DAY_OF_MONTH)%2 == 0 ? Blocks.lit_pumpkin : Blocks.pumpkin); size = 0.3F; @@ -71,19 +70,12 @@ public class RenderSpecial{ GL11.glDisable(GL11.GL_LIGHTING); if(this.theThingToRender != null){ - if(this.theThingToRender.getItem() == Items.dye && this.theThingToRender.getItemDamage() == 0){ - Minecraft.getMinecraft().renderEngine.bindTexture(squidTextures); - GL11.glRotatef(180F, 1F, 0F, 0F); - new ModelSquid().render(null, 0F, 0F, 0.25F, 0F, 0F, 0.0625F); + if(isBlock){ + AssetUtil.renderBlock(Block.getBlockFromItem(this.theThingToRender.getItem()), this.theThingToRender.getItemDamage()); } else{ - if(this.theThingToRender.getItem() instanceof ItemBlock){ - AssetUtil.renderBlock(Block.getBlockFromItem(this.theThingToRender.getItem()), this.theThingToRender.getItemDamage()); - } - else{ - GL11.glTranslatef(-0.5F, 0F, 0F); - AssetUtil.renderItem(this.theThingToRender, 0); - } + GL11.glTranslatef(-0.5F, 0F, 0F); + AssetUtil.renderItem(this.theThingToRender, 0); } } GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java b/src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java new file mode 100644 index 000000000..c511b7456 --- /dev/null +++ b/src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java @@ -0,0 +1,70 @@ +/* + * This file ("Special.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015 Ellpeck + */ + +package ellpeck.actuallyadditions.misc.special; + +import cpw.mods.fml.common.eventhandler.EventPriority; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import ellpeck.actuallyadditions.util.Util; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.event.RenderPlayerEvent; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +public class SpecialRenderInit{ + + public static HashMap specialList = new HashMap(); + + public static void init(){ + new ThreadSpecialFetcher(); + Util.registerEvent(new SpecialRenderInit()); + } + + @SubscribeEvent(priority = EventPriority.HIGHEST) + public void onPlayerRender(RenderPlayerEvent.Specials.Pre event){ + if(!specialList.isEmpty()){ + for(Map.Entry entry : specialList.entrySet()){ + //Does the player have one of the names from the list? + if(entry.getKey().toLowerCase().equals(event.entityPlayer.getDisplayName().toLowerCase())){ + //Render the special Item/Block + entry.getValue().render(event.entityPlayer); + break; + } + } + } + } + + public static void parse(Properties properties){ + for(String key : properties.stringPropertyNames()){ + String value = properties.getProperty(key); + + ItemStack stack = null; + //Get the Item from the String + if(Item.itemRegistry.containsKey(value)){ + stack = new ItemStack((Item)Item.itemRegistry.getObject(value)); + } + else{ + if(Block.blockRegistry.containsKey(value)){ + stack = new ItemStack((Block)Block.blockRegistry.getObject(value)); + } + } + + //Add a new Special Renderer to the list + if(stack != null){ + specialList.put(key, new RenderSpecial(stack)); + } + } + } + +} diff --git a/src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java b/src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java index 20285b52b..0e66a3d92 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/special/ThreadSpecialFetcher.java @@ -18,8 +18,6 @@ import java.util.Properties; public class ThreadSpecialFetcher extends Thread{ - private static Properties specialProperties; - public ThreadSpecialFetcher(){ this.setName(ModUtil.MOD_ID+" Special Fetcher"); this.setDaemon(true); @@ -28,16 +26,17 @@ public class ThreadSpecialFetcher extends Thread{ @Override public void run(){ - ModUtil.LOGGER.info("Fetching Special People Stuff"); + ModUtil.LOGGER.info("Fetching Special People Stuff..."); try{ URL url = new URL("https://raw.githubusercontent.com/Ellpeck/ActuallyAdditions/master/specialPeopleStuff.properties"); - specialProperties = new Properties(); + Properties specialProperties = new Properties(); specialProperties.load(new InputStreamReader(url.openStream())); + SpecialRenderInit.parse(specialProperties); ModUtil.LOGGER.info("Fetching Special People Stuff done!"); } catch(Exception e){ - ModUtil.LOGGER.error("Fetching Special People Stuff failed!", e); + ModUtil.LOGGER.error("Fetching Special People Stuff failed! (You can ignore this error technically.)", e); } } } diff --git a/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java b/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java index 9ca165670..b1d2f8596 100644 --- a/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java +++ b/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java @@ -22,6 +22,7 @@ import ellpeck.actuallyadditions.blocks.render.*; import ellpeck.actuallyadditions.config.values.ConfigBoolValues; import ellpeck.actuallyadditions.config.values.ConfigIntValues; import ellpeck.actuallyadditions.event.InitEvents; +import ellpeck.actuallyadditions.misc.special.SpecialRenderInit; import ellpeck.actuallyadditions.tile.*; import ellpeck.actuallyadditions.util.AssetUtil; import ellpeck.actuallyadditions.util.ModUtil; @@ -56,6 +57,8 @@ public class ClientProxy implements IProxy{ } PersistentClientData.setTheFile(new File(Minecraft.getMinecraft().mcDataDir, ModUtil.MOD_ID+"Data.dat")); + + SpecialRenderInit.init(); } @Override diff --git a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java index 4892b0477..c0cd87553 100644 --- a/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java +++ b/src/main/java/ellpeck/actuallyadditions/update/UpdateChecker.java @@ -21,7 +21,7 @@ public class UpdateChecker{ public static boolean needsUpdateNotify; public static String updateVersion; - public void init(){ + public static void init(){ if(ConfigBoolValues.DO_UPDATE_CHECK.isEnabled()){ ModUtil.LOGGER.info("Initializing Update Checker..."); new ThreadUpdateChecker(); diff --git a/src/main/resources/assets/actuallyadditions/textures/specialSquid.png b/src/main/resources/assets/actuallyadditions/textures/specialSquid.png deleted file mode 100644 index 6ffc37eca7e49e8e1ad485b01854258006bc5a69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2567 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 From 1b40aef94c382afd7c47bd8d940512a07a4f4964 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 2 Nov 2015 21:44:06 +0100 Subject: [PATCH 56/73] Special People~ --- specialPeopleStuff.properties | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/specialPeopleStuff.properties b/specialPeopleStuff.properties index bdbd356fd..dbb23133b 100644 --- a/specialPeopleStuff.properties +++ b/specialPeopleStuff.properties @@ -1 +1,3 @@ -ellpeck=ActuallyAdditions:itemPhantomConnector \ No newline at end of file +ellpeck=ActuallyAdditions:itemPhantomConnector +dqmhose=minecraft:torch +twoofeight=ActuallyAdditions:blockHeatCollector \ No newline at end of file From fad17a5b175cd39b3edff1301fa0ca69cfc8fb29 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 2 Nov 2015 22:37:44 +0100 Subject: [PATCH 57/73] I might just move this to down here because some mods like to override vanilla blocks and items and I don't really like that for some reason or another --- .../java/ellpeck/actuallyadditions/proxy/ClientProxy.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java b/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java index b1d2f8596..63450a415 100644 --- a/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java +++ b/src/main/java/ellpeck/actuallyadditions/proxy/ClientProxy.java @@ -57,8 +57,6 @@ public class ClientProxy implements IProxy{ } PersistentClientData.setTheFile(new File(Minecraft.getMinecraft().mcDataDir, ModUtil.MOD_ID+"Data.dat")); - - SpecialRenderInit.init(); } @Override @@ -102,5 +100,7 @@ public class ClientProxy implements IProxy{ @Override public void postInit(FMLPostInitializationEvent event){ ModUtil.LOGGER.info("PostInitializing ClientProxy..."); + + SpecialRenderInit.init(); } } From a56c1c32ed4886d9ffae19148fb88434e97b560c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Mon, 2 Nov 2015 22:41:13 +0100 Subject: [PATCH 58/73] I know how to use methods I made for special occasions that I then don't use them for --- .../actuallyadditions/misc/special/SpecialRenderInit.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java b/src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java index c511b7456..ab60e4d60 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/special/SpecialRenderInit.java @@ -12,6 +12,7 @@ package ellpeck.actuallyadditions.misc.special; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import ellpeck.actuallyadditions.util.StringUtil; import ellpeck.actuallyadditions.util.Util; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -36,7 +37,7 @@ public class SpecialRenderInit{ if(!specialList.isEmpty()){ for(Map.Entry entry : specialList.entrySet()){ //Does the player have one of the names from the list? - if(entry.getKey().toLowerCase().equals(event.entityPlayer.getDisplayName().toLowerCase())){ + if(StringUtil.equalsToLowerCase(entry.getKey(), event.entityPlayer.getDisplayName())){ //Render the special Item/Block entry.getValue().render(event.entityPlayer); break; From be1983a0cf606c56c1d6803bb3ab7d4a908105a3 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 14:32:53 +0100 Subject: [PATCH 59/73] Tetetetetetetetetextuuuuures to be maaaaaade --- TexturesToBeMade.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/TexturesToBeMade.txt b/TexturesToBeMade.txt index ccaf9f1b9..51698e2f8 100644 --- a/TexturesToBeMade.txt +++ b/TexturesToBeMade.txt @@ -3,3 +3,5 @@ Textures to be made This file is a reminder to Glenthor for what textures he should make or change. If you want to give making some of these textures a go, go ahead and make a pull request when you're done. -------------------------------------------------------------------------------------------------------------- + +-blockBlackLotus (a plant. Obviously. It's black and looks like a lotus. Obviously.) From 9456d40197f0f3e3acb95a0adaeeb271bca1bf5b Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 16:30:13 +0100 Subject: [PATCH 60/73] Black Lotus --- .../blocks/BlockBlackLotus.java | 50 ++++++++++++++++++ .../actuallyadditions/blocks/InitBlocks.java | 5 ++ .../booklet/InitBooklet.java | 1 + .../crafting/ItemCrafting.java | 5 ++ .../items/metalists/TheMiscItems.java | 3 +- .../actuallyadditions/ore/InitOreDict.java | 2 + .../assets/actuallyadditions/lang/en_US.lang | 9 +++- .../textures/items/itemMiscBlackDye.png | Bin 0 -> 256 bytes 8 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 src/main/java/ellpeck/actuallyadditions/blocks/BlockBlackLotus.java create mode 100644 src/main/resources/assets/actuallyadditions/textures/items/itemMiscBlackDye.png diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/BlockBlackLotus.java b/src/main/java/ellpeck/actuallyadditions/blocks/BlockBlackLotus.java new file mode 100644 index 000000000..0918b8d8a --- /dev/null +++ b/src/main/java/ellpeck/actuallyadditions/blocks/BlockBlackLotus.java @@ -0,0 +1,50 @@ +/* + * This file ("BlockFlower.java") is part of the Actually Additions Mod for Minecraft. + * It is created and owned by Ellpeck and distributed + * under the Actually Additions License to be found at + * http://github.com/Ellpeck/ActuallyAdditions/blob/master/README.md + * View the source code at https://github.com/Ellpeck/ActuallyAdditions + * + * © 2015 Ellpeck + */ + +package ellpeck.actuallyadditions.blocks; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import ellpeck.actuallyadditions.util.IActAddItemOrBlock; +import ellpeck.actuallyadditions.util.ModUtil; +import net.minecraft.block.BlockBush; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class BlockBlackLotus extends BlockBush implements IActAddItemOrBlock{ + + public BlockBlackLotus(){ + this.setStepSound(soundTypeGrass); + } + + @Override + public String getName(){ + return "blockBlackLotus"; + } + + @Override + public EnumRarity getRarity(ItemStack stack){ + return EnumRarity.epic; + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta){ + return this.blockIcon; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconReg){ + this.blockIcon = iconReg.registerIcon(ModUtil.MOD_ID_LOWER+":"+this.getName()); + } +} diff --git a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java index 7b99a2cef..1585b1549 100644 --- a/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java +++ b/src/main/java/ellpeck/actuallyadditions/blocks/InitBlocks.java @@ -98,9 +98,14 @@ public class InitBlocks{ public static Block blockLaserRelay; + public static Block blockBlackLotus; + public static void init(){ ModUtil.LOGGER.info("Initializing Blocks..."); + blockBlackLotus = new BlockBlackLotus(); + BlockUtil.register(blockBlackLotus); + blockLaserRelay = new BlockLaserRelay(); BlockUtil.register(blockLaserRelay); diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java index bcc5be2d3..deba0f12a 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/InitBooklet.java @@ -59,6 +59,7 @@ public class InitBooklet{ new BookletChapter("treasureChest", entryMisc, new ItemStack(InitBlocks.blockTreasureChest), new PagePicture(1, "pageTreasureChest", 150).setStack(new ItemStack(InitBlocks.blockTreasureChest)), new PageTextOnly(2)).setSpecial(); new BookletChapter("hairBalls", entryMisc, new ItemStack(InitItems.itemHairyBall), new PagePicture(1, "pageFurBalls", 110).setStack(new ItemStack(InitItems.itemHairyBall)), new PageTextOnly(2)).setSpecial(); + new BookletChapter("blackLotus", entryMisc, new ItemStack(InitBlocks.blockBlackLotus), new PageTextOnly(1).setStack(new ItemStack(InitBlocks.blockBlackLotus)), new PageCrafting(2, ItemCrafting.recipeBlackDye)); //No RF Using Blocks new BookletChapter("breaker", entryFunctionalNonRF, new ItemStack(InitBlocks.blockBreaker), new PageCrafting(1, BlockCrafting.recipeBreaker), new PageCrafting(2, BlockCrafting.recipePlacer), new PageCrafting(3, BlockCrafting.recipeLiquidPlacer), new PageCrafting(4, BlockCrafting.recipeLiquidCollector)); diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java index 9b1c483dd..1278dc71c 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java @@ -74,9 +74,14 @@ public class ItemCrafting{ public static IRecipe recipeChestToCrateUpgrade; public static IRecipe recipeLaserWrench; public static IRecipe recipeDrillCore; + public static IRecipe recipeBlackDye; public static void init(){ + //Black Dye + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BLACK_DYE.ordinal()), new ItemStack(InitBlocks.blockBlackLotus))); + recipeBlackDye = Util.GetRecipes.lastIRecipe(); + //Booklet GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(InitItems.itemLexicon), new ItemStack(InitItems.itemCanolaSeed), new ItemStack(Items.paper))); recipeBook = Util.GetRecipes.lastIRecipe(); diff --git a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java index 1ed222a19..ae7263c3e 100644 --- a/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java +++ b/src/main/java/ellpeck/actuallyadditions/items/metalists/TheMiscItems.java @@ -30,7 +30,8 @@ public enum TheMiscItems{ CANOLA("Canola", EnumRarity.uncommon), CUP("Cup", EnumRarity.uncommon), BAT_WING("BatWing", EnumRarity.rare), - DRILL_CORE("DrillCore", EnumRarity.uncommon); + DRILL_CORE("DrillCore", EnumRarity.uncommon), + BLACK_DYE("BlackDye", EnumRarity.epic); public final String name; public final EnumRarity rarity; diff --git a/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java b/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java index 7acd2f3a7..dddcd055e 100644 --- a/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java +++ b/src/main/java/ellpeck/actuallyadditions/ore/InitOreDict.java @@ -71,6 +71,8 @@ public class InitOreDict{ addOre(InitItems.itemSpecialDrop, TheSpecialDrops.PEARL_SHARD.ordinal(), "nuggetEnderpearl"); addOre(InitItems.itemMisc, TheMiscItems.QUARTZ.ordinal(), "gemQuartzBlack"); + + addOre(InitItems.itemMisc, TheMiscItems.BLACK_DYE.ordinal(), "dyeBlack"); } private static void addOre(ItemStack stack, String name){ diff --git a/src/main/resources/assets/actuallyadditions/lang/en_US.lang b/src/main/resources/assets/actuallyadditions/lang/en_US.lang index 48da8570a..310ccdeab 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_US.lang +++ b/src/main/resources/assets/actuallyadditions/lang/en_US.lang @@ -106,6 +106,7 @@ tile.actuallyadditions.blockDirectionalBreaker.name=Long-Range Breaker tile.actuallyadditions.blockRangedCollector.name=Ranged Collector tile.actuallyadditions.blockLaserRelay.name=Laser Relay tile.actuallyadditions.blockMiscIronCasing.name=Iron Casing +tile.actuallyadditions.blockBlackLotus.name=Black Lotus #ESD tile.actuallyadditions.blockInputter.name=ESD @@ -280,6 +281,7 @@ item.actuallyadditions.itemBooklet.name=Actually Additions Manual item.actuallyadditions.itemLaserWrench.name=Laser Wrench item.actuallyadditions.itemChestToCrateUpgrade.name=Chest To Storage Crate Upgrade item.actuallyadditions.itemMiscDrillCore.name=Drill Core +item.actuallyadditions.itemMiscBlackDye.name=Black Dye #Tooltips tooltip.actuallyadditions.onSuffix.desc=On @@ -307,6 +309,7 @@ tooltip.actuallyadditions.blockPhantomRange.desc=Range tooltip.actuallyadditions.laser.stored.desc= tooltip.actuallyadditions.laser.connected.desc= tooltip.actuallyadditions.laser.cantConnect.desc=Can't connect: The relays are either part of the same network, the stored relay doesn't exist anymore or it is too far away! +tooltip.actuallyadditions.blockBlackLotus.desc=No, not that one, Vaz! #Gui Information info.actuallyadditions.gui.animals=Animals @@ -577,4 +580,8 @@ booklet.actuallyadditions.chapter.hairBalls.text.1=Balls of Fur dropped booklet.actuallyadditions.chapter.hairBalls.text.2=Balls of Fur are an item rarely dropped by cats which have been tamed by the player. Cats are very mysterious creatures as they appear to get everything stuck in their fur. Balls of Fur may seem disgusting at first, but when removing all of the hair by right-clicking, they will reveal some valuable items. Or just some String. FUURRRRRR!! booklet.actuallyadditions.chapter.laserRelays.name=Laser Relays -booklet.actuallyadditions.chapter.laserRelays.text.1=The Laser Relay is a block that can wirelessly transfer RF just by being connected with a Laser Wrench, generating a network. When placing a Power Generator or Receiver next to the relay, it can receive Power from any other relay in the network. Two relays can be at most blocks apart. During an energy transfer, they have an Energy Loss of %. \ No newline at end of file +booklet.actuallyadditions.chapter.laserRelays.text.1=The Laser Relay is a block that can wirelessly transfer RF just by being connected with a Laser Wrench, generating a network. When placing a Power Generator or Receiver next to the relay, it can receive Power from any other relay in the network. Two relays can be at most blocks apart. During an energy transfer, they have an Energy Loss of %. + +booklet.actuallyadditions.chapter.blackLotus.name=Black Lotus +booklet.actuallyadditions.chapter.blackLotus.text.1=Think of this: You need to craft black wool, black clay or anything else that needs black dye but you are just guilty about killing so many innocent squids? Well, the Black Lotus is exactly the thing you need! Just look around in the wild a bit, and you will find one, then being able to craft some Black Dye that can be used instead of Ink Sacs so that you don't need to kill poor squids and L any longer. +booklet.actuallyadditions.chapter.blackLotus.text.2=No, not that one, Vaz \ No newline at end of file diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemMiscBlackDye.png b/src/main/resources/assets/actuallyadditions/textures/items/itemMiscBlackDye.png new file mode 100644 index 0000000000000000000000000000000000000000..a4cd0e1f373d6e37233b42a73d70593bca05b561 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt33 zJ+nVO$@hV33O!vMLoEE?_Ih(2P~dUdT%ziB;%|S}%mW7$>RxQR(6}(`bKINrR!gTG zd}UjIujyci#NO|L*}ekLuic70l-R)V;pp5$i(SmM-@J?5v(cM#`}q$#uG^a=-8c(> xhcyH=y-I6xpK-9EOJvU>DW>%Y*B^bunD;t%NALO0g+R+0JYD@<);T3K0RX2cVebF{ literal 0 HcmV?d00001 From 211d73944541d1692f1bacd4258a1ec10d97e5c0 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 18:00:17 +0100 Subject: [PATCH 61/73] Black Lotus World Spawning --- .../actuallyadditions/config/values/ConfigBoolValues.java | 1 + .../actuallyadditions/config/values/ConfigIntValues.java | 1 + .../java/ellpeck/actuallyadditions/crafting/ItemCrafting.java | 2 +- .../ellpeck/actuallyadditions/event/WorldDecorationEvent.java | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java index f54d098d7..2d59a07a7 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigBoolValues.java @@ -40,6 +40,7 @@ public enum ConfigBoolValues{ DO_CANOLA_GEN("Canola Gen", ConfigCategories.WORLD_GEN, true, "If Canola should generate in the World"), DO_FLAX_GEN("Flax Gen", ConfigCategories.WORLD_GEN, true, "If Flax should generate in the World"), DO_COFFEE_GEN("Coffee Gen", ConfigCategories.WORLD_GEN, true, "If Coffee should generate in the World"), + DO_LOTUS_GEN("Black Lotus Gen", ConfigCategories.WORLD_GEN, true, "If the Black Lotus should generate in the World"), DO_TREASURE_CHEST_GEN("Treasure Chest Gen", ConfigCategories.WORLD_GEN, true, "If Treasure Chests should generate in the World"), DO_SPIDER_DROPS("Spider Cobweb Drop", ConfigCategories.MOB_DROPS, true, "If Cobwebs should sometimes drop from Spiders"), diff --git a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java index ff05ae90b..e2b23c6a1 100644 --- a/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java +++ b/src/main/java/ellpeck/actuallyadditions/config/values/ConfigIntValues.java @@ -93,6 +93,7 @@ public enum ConfigIntValues{ CANOLA_AMOUNT("Canola Amount", ConfigCategories.WORLD_GEN, 10, 1, 50, "The Chance of Canola generating"), FLAX_AMOUNT("Flax Amount", ConfigCategories.WORLD_GEN, 8, 1, 50, "The Chance of Flax generating"), COFFEE_AMOUNT("Coffee Amount", ConfigCategories.WORLD_GEN, 6, 1, 50, "The Chance of Coffee generating"), + BLACK_LOTUS_AMOUNT("Black Lotus Amount", ConfigCategories.WORLD_GEN, 14, 1, 50, "The Chance of the Black Lotus generating"), RICE_CHANCE("Rice Chance", ConfigCategories.WORLD_GEN, 50, 1, 3000, "The 1 in X chance for Rice to generate"), NORMAL_PLANT_CHANCE("Plant Chance", ConfigCategories.WORLD_GEN, 400, 1, 3000, "The 1 in X chance for Flax, Coffee and Canola to generate"), TREASURE_CHEST_CHANCE("Treasure Chest Chance", ConfigCategories.WORLD_GEN, 300, 1, 3000, "The 1 in X chance for a Treasure Chest to generate in an Ocean"), diff --git a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java index 1278dc71c..362b1d989 100644 --- a/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/crafting/ItemCrafting.java @@ -79,7 +79,7 @@ public class ItemCrafting{ public static void init(){ //Black Dye - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BLACK_DYE.ordinal()), new ItemStack(InitBlocks.blockBlackLotus))); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(InitItems.itemMisc, 2, TheMiscItems.BLACK_DYE.ordinal()), new ItemStack(InitBlocks.blockBlackLotus))); recipeBlackDye = Util.GetRecipes.lastIRecipe(); //Booklet diff --git a/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java b/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java index d5cb3d98f..90b5e9123 100644 --- a/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java +++ b/src/main/java/ellpeck/actuallyadditions/event/WorldDecorationEvent.java @@ -33,6 +33,7 @@ public class WorldDecorationEvent{ this.genPlantNormally(InitBlocks.blockWildPlant, TheWildPlants.CANOLA.ordinal(), ConfigIntValues.CANOLA_AMOUNT.getValue(), ConfigBoolValues.DO_CANOLA_GEN.isEnabled(), Material.grass, event); this.genPlantNormally(InitBlocks.blockWildPlant, TheWildPlants.FLAX.ordinal(), ConfigIntValues.FLAX_AMOUNT.getValue(), ConfigBoolValues.DO_FLAX_GEN.isEnabled(), Material.grass, event); this.genPlantNormally(InitBlocks.blockWildPlant, TheWildPlants.COFFEE.ordinal(), ConfigIntValues.COFFEE_AMOUNT.getValue(), ConfigBoolValues.DO_COFFEE_GEN.isEnabled(), Material.grass, event); + this.genPlantNormally(InitBlocks.blockBlackLotus, 0, ConfigIntValues.BLACK_LOTUS_AMOUNT.getValue(), ConfigBoolValues.DO_LOTUS_GEN.isEnabled(), Material.grass, event); //Generate Treasure Chests if(ConfigBoolValues.DO_TREASURE_CHEST_GEN.isEnabled()){ From d34d2040e7e68c446d257396ea66c88946127a84 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 19:23:10 +0100 Subject: [PATCH 62/73] Added Black Lotus to Creative Tab --- .../java/ellpeck/actuallyadditions/creative/CreativeTab.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java index 93926a421..679df8e7c 100644 --- a/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java +++ b/src/main/java/ellpeck/actuallyadditions/creative/CreativeTab.java @@ -104,6 +104,8 @@ public class CreativeTab extends CreativeTabs{ add(InitBlocks.blockLampPowerer); add(InitBlocks.blockTreasureChest); + add(InitBlocks.blockBlackLotus); + add(InitItems.itemLaserWrench); add(InitItems.itemChestToCrateUpgrade); From 5667e58b6c95e40b084e0520d9ec083b0a5dbf91 Mon Sep 17 00:00:00 2001 From: Glenthor Date: Tue, 3 Nov 2015 20:59:40 +0100 Subject: [PATCH 63/73] -Added blockBlackLotus --- .../textures/blocks/blockBlackLotus.png | Bin 0 -> 576 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/actuallyadditions/textures/blocks/blockBlackLotus.png diff --git a/src/main/resources/assets/actuallyadditions/textures/blocks/blockBlackLotus.png b/src/main/resources/assets/actuallyadditions/textures/blocks/blockBlackLotus.png new file mode 100644 index 0000000000000000000000000000000000000000..b36495c937003d71072f6eb94bedc7ddfc7d55bc GIT binary patch literal 576 zcmV-G0>Ax=v!I=O603B&m zSad^gZEa<4bN~PV002XBWnpw>WFU8GbZ8()Nlj2>E@cM*00E>)L_t(I%dL_=*)ogLg4cU(RV& zD#Ut%g8{%5m+fSC=>5d`CJJNxCO8;UP4UGeV=xD+8BrLIb`XUz4{k4LPL2-NGZi66 zamB@ZHYJ_a&0&It=XW_y`T%5Wi5Aw47_8cXlSjTBeA+AjLT7c8B+5ym9J}I5VLj1P zGAwq*6>IbHL;SIx^7!=~oSLX)4r!8MZO+uIUHR5Bj2t4st%ol6KkSh7bJEOmrdkRv zB>;FoZ2)9q(o&i92tV&%n8YE1doNl5H0LiNzH;*W^xvXf0E^Nq#~g-7O5b5wr{(+2 zK?*nCw#yw97rm%UFY4-fjW5+-dU*76w1dBE_DP_|2vjUH*RD&MI=~-HYoPoSHpFZI O0000 Date: Tue, 3 Nov 2015 23:12:00 +0100 Subject: [PATCH 64/73] Added Larixine Headwear thingy --- specialPeopleStuff.properties | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specialPeopleStuff.properties b/specialPeopleStuff.properties index dbb23133b..9b9384fc6 100644 --- a/specialPeopleStuff.properties +++ b/specialPeopleStuff.properties @@ -1,3 +1,4 @@ ellpeck=ActuallyAdditions:itemPhantomConnector dqmhose=minecraft:torch -twoofeight=ActuallyAdditions:blockHeatCollector \ No newline at end of file +twoofeight=ActuallyAdditions:blockHeatCollector +larixine=ActuallyAdditions:blockBlackLotus \ No newline at end of file From 184b0c9770077a729b6932803bf6c46851601072 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 23:27:24 +0100 Subject: [PATCH 65/73] Fix toLowerCase stuff --- .../java/ellpeck/actuallyadditions/booklet/GuiBooklet.java | 3 ++- src/main/java/ellpeck/actuallyadditions/util/ModUtil.java | 4 +++- src/main/java/ellpeck/actuallyadditions/util/StringUtil.java | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java index 62478f542..6b4e1429a 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/GuiBooklet.java @@ -33,6 +33,7 @@ import java.net.URI; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Locale; @SideOnly(Side.CLIENT) public class GuiBooklet extends GuiScreen{ @@ -185,7 +186,7 @@ public class GuiBooklet extends GuiScreen{ currentEntry.chapters.clear(); for(BookletChapter chapter : currentEntry.allChapters){ - if(chapter.getLocalizedName().toLowerCase().contains(this.searchField.getText().toLowerCase())){ + if(chapter.getLocalizedName().toLowerCase(Locale.ROOT).contains(this.searchField.getText().toLowerCase(Locale.ROOT))){ currentEntry.chapters.add(chapter); } } diff --git a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java index 1b2f32160..1b9992df6 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/ModUtil.java @@ -13,13 +13,15 @@ package ellpeck.actuallyadditions.util; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import java.util.Locale; + public class ModUtil{ public static final String VERSION = "1.7.10-r2"; public static final String MOD_ID = "ActuallyAdditions"; public static final String NAME = "Actually Additions"; - public static final String MOD_ID_LOWER = MOD_ID.toLowerCase(); + public static final String MOD_ID_LOWER = MOD_ID.toLowerCase(Locale.ROOT); public static final Logger LOGGER = LogManager.getLogger(MOD_ID); diff --git a/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java b/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java index 3086cbd94..5dba58ca5 100644 --- a/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java +++ b/src/main/java/ellpeck/actuallyadditions/util/StringUtil.java @@ -12,6 +12,7 @@ package ellpeck.actuallyadditions.util; import net.minecraft.util.StatCollector; +import java.util.Locale; import java.util.Objects; public class StringUtil{ @@ -42,7 +43,7 @@ public class StringUtil{ return null; } else{ - return string.toLowerCase(); + return string.toLowerCase(Locale.ROOT); } } } From 392c29f8badf6786d2d915b1cb1cb6d638c653a3 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 23:32:21 +0100 Subject: [PATCH 66/73] Update License in Readme --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7c2769619..c167683c6 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ Everything that is not listed below applies to the above. ### NOTES - The above License only applies for Code I wrote myself, any APIs used (such as the CoFH API) have their own License that is being respected. - There are some excerpts from other code used (such as the OpenBlocks XP System). Credit to the creators of these parts is always given and their Permission is granted or their License is respected. -- Almost all of the Assets used in this Mod are made by Glenthor and are owned by me. You are not allowed to copy them for any other Project without my Permission. +- Almost all of the Assets used in this Mod are made by Glenthor and are owned by me. You are not allowed to copy them for any other Project. +- Parts of this License, especially restrictive ones, can be ignored with Personal Permission. Said Permission, however, will only be given to people I know or someone who has a very good reason for needing it. If you don't, don't ask. -© 2015 Ellpeck \ No newline at end of file +� 2015 Ellpeck \ No newline at end of file From 7698fe836d3916b5f452cece4255fae8df9eadef Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 23:33:42 +0100 Subject: [PATCH 67/73] I don't know why IntelliJ does it, but I hate it for it so much. --- LICENSE | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 4b15179f0..069d757b0 100644 --- a/LICENSE +++ b/LICENSE @@ -2,4 +2,4 @@ ALL RIGHTS RESERVED. For more Information, check the README.md file. -© 2015 Ellpeck \ No newline at end of file +© 2015 Ellpeck \ No newline at end of file diff --git a/README.md b/README.md index c167683c6..20d8eb12d 100644 --- a/README.md +++ b/README.md @@ -39,4 +39,4 @@ Everything that is not listed below applies to the above. - Almost all of the Assets used in this Mod are made by Glenthor and are owned by me. You are not allowed to copy them for any other Project. - Parts of this License, especially restrictive ones, can be ignored with Personal Permission. Said Permission, however, will only be given to people I know or someone who has a very good reason for needing it. If you don't, don't ask. -� 2015 Ellpeck \ No newline at end of file +© 2015 Ellpeck \ No newline at end of file From 21af1b4be5e20a0db6e6c310bacacac6c6250d1a Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 3 Nov 2015 23:47:17 +0100 Subject: [PATCH 68/73] Some more Smiley Clouds --- .../misc/cloud/SmileyCloudEasterEggs.java | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java b/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java index 6053cbde9..31adb1b94 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/cloud/SmileyCloudEasterEggs.java @@ -143,7 +143,7 @@ public class SmileyCloudEasterEggs{ @Override public void renderExtra(float f){ renderHoldingItem(false, new ItemStack(Items.iron_helmet)); - renderHeadBlock(Blocks.cake, 0, 28F); + renderHeadBlock(InitBlocks.blockBlackLotus, 0, 28F); } }); //RotesDing @@ -279,6 +279,7 @@ public class SmileyCloudEasterEggs{ renderHeadBlock(Blocks.gravel, 0, 47F); } }); + //FrauBaerchen register(new ISmileyCloudEasterEgg(){ @Override public String[] getTriggerNames(){ @@ -292,10 +293,11 @@ public class SmileyCloudEasterEggs{ renderHeadBlock(Blocks.coal_block, 0, 60F); } }); + //Diddi register(new ISmileyCloudEasterEgg(){ @Override public String[] getTriggerNames(){ - return new String[]{"0xdd", "didi", "theultimatehose"}; + return new String[]{"0xdd", "didi", "diddi", "theultimatehose"}; } @Override @@ -304,6 +306,7 @@ public class SmileyCloudEasterEggs{ renderHeadBlock(Blocks.redstone_block, 0, 30F); } }); + //MineLoad register(new ISmileyCloudEasterEgg(){ @Override public String[] getTriggerNames(){ @@ -316,6 +319,45 @@ public class SmileyCloudEasterEggs{ renderHeadBlock(Blocks.crafting_table, 0, 35F); } }); + //Kilobyte (When I asked him if he liked the mod, he just looked at the code. Maybe he'll find this eventually.) + register(new ISmileyCloudEasterEgg(){ + @Override + public String[] getTriggerNames(){ + return new String[]{"kilobyte", "kilo", "byte"}; + } + + @Override + public void renderExtra(float f){ + renderHoldingItem(false, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DRILL_CORE.ordinal())); + renderHeadBlock(Blocks.redstone_ore, 0, 80F); + } + }); + //XDjackieXD + register(new ISmileyCloudEasterEgg(){ + @Override + public String[] getTriggerNames(){ + return new String[]{"jackie", "xdjackiexd", "xdjackie", "jackiexd"}; + } + + @Override + public void renderExtra(float f){ + renderHoldingItem(false, new ItemStack(Items.enchanted_book)); + renderHeadBlock(InitBlocks.blockDirectionalBreaker, 0, 40F); + } + }); + //Little Lampi (I still can't get over it) + register(new ISmileyCloudEasterEgg(){ + @Override + public String[] getTriggerNames(){ + return new String[]{"lampi", "littlelampi", "little lampi"}; + } + + @Override + public void renderExtra(float f){ + renderHoldingItem(false, new ItemStack(Items.glowstone_dust)); + renderHeadBlock(InitBlocks.blockColoredLampOn, 4, 40F); + } + }); } private static void register(ISmileyCloudEasterEgg egg){ From 0577af4460ab88d3f6ab1ebb3df03d17d2bb3591 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 4 Nov 2015 19:39:14 +0100 Subject: [PATCH 69/73] Fixed potential bug with booklet crafting page --- .../ellpeck/actuallyadditions/booklet/page/PageCrafting.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java index ca27656b3..b97ec3b16 100644 --- a/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java +++ b/src/main/java/ellpeck/actuallyadditions/booklet/page/PageCrafting.java @@ -93,7 +93,7 @@ public class PageCrafting extends BookletPage{ for(int i = 0; i < shaped.getInput().length; i++){ Object input = shaped.getInput()[i]; if(input != null){ - stacks[i] = input instanceof ItemStack ? (ItemStack)input : ((ArrayList)input).get(0); + stacks[i] = input instanceof ItemStack ? (ItemStack)input : (((ArrayList)input).isEmpty() ? null : ((ArrayList)input).get(0)); } } } @@ -101,7 +101,7 @@ public class PageCrafting extends BookletPage{ ShapelessOreRecipe shapeless = (ShapelessOreRecipe)recipe; for(int i = 0; i < shapeless.getInput().size(); i++){ Object input = shapeless.getInput().get(i); - stacks[i] = input instanceof ItemStack ? (ItemStack)input : ((ArrayList)input).get(0); + stacks[i] = input instanceof ItemStack ? (ItemStack)input : (((ArrayList)input).isEmpty() ? null : ((ArrayList)input).get(0)); } } From 330c0499e60bb71462f9e967ac649273cec109b7 Mon Sep 17 00:00:00 2001 From: Glenthor Date: Wed, 4 Nov 2015 19:57:01 +0100 Subject: [PATCH 70/73] Updated itemBooklet --- .../textures/items/itemBooklet.png | Bin 2344 -> 45410 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemBooklet.png b/src/main/resources/assets/actuallyadditions/textures/items/itemBooklet.png index c7ad7466956531cd66b02cad7f29e353b2f8c752..a90a70a7870a1566a8c0cc5ea9fa331f9b7750c4 100644 GIT binary patch literal 45410 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 FV1kGhUg!V- From d4038d34c0c07e76759f2c499cf1edda65787dab Mon Sep 17 00:00:00 2001 From: Glenthor Date: Wed, 4 Nov 2015 20:07:24 +0100 Subject: [PATCH 71/73] -Updated itemBooklet --- .../textures/items/itemBooklet.png | Bin 45410 -> 11713 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemBooklet.png b/src/main/resources/assets/actuallyadditions/textures/items/itemBooklet.png index a90a70a7870a1566a8c0cc5ea9fa331f9b7750c4..59a6700ab385369fb974d061e51c4c02a0449070 100644 GIT binary patch literal 11713 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 literal 45410 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 UyrwDfacdGxjV;a=8@h)78)1Ou Date: Wed, 4 Nov 2015 20:15:12 +0100 Subject: [PATCH 72/73] Reverts~ --- .../textures/items/itemBooklet.png | Bin 11713 -> 2344 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/main/resources/assets/actuallyadditions/textures/items/itemBooklet.png b/src/main/resources/assets/actuallyadditions/textures/items/itemBooklet.png index 59a6700ab385369fb974d061e51c4c02a0449070..c7ad7466956531cd66b02cad7f29e353b2f8c752 100644 GIT binary patch delta 2282 zcmV-+})8|D}M-#Nkli0bqS#X63h>1 zRoW^fs4Yc^qErw>Kvbv!N(+jTLdzvUXaN@pRUoLBNJx|lC@91gf)F(jL`v+W)CR}) zVtc*b%gpZ1r9X_9tVz5L-i@Kz^Y2^FeEZEi=Y7w6j(-;_QHe^N$RTF?0NTmtxyN$7 zd9bUbXO>R%45$Ebq647JHpc^JtT@&!-BM~og#r}-Dn8(g!Ex99bemsx2$HEJhLL9T zn;s-Bh>(sfSIKv_&&VezUxc^t?3x9nQfWpdV*SjLxWMy`g%KQBZXn4kYx|9Ht`lP0q?8WRM&|a(_HQFyto|k7L;m*Zgcfk{V#kz3WJ) z(}b(4aj>}d=8edqCe*gGCUoEkZ~qA2e@s51XnexAX?kvvOavtG~nr8h2uj)RcBcVOa)BLosR>o%*bbqp03F}E4u2)wilm1@$mR6`GpXaN=M9pvOuBmx(0*n+ zYu2oxW#QRKY7og^gFbJ0Ub$Vz!Z8!z+8|^kEy&8cZv3GDjV<-~y&(dDDz3iiwu023 z1V9ME?aLjK$s}gRVDpG^{3m}8I6)mrpV=N5CT~) zoj;fn0CjZ@2ub4pEq|Igc-vy$d+%TD-o1->e3Wl2U5asF2l~8a1vPwCkczpeJ`22n%k$)NtBSktLLs3**H;HXKc)co;Bx9PXyg!hA)w2V@ zU0o@R18<>(TUmGI1*B6McK`DYOw(q;f;D+NvtNe%M+Q}^Kyga`$F)Ya7^sS}{<^E*n?AIM5g+Z_cdQ9ZZtEvx?NLHLB% z-(C>HFw!WJhviGoUSy$QTR8>>50Qw+ zdHd~mk%T+Z7k`+E{3vYAsiSCK4Iw}X2}wFW4N=iux7~Dp!TJaH?JTYdl7dpz%vVo# z+26CDp@Bh~S{m{CJPh>r6Ny|rA$*5%|KWGMtX>czYh@9x%cI-=h7xWi8|@|+`|zlu zci)3oqh0 z3dVugaLfckQg~>O;DP7foN#%0-j{cBU)J3xsqom_Hi1Bpp8Y*2ibN`rBAYcB85u3; z6(+5VoqsB(VWN6eZr%7hF1maz!lQ$jz29jZ zm$CSy9z41yiP;;+$$a$5Sgf6FbU#AT{=We@+QR)qrA}P%O&L@k$0%0H^>^iAq$W5=V{y0?i0_K50&6ng9R*07*qoM6N<$ Ef}0y&J^%m! literal 11713 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 From 646cb663ff80afbda8b7b4473b0897cbb38317f9 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Thu, 5 Nov 2015 19:31:56 +0100 Subject: [PATCH 73/73] The person who made the texture forgot something --- TexturesToBeMade.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/TexturesToBeMade.txt b/TexturesToBeMade.txt index 51698e2f8..67b773e2c 100644 --- a/TexturesToBeMade.txt +++ b/TexturesToBeMade.txt @@ -2,6 +2,4 @@ Textures to be made -------------------------------------------------------------------------------------------------------------- This file is a reminder to Glenthor for what textures he should make or change. If you want to give making some of these textures a go, go ahead and make a pull request when you're done. --------------------------------------------------------------------------------------------------------------- - --blockBlackLotus (a plant. Obviously. It's black and looks like a lotus. Obviously.) +-------------------------------------------------------------------------------------------------------------- \ No newline at end of file