From e0edff6891e94115d1ddc905512ed0a7172b84cd Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Mon, 9 Oct 2017 12:06:57 +0100 Subject: [PATCH] Some more work on solar panels. --- .../generator/solarpanel/BlockSolarPanel.java | 18 +++++--- .../itemblocks/ItemBlockSolarPanel.java | 5 ++- .../tiles/generator/TileSolarPanel.java | 8 ++++ .../machines/generators/solar_panel.json | 42 +++++++++--------- .../panels/advancedsolar_panel_side.png | Bin 650 -> 0 bytes .../panels/basicsolar_panel_side.png | Bin 636 -> 0 bytes .../panels/hybridsolar_panel_side.png | Bin 642 -> 0 bytes .../panels/quantumsolar_panel_side.png | Bin 650 -> 0 bytes .../panels/ultimatesolar_panel_side.png | Bin 653 -> 0 bytes 9 files changed, 45 insertions(+), 28 deletions(-) delete mode 100644 src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/advancedsolar_panel_side.png delete mode 100644 src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/basicsolar_panel_side.png delete mode 100644 src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/hybridsolar_panel_side.png delete mode 100644 src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/quantumsolar_panel_side.png delete mode 100644 src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/ultimatesolar_panel_side.png diff --git a/src/main/java/techreborn/blocks/generator/solarpanel/BlockSolarPanel.java b/src/main/java/techreborn/blocks/generator/solarpanel/BlockSolarPanel.java index 3a538d27a..6985d9e04 100644 --- a/src/main/java/techreborn/blocks/generator/solarpanel/BlockSolarPanel.java +++ b/src/main/java/techreborn/blocks/generator/solarpanel/BlockSolarPanel.java @@ -27,6 +27,7 @@ package techreborn.blocks.generator.solarpanel; import com.google.common.collect.Lists; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; @@ -58,31 +59,38 @@ public class BlockSolarPanel extends BaseTileBlock { public static final String[] panes = new String[] { "Basic", "Hybrid", "Advanced", "Ultimate", "Quantum"}; public static final IProperty TYPE = PropertyEnum.create("type", EnumPanelType.class); + public static PropertyBool ACTIVE = PropertyBool.create("active"); private static final List paneList = Lists.newArrayList(panes); public BlockSolarPanel() { super(Material.IRON); setCreativeTab(TechRebornCreativeTab.instance); - this.setDefaultState(this.getBlockState().getBaseState().withProperty(TYPE, EnumPanelType.Basic)); + this.setDefaultState(this.getBlockState().getBaseState().withProperty(TYPE, EnumPanelType.Basic).withProperty(ACTIVE, false)); setHardness(2.0F); this.setDefaultState(this.getStateFromMeta(0)); for (int i = 0; i < panes.length; i++) { - ShootingStar.registerModel(new ModelCompound(ModInfo.MOD_ID, this, i, "machines/generators").setInvVariant("type=" + panes[i])); + ShootingStar.registerModel(new ModelCompound(ModInfo.MOD_ID, this, i, "machines/generators").setInvVariant("type=" + panes[i] + ",active=false")); } } @Override public int getMetaFromState(IBlockState state) { - return state.getValue(TYPE).ordinal(); + int active = state.getValue(ACTIVE) ? EnumPanelType.values().length : 0; + return state.getValue(TYPE).ordinal() + active; } protected BlockStateContainer createBlockState() { - return new BlockStateContainer(this, new IProperty[]{TYPE}); + return new BlockStateContainer(this, TYPE, ACTIVE); } @Override public IBlockState getStateFromMeta(int meta) { - return getDefaultState().withProperty(TYPE, EnumPanelType.values()[meta]); + boolean active = false; + if(meta >= EnumPanelType.values().length){ + active = true; + meta -= EnumPanelType.values().length; + } + return getDefaultState().withProperty(TYPE, EnumPanelType.values()[meta]).withProperty(ACTIVE, active); } @Override diff --git a/src/main/java/techreborn/itemblocks/ItemBlockSolarPanel.java b/src/main/java/techreborn/itemblocks/ItemBlockSolarPanel.java index b49a4e513..534119332 100644 --- a/src/main/java/techreborn/itemblocks/ItemBlockSolarPanel.java +++ b/src/main/java/techreborn/itemblocks/ItemBlockSolarPanel.java @@ -3,7 +3,8 @@ package techreborn.itemblocks; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import techreborn.blocks.generator.solarpanel.EnumPanelType; +import techreborn.blocks.generator.solarpanel.BlockSolarPanel; +import techreborn.init.ModBlocks; public class ItemBlockSolarPanel extends ItemBlock { @@ -13,6 +14,6 @@ public class ItemBlockSolarPanel extends ItemBlock { } public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName() + "." + EnumPanelType.values()[stack.getItemDamage()].getName(); + return super.getUnlocalizedName() + "." + ModBlocks.SOLAR_PANEL.getStateFromMeta(stack.getItemDamage()).getValue(BlockSolarPanel.TYPE).getName().toLowerCase(); } } diff --git a/src/main/java/techreborn/tiles/generator/TileSolarPanel.java b/src/main/java/techreborn/tiles/generator/TileSolarPanel.java index 315e9e201..4f2105f7c 100644 --- a/src/main/java/techreborn/tiles/generator/TileSolarPanel.java +++ b/src/main/java/techreborn/tiles/generator/TileSolarPanel.java @@ -34,6 +34,7 @@ import reborncore.api.power.EnumPowerTier; import reborncore.common.powerSystem.TilePowerAcceptor; import reborncore.common.util.StringUtils; import techreborn.Core; +import techreborn.blocks.generator.solarpanel.BlockSolarPanel; import techreborn.blocks.generator.solarpanel.EnumPanelType; import techreborn.init.ModBlocks; @@ -42,6 +43,7 @@ import java.util.List; public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop { boolean canSeeSky = false; + boolean lastSate = false; int powerToAdd; EnumPanelType panel; @@ -62,6 +64,12 @@ public class TileSolarPanel extends TilePowerAcceptor implements IToolDrop { } if (world.getTotalWorldTime() % 20 == 0) { canSeeSky = this.world.canBlockSeeSky(this.pos.up()); + if(lastSate != this.isSunOut()){ + this.world.setBlockState(this.getPos(), + this.world.getBlockState(this.getPos()).withProperty(BlockSolarPanel.ACTIVE, this.isSunOut())); + lastSate = isSunOut(); + } + } if (isSunOut()) { this.powerToAdd = panel.generationRateD; diff --git a/src/main/resources/assets/techreborn/blockstates/machines/generators/solar_panel.json b/src/main/resources/assets/techreborn/blockstates/machines/generators/solar_panel.json index 6f698edad..8620ec392 100644 --- a/src/main/resources/assets/techreborn/blockstates/machines/generators/solar_panel.json +++ b/src/main/resources/assets/techreborn/blockstates/machines/generators/solar_panel.json @@ -1,7 +1,10 @@ { "forge_marker": 1, "defaults": { - "textures": {}, + "textures": { + "particle": "techreborn:blocks/machines/generators/generator_bottom", + "down": "techreborn:blocks/machines/generators/generator_bottom" + }, "transform": "forge:default-block", "model": "cube_bottom_top" }, @@ -11,45 +14,42 @@ "model": "orientable", "textures": {} }, + "active": { + "true": { + "textures": { + "side": "techreborn:blocks/machines/generators/solar_panel_side_on" + } + }, + "false": { + "textures": { + "side": "techreborn:blocks/machines/generators/solar_panel_side_off" + } + } + }, "type": { "basic": { "textures": { - "particle": "techreborn:blocks/machines/generators/panels/basicsolar_panel_side", - "top": "techreborn:blocks/machines/generators/panels/basicsolar_panel_top", - "down": "techreborn:blocks/machines/generators/generator_bottom", - "side": "techreborn:blocks/machines/generators/panels/basicsolar_panel_side" + "top": "techreborn:blocks/machines/generators/panels/basicsolar_panel_top" } }, "hybrid": { "textures": { - "particle": "techreborn:blocks/machines/generators/panels/hybridsolar_panel_side", - "top": "techreborn:blocks/machines/generators/panels/hybridsolar_panel_top", - "down": "techreborn:blocks/machines/generators/generator_bottom", - "side": "techreborn:blocks/machines/generators/panels/hybridsolar_panel_side" + "top": "techreborn:blocks/machines/generators/panels/hybridsolar_panel_top" } }, "advanced": { "textures": { - "particle": "techreborn:blocks/machines/generators/panels/advancedsolar_panel_side", - "top": "techreborn:blocks/machines/generators/panels/advancedsolar_panel_top", - "down": "techreborn:blocks/machines/generators/generator_bottom", - "side": "techreborn:blocks/machines/generators/panels/advancedsolar_panel_side" + "top": "techreborn:blocks/machines/generators/panels/advancedsolar_panel_top" } }, "ultimate": { "textures": { - "particle": "techreborn:blocks/machines/generators/panels/ultimatesolar_panel_side", - "top": "techreborn:blocks/machines/generators/panels/ultimatesolar_panel_top", - "down": "techreborn:blocks/machines/generators/generator_bottom", - "side": "techreborn:blocks/machines/generators/panels/ultimatesolar_panel_side" + "top": "techreborn:blocks/machines/generators/panels/ultimatesolar_panel_top" } }, "quantum": { "textures": { - "particle": "techreborn:blocks/machines/generators/panels/quantumsolar_panel_side", - "top": "techreborn:blocks/machines/generators/panels/quantumsolar_panel_top", - "down": "techreborn:blocks/machines/generators/generator_bottom", - "side": "techreborn:blocks/machines/generators/panels/quantumsolar_panel_side" + "top": "techreborn:blocks/machines/generators/panels/quantumsolar_panel_top" } } } diff --git a/src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/advancedsolar_panel_side.png b/src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/advancedsolar_panel_side.png deleted file mode 100644 index 14e75870b1c995f71d812649c7654475a69c3a67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmV;50(Jd~P)a?ZBEF`dusY{5 z*hJ`uHT&#+_F88@4#|8dB9;GyB*pT(JmQ->c$LW`vc83IY7+}nBTa%5x~wTXHC?pt?VD-;N%p+#9NT`c0nK) z_r42B_4A8cGQ-*BHID0N0{M`VYNrh(H*%;oE)Ys?fF!ndP&urjw10%^aUE5fTt2Fy zu=fMI)dLjDRcwDL2{u>!hV8FqLnSsn;hRkR|zfyw%wI0uOCXkt66wy=$i>vGK#a7^7dJRu>1^j#juJ96k z)OXMaCfxy8y>sA0G1#f^iN?{V(t}t%vsg%^KnVE{V>2!o954Tg>1-V2rfG2VQS>Ra zAZAwpv2>OOA~4bNS(0|zd5dno-p<3~2|~gI47BgL_!@N6oS@!G=p-{}=v>C>j6_3f z5Tk1rA=l9=Htnvp;Kw-AQ=3i(9?-1yQQJVj7a0KMJb^`W52<$(! zch0ua23r}ke?>X^7>{wz(`rFFX2F0`5Am=HBB?_79O5A*B*UY4EZ5)(y_1Zn>G##) kkxVH-MA1ug#UmR00m^Nq=PX@3&;S4c07*qoM6N<$g3YVFD zGieV$tl4Mpv-jFhl7CZ0w)_qmiuqS%q*mAQEMG=^xrmwUDyEkTBBmA#)b^Uny!aPR zR=?M4%|ojug|Tc}g#t-U5H zn_sX|-$iAsjdFUPde-Y^DTt?}PBm-IylXns^+P}pc z>XiI10*)p#@j-MyQG##|K^)fK1FlzKaQo2pP!6J{D`LIhmcYaZ(AC>d32YvW34vP^ zu*&Z+0+q!9M`-%W_=kYsp|LtKO#Scn4}m=9#^4Oc!0y55eku-5 zMtT2L3-S>w`qTzU2Q`q$RpN0-2h@-a4&%O3hX?deHl(HJtH(WsT7-n6oBB$Jboc@5 WLZIRMmiIXT0000Nklc**682#A2dy#W^l1p!ks1#KWD(58$m#9|aj3=>6d`U$IZ zt|R00n86Qg_SyTaz0Q6dl6hA|y6^!hiiI}?BsaG3B2z$YEr)1&1G6hx88gdS8hcA^ zM!pLsR}p@d0ZHZG;-?;oKgPo60&rzp#Z@-Fz;}e9IUW2S| zZp+EV-LEpKe%5RyGn`&r;i!HpCs%1w?WBR!dLFe#6Oq(9$Wm?#d(|3B`-i9;)ls43 z@?j0zyWg-=Ily+gg3V7Q+2)I1u=%-+!pNqt{Di5@KvV)IR7b}0=)$X^(p5@B>bZ~2_v4THl2mDvu@ zOdLIG4#Xk`kyy>rKn!MD{tfX@+>Y~30ajlK-Auqp`wk~pV6b~+^>zgGbS`6bMv6fl zh)JAAg!XR{19Hjj2ypZz`2mxQ)`r4hru#AiT;VC$!_zQ|L6}7eCcgy1%NTWpzVgvOr>Ed0cP|yNc`+=G|F;0E{0ssI2007*qoM6N<$g2j0;NB{r; diff --git a/src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/ultimatesolar_panel_side.png b/src/main/resources/assets/techreborn/textures/blocks/machines/generators/panels/ultimatesolar_panel_side.png deleted file mode 100644 index 747c524857ef3767bc8f6bbad2b5189b6f490e89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 653 zcmV;80&@L{P)c*zA31yK<0y~#^JP&6e|zy?wRY>LQ2Eyl-)K_aM4KVfyw zadgVEu@7tZIcM*^&R%#MU?PES1CTY6g+SI;L0B9HHejeS1x9 ziu?SrB!VweAo1*5oSgr_*LnlB#worv&#u7k^|S9B?0j_GK$Y5^-F@sG)eu;E36jhg zcye*;GY_hsG_R5wj!(~VSUu*+`!uOit0TUaMWx5Jw<_vA_(Bk`HFd3zO`H;9{7B zAo-ylb3!}ng33C99+L$nFvG?O{6fhybAB!B7F1D;f^js3e7@} z%)?9XPWr*Anp6EaNBr!d$>2;(jec2u4dUYUXc?w~w-y-{X$+sa8=x1ipi`FM95Wz0-X8j)UZwagdqjM5150xM~IwGe1 zCW4zJm_-j-I=d->&4ppf^WOxl@;i(`ZL!1do4$Cwr39_jfdLwSx4R$Yu`mpWKMb}H zZ04+yY#NtfBl~p^SOfKA5{5+gg#_iG6Db;*A6ula>_YL5_N{ubQh9t}quMJtU}^y~2xrYfcAJ