From dd1b9c5e52e9e4fa747a638e6ddf7d7fc7a02605 Mon Sep 17 00:00:00 2001 From: Sen Date: Sun, 6 Jul 2025 18:13:19 +0200 Subject: [PATCH] remove banners --- .../tileentity/TileEntityBannerRenderer.java | 142 ------- .../TileEntityItemStackRenderer.java | 8 +- .../TileEntityRendererDispatcher.java | 2 - .../main/resources/textures/blocks/banner.png | Bin 2029 -> 0 bytes .../resources/textures/blocks/banner_base.png | Bin 852 -> 0 bytes .../textures/blocks/banner_border.png | Bin 903 -> 0 bytes .../textures/blocks/banner_bricks.png | Bin 1078 -> 0 bytes .../textures/blocks/banner_circle.png | Bin 956 -> 0 bytes .../textures/blocks/banner_cross.png | Bin 1115 -> 0 bytes .../textures/blocks/banner_curly_border.png | Bin 1045 -> 0 bytes .../textures/blocks/banner_diagonal_left.png | Bin 996 -> 0 bytes .../textures/blocks/banner_diagonal_right.png | Bin 1020 -> 0 bytes .../blocks/banner_diagonal_up_left.png | Bin 1026 -> 0 bytes .../blocks/banner_diagonal_up_right.png | Bin 1014 -> 0 bytes .../textures/blocks/banner_flower.png | Bin 1219 -> 0 bytes .../textures/blocks/banner_gradient.png | Bin 1960 -> 0 bytes .../textures/blocks/banner_gradient_up.png | Bin 2016 -> 0 bytes .../blocks/banner_half_horizontal.png | Bin 873 -> 0 bytes .../blocks/banner_half_horizontal_bottom.png | Bin 931 -> 0 bytes .../textures/blocks/banner_half_vertical.png | Bin 880 -> 0 bytes .../blocks/banner_half_vertical_right.png | Bin 904 -> 0 bytes .../textures/blocks/banner_rhombus.png | Bin 983 -> 0 bytes .../resources/textures/blocks/banner_rune.png | Bin 8856 -> 0 bytes .../textures/blocks/banner_skull.png | Bin 1193 -> 0 bytes .../textures/blocks/banner_small_stripes.png | Bin 888 -> 0 bytes .../blocks/banner_square_bottom_left.png | Bin 907 -> 0 bytes .../blocks/banner_square_bottom_right.png | Bin 898 -> 0 bytes .../blocks/banner_square_top_left.png | Bin 892 -> 0 bytes .../blocks/banner_square_top_right.png | Bin 895 -> 0 bytes .../textures/blocks/banner_straight_cross.png | Bin 961 -> 0 bytes .../textures/blocks/banner_stripe_bottom.png | Bin 882 -> 0 bytes .../textures/blocks/banner_stripe_center.png | Bin 890 -> 0 bytes .../blocks/banner_stripe_downleft.png | Bin 1017 -> 0 bytes .../blocks/banner_stripe_downright.png | Bin 1020 -> 0 bytes .../textures/blocks/banner_stripe_left.png | Bin 883 -> 0 bytes .../textures/blocks/banner_stripe_middle.png | Bin 878 -> 0 bytes .../textures/blocks/banner_stripe_right.png | Bin 883 -> 0 bytes .../textures/blocks/banner_stripe_top.png | Bin 873 -> 0 bytes .../textures/blocks/banner_thing.png | Bin 3945 -> 0 bytes .../blocks/banner_triangle_bottom.png | Bin 1454 -> 0 bytes .../textures/blocks/banner_triangle_top.png | Bin 980 -> 0 bytes .../blocks/banner_triangles_bottom.png | Bin 996 -> 0 bytes .../textures/blocks/banner_triangles_top.png | Bin 978 -> 0 bytes .../java/common/block/tech/BlockCauldron.java | 43 +-- .../java/common/block/tile/BlockBanner.java | 144 ------- .../common/block/tile/BlockBannerHanging.java | 70 ---- .../block/tile/BlockBannerStanding.java | 40 -- .../main/java/common/init/BlockRegistry.java | 4 - common/src/main/java/common/init/Blocks.java | 2 - .../java/common/init/CraftingRegistry.java | 351 ------------------ common/src/main/java/common/init/Items.java | 2 - .../src/main/java/common/init/Registry.java | 1 - .../main/java/common/init/TileRegistry.java | 57 --- .../java/common/item/block/ItemBanner.java | 200 ---------- .../common/tileentity/TileEntityBanner.java | 347 ----------------- .../server/clipboard/ReorderRegistry.java | 2 - .../src/main/java/server/world/Converter.java | 27 +- server/src/main/java/server/world/Region.java | 2 +- 58 files changed, 6 insertions(+), 1438 deletions(-) delete mode 100755 client/src/main/java/client/renderer/tileentity/TileEntityBannerRenderer.java delete mode 100755 client/src/main/resources/textures/blocks/banner.png delete mode 100755 client/src/main/resources/textures/blocks/banner_base.png delete mode 100755 client/src/main/resources/textures/blocks/banner_border.png delete mode 100755 client/src/main/resources/textures/blocks/banner_bricks.png delete mode 100755 client/src/main/resources/textures/blocks/banner_circle.png delete mode 100755 client/src/main/resources/textures/blocks/banner_cross.png delete mode 100755 client/src/main/resources/textures/blocks/banner_curly_border.png delete mode 100755 client/src/main/resources/textures/blocks/banner_diagonal_left.png delete mode 100755 client/src/main/resources/textures/blocks/banner_diagonal_right.png delete mode 100755 client/src/main/resources/textures/blocks/banner_diagonal_up_left.png delete mode 100755 client/src/main/resources/textures/blocks/banner_diagonal_up_right.png delete mode 100755 client/src/main/resources/textures/blocks/banner_flower.png delete mode 100755 client/src/main/resources/textures/blocks/banner_gradient.png delete mode 100755 client/src/main/resources/textures/blocks/banner_gradient_up.png delete mode 100755 client/src/main/resources/textures/blocks/banner_half_horizontal.png delete mode 100755 client/src/main/resources/textures/blocks/banner_half_horizontal_bottom.png delete mode 100755 client/src/main/resources/textures/blocks/banner_half_vertical.png delete mode 100755 client/src/main/resources/textures/blocks/banner_half_vertical_right.png delete mode 100755 client/src/main/resources/textures/blocks/banner_rhombus.png delete mode 100755 client/src/main/resources/textures/blocks/banner_rune.png delete mode 100755 client/src/main/resources/textures/blocks/banner_skull.png delete mode 100755 client/src/main/resources/textures/blocks/banner_small_stripes.png delete mode 100755 client/src/main/resources/textures/blocks/banner_square_bottom_left.png delete mode 100755 client/src/main/resources/textures/blocks/banner_square_bottom_right.png delete mode 100755 client/src/main/resources/textures/blocks/banner_square_top_left.png delete mode 100755 client/src/main/resources/textures/blocks/banner_square_top_right.png delete mode 100755 client/src/main/resources/textures/blocks/banner_straight_cross.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_bottom.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_center.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_downleft.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_downright.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_left.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_middle.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_right.png delete mode 100755 client/src/main/resources/textures/blocks/banner_stripe_top.png delete mode 100755 client/src/main/resources/textures/blocks/banner_thing.png delete mode 100755 client/src/main/resources/textures/blocks/banner_triangle_bottom.png delete mode 100755 client/src/main/resources/textures/blocks/banner_triangle_top.png delete mode 100755 client/src/main/resources/textures/blocks/banner_triangles_bottom.png delete mode 100755 client/src/main/resources/textures/blocks/banner_triangles_top.png delete mode 100755 common/src/main/java/common/block/tile/BlockBanner.java delete mode 100644 common/src/main/java/common/block/tile/BlockBannerHanging.java delete mode 100644 common/src/main/java/common/block/tile/BlockBannerStanding.java delete mode 100755 common/src/main/java/common/init/TileRegistry.java delete mode 100755 common/src/main/java/common/item/block/ItemBanner.java delete mode 100755 common/src/main/java/common/tileentity/TileEntityBanner.java diff --git a/client/src/main/java/client/renderer/tileentity/TileEntityBannerRenderer.java b/client/src/main/java/client/renderer/tileentity/TileEntityBannerRenderer.java deleted file mode 100755 index 9d35dca7..00000000 --- a/client/src/main/java/client/renderer/tileentity/TileEntityBannerRenderer.java +++ /dev/null @@ -1,142 +0,0 @@ -package client.renderer.tileentity; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.lwjgl.opengl.GL11; - -import client.Client; -import client.renderer.GlState; -import client.renderer.model.ModelBanner; -import client.renderer.texture.LayeredColorMaskTexture; -import common.block.tile.BlockBannerStanding; -import common.collect.Lists; -import common.collect.Maps; -import common.color.DyeColor; -import common.init.Blocks; -import common.tileentity.TileEntityBanner; -import common.util.BlockPos; -import common.util.ExtMath; -import common.world.State; - -public class TileEntityBannerRenderer extends TileEntitySpecialRenderer { - private static class TimedTexture { - public long time; - public String texture; - - private TimedTexture() { - } - } - - private static final Map DESIGNS = Maps.newHashMap(); - private static final String BANNERTEXTURES = "textures/blocks/banner.png"; - private ModelBanner bannerModel = new ModelBanner(); - - public void renderTileEntityAt(TileEntityBanner te, double x, double y, double z, float partialTicks, int destroyStage) { - boolean flag = te.getWorld() != null; - boolean flag1 = !flag || te.getBlockType() == Blocks.banner; - int i = 0; - if(flag) { - State state = te.getBlockState(); - if(state.getBlock() == Blocks.banner) - i = state.getValue(BlockBannerStanding.ROTATION); - } -// long j = flag ? te.getWorld().getTime() : 0L; - double j = flag ? (double)(System.nanoTime() / 1000L) / 50000.0 /* te.getWorld().getTime() */ : (double)partialTicks; - GL11.glPushMatrix(); - float f = 0.6666667F; - - if(flag1) { - GL11.glTranslatef((float)x + 0.5F, (float)y + 0.75F * f, (float)z + 0.5F); - float f1 = (float)(i * 360) / 16.0F; - GL11.glRotatef(-f1, 0.0F, 1.0F, 0.0F); - this.bannerModel.bannerStand.showModel = true; - } - else { - float f2 = 0.0F; - - if(i == 2) { - f2 = 180.0F; - } - - if(i == 4) { - f2 = 90.0F; - } - - if(i == 5) { - f2 = -90.0F; - } - - GL11.glTranslatef((float)x + 0.5F, (float)y - 0.25F * f, (float)z + 0.5F); - GL11.glRotatef(-f2, 0.0F, 1.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.3125F, -0.4375F); - this.bannerModel.bannerStand.showModel = false; - } - - BlockPos blockpos = te.getPos(); - float f3 = (float)(blockpos.getX() * 7 + blockpos.getY() * 9 + blockpos.getZ() * 13) + (float)j; // + partialTicks; - this.bannerModel.bannerSlate.rotateAngleX = (-0.0125F + 0.01F * ExtMath.cos(f3 * (float)Math.PI * 0.02F)) * (float)Math.PI; - GlState.enableRescaleNormal(); - String resourcelocation = this.getTexture(te); - - if(resourcelocation != null) { - this.bindTexture(resourcelocation); - GL11.glPushMatrix(); - GL11.glScalef(f, -f, -f); - this.bannerModel.renderBanner(); - GL11.glPopMatrix(); - } - - GlState.color(1.0F, 1.0F, 1.0F, 1.0F); - GL11.glPopMatrix(); - } - - private String getTexture(TileEntityBanner te) { - String s = te.getPatternResourceLocation(); - - if(s.isEmpty()) { - return null; - } - else { - TimedTexture tex = (TimedTexture)DESIGNS.get(s); - - if(tex == null) { - if(DESIGNS.size() >= 256) { - long i = System.currentTimeMillis(); - Iterator iterator = DESIGNS.keySet().iterator(); - - while(iterator.hasNext()) { - String s1 = (String)iterator.next(); - TimedTexture tileentitybannerrenderer$timedbannertexture1 = (TimedTexture)DESIGNS.get(s1); - - if(i - tileentitybannerrenderer$timedbannertexture1.time > 60000L) { - Client.CLIENT.getTextureManager().deleteTexture(tileentitybannerrenderer$timedbannertexture1.texture); - iterator.remove(); - } - } - - if(DESIGNS.size() >= 256) { - return null; - } - } - - List list1 = te.getPatternList(); - List list = te.getColorList(); - List list2 = Lists.newArrayList(); - - for(TileEntityBanner.EnumBannerPattern tileentitybanner$enumbannerpattern : list1) { - list2.add("textures/blocks/banner_" + tileentitybanner$enumbannerpattern.getPatternName() + ".png"); - } - - tex = new TimedTexture(); - tex.texture = s; - Client.CLIENT.getTextureManager().loadTexture(tex.texture, new LayeredColorMaskTexture(BANNERTEXTURES, list2, list)); - DESIGNS.put(s, tex); - } - - tex.time = System.currentTimeMillis(); - return tex.texture; - } - } -} diff --git a/client/src/main/java/client/renderer/tileentity/TileEntityItemStackRenderer.java b/client/src/main/java/client/renderer/tileentity/TileEntityItemStackRenderer.java index d470a793..be544bda 100755 --- a/client/src/main/java/client/renderer/tileentity/TileEntityItemStackRenderer.java +++ b/client/src/main/java/client/renderer/tileentity/TileEntityItemStackRenderer.java @@ -2,7 +2,6 @@ package client.renderer.tileentity; import common.init.Items; import common.item.ItemStack; -import common.tileentity.TileEntityBanner; import common.tileentity.TileEntityChest; public class TileEntityItemStackRenderer { @@ -10,14 +9,9 @@ public class TileEntityItemStackRenderer { private final TileEntityChest chest = new TileEntityChest(0); private final TileEntityChest trapChest = new TileEntityChest(1); - private final TileEntityBanner banner = new TileEntityBanner(); public void renderByItem(ItemStack stack) { - if(stack.getItem() == Items.banner) { - this.banner.setItemValues(stack); - TileEntityRendererDispatcher.instance.renderTileEntityAt(this.banner, 0.0D, 0.0D, 0.0D, 0.0F); - } - else if(stack.getItem() == Items.trapped_chest) { + if(stack.getItem() == Items.trapped_chest) { TileEntityRendererDispatcher.instance.renderTileEntityAt(this.trapChest, 0.0D, 0.0D, 0.0D, 0.0F); } else if(stack.getItem() == Items.chest) { diff --git a/client/src/main/java/client/renderer/tileentity/TileEntityRendererDispatcher.java b/client/src/main/java/client/renderer/tileentity/TileEntityRendererDispatcher.java index a3ecbcf4..b90ad35c 100755 --- a/client/src/main/java/client/renderer/tileentity/TileEntityRendererDispatcher.java +++ b/client/src/main/java/client/renderer/tileentity/TileEntityRendererDispatcher.java @@ -9,7 +9,6 @@ import client.renderer.texture.TextureManager; import common.collect.Maps; import common.entity.Entity; import common.tileentity.TileEntity; -import common.tileentity.TileEntityBanner; import common.tileentity.TileEntityChest; import common.tileentity.TileEntityDisplay; import common.tileentity.TileEntityPiston; @@ -50,7 +49,6 @@ public class TileEntityRendererDispatcher this.mapSpecialRenderers.put(TileEntityDisplay.class, new TileEntityDisplayRenderer()); this.mapSpecialRenderers.put(TileEntityPiston.class, new TileEntityPistonRenderer()); this.mapSpecialRenderers.put(TileEntityChest.class, new TileEntityChestRenderer()); - this.mapSpecialRenderers.put(TileEntityBanner.class, new TileEntityBannerRenderer()); for (TileEntitySpecialRenderer tileentityspecialrenderer : this.mapSpecialRenderers.values()) { diff --git a/client/src/main/resources/textures/blocks/banner.png b/client/src/main/resources/textures/blocks/banner.png deleted file mode 100755 index e38d28e2b7a8356fafed5b3c8237df7f3f4bbee6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2029 zcmVPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4Mn3v8szLjV8=e@R3^RCwC$ zT0L*vMi70w+&k%DTeAEiyRZQP{!C!lDP0e1kRnCORB;moNEZZf zVF`%=JBE@ta!$HC>v-gnn?f35IJZmkc;}7-2;$z6dpol;Z{EyO0l>k*fy1dd=ir=! zQmXjN^Bi3AJcrgAQj}6~&S5+r!x#f=EdW4kUCikd`i{@buXlEK<{o_V_^x|!`zoIQ zvI_us{_9`<$!o;y?d`eAWP-t9Q2eMd21+R;Nm3|9i`QBg_w;%_SZiUeMV4jA^Bi#; zLu-vVj*;g%*4NkJoI{@HC4$SA0(L;>8Ph@7}$Vf)8$A#cz9mV_7kD zF&GS>wJt5R*XtDvj-sgeZ>=qMCyF9OQB>^OY&Jul=g6`QXV0F6QVLm?q2KS%DNehu zwMG<0UgZH`GMNApOEDRg8^%P{hVfiKjghXQD&tk(d(bjA(97eq);@g9m_t#tulfFDN27KI;Oi;0u)l3=JSE!#jOoMDWujGMrdV#wY9amU65YDQ(DM7xHnK5Z7URR#+Xv} zkusYltHl6*?b{JfR=8ng{6|rQe!uTktnM>DPSdpDCQ{xHMmI@hzIN zNt&kK6eqcVRcM5mAxYb~ugwBJVDc#(Qh>Z5l>VwbLVBEU9fbU}>pf%OoP&uLuZMJ< zl_f)La<7lz$mgVS_(sV2LwFK0U@H%(TC5Kv>O>N&s-2c&o>hGJg;2i@4rrd!xoi8Z z8_E(=IC1eAp)SNioFF8rwIxto$N*IK$~g6bBN?iW?1a8=LXxCWs0^38e{pLA?}ww3 zH?#poO%06@Q2F>k9cYDsk@NzC6z`H1wqk;H;c4cKMqtEINK7Czd`b>6?_#YR(wkjZO9Re~P z`8WZ&zEqGOZIjWefYV27c|W4Amq@Hnw!kiKZL~WbmT@Qh^&BH4x0lLTYZ1rsT=`o{ zSEmY)@qA&$nWEf%Itt?)U>PcGs3k@_-0%0jEov%mWTnRqlq3n9b0A##@ZkdngMpXn zNe_}9BkA&@y~Kq)fXY~YLM-_JKkbnUQF@f2!;36=%FGu`=YX=tm`bEnbBxF10uX)Y^b*YSJcqRwNs=HLvM)D>vCFaOeT{;(O$2I*=&Y5j-iw)4ovyWQ$(8h z3lg*0tT5)8GiSU9tuhO=tp?4_n>Rmh-}xhnq`gO@@m!O%kpbx9$>Y1uho-5uxOM*% z932kv?#;=Ii8LPWAI#lbmAXRn(mXq#-YWeL=lb9M_)_sPl)|M8oA`78-BN}$O%wA1edDILpHJxSo41orI_ad7PCDtNlTJG6q?1lM>7Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4P@1-0n6B>(^d=1D|BRCwC$ zTDxu&K@>e>kL|d~t{?HEa3rJq1{NbCF@5F6i{8cY#uU^H+Pv4g(HwpxJqu|+-hX4RGmj?jYUCU=59=*DeUy6u9 zEVNXv_^t=-*b*=r4FLed;V{&WJpt{{=WrRr#Q6=*Iez@KX7uBUJVeqv>aa@$eD(E5g?oQ zktaY@e(}~*l!9{(nj~sPz$&&ek#2)Q$kc&IM}RjayhSnA1c#OXB0&~bhOs1I zGT|%T7eu-Z1`DEcyTRasl@db1mPeCBO(B$`6fR?6V~({ookaQse#D|0ZozQCPGKTH@yRf?!I_J|rCJNhXUo0e2 zuJbGW+_|^ydyZG@zkGAzvq1V4R zXp;E$>Y`!`KWTS7_Z$GIl=2{ipldsL`se{nV;x7&-~RP-vYJBLZ1vHoWpR2oy%1DW zG)b`Ov8&~RPknLDeX2~%>>9N!nyvnfkT8{2-nu)>->~W)=2t^QLqkJDLqkJDLqkJD eLqkJjIs5_mo?Rvgn)ws}0000Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N(+uF#u(@$^ZZZ8A(JzRCwC$ zT1`(AK^T694lNvP*_O5(ATdEGdJum?33m@B`~bcBKe+NIOgwn-=t&?kCfi~elj0FI2+IGO++`$;#u@b_3C%QWR4W0a|u}h+Q(hYCzj@dvZ8tS4dR~IPRHV z1jv=2W(ZhUqX-cB9#(~>3#6TZi3u{aGE5}_S66(j>w-kL!Eiy;ZZ#O5uvS7S-12CK z=qZFIDTT)vSeIiemo;rr8v?{SKt33`P}n6-{K=4vs1;(WQ$R)gC!PSI`oddaB`dGT z>99BolQn?0M`LmGABcEC;<`6IR55O!9%HDMEk6xB#*kCc0DS~Rz2g%X|H5aK6jnVb zO-&b2T@6yAnmqp*VcF}rXMLNbBc;H``buOq^%%p_!~1aBHja;aFD44xZk-GzQf~4q z{M>!86u6J9^zZLeyMW-(v zRDzkl+xl%>GFoUyW8;o@WwtT(Vq+nf+<;4Zm=BM%I{TI*- z39Qvc#TI_DUbpW)08lMkAcUapxOn#X5eoS`*n08qua~{?6w*fX9JTpr931ur!fJ|U z2o@xJu2KxBFV1;Dm5DRE+Wa&c&2yiSD3w-Oyyxd{RCSN?YhYktU|?WiU|?WiU|?Wi dU|Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2NDk$IeL=AmjD0*$Vo&&RCwC$ znz3)wKorKmYpx^_s$Hi^8cHf5L0dqmWn@HRKw@A(Vqt@|D+41_NBSoq0TKfP6Ji2Y zAS5=#Mi3wsqJ*|dT{}QheCaWmGj{5h#?9c1?~^jTi*t!D_rCkRI}^C#h_^^@!}Uw2 zu`pZ0%eNH(z{_{_NF9#=;GA>#U$t7z9hLaB@A`ulW=nYg@%y1imWDM}Diy@Feevc+ z0Kl(|fth&&#Vr#6aN*(w0Kn4n)BXowWo0Gw&A7D#fIe;j01Cy)Kznc8Pj1CM{{ud7 zd+`bYAYX8AxUsPoi0|CJ-`@=2+`a#Ly^g7=DTr7oF71T4K3Mzo6%J$Av44Pbj$^MO(^7s(i< z_5hk9X#MN}0H&vkXlz>jdqCXtUc_O}Kdx&4fKf`pIR{OVx&tY z7!Q~*G*s&w0Dx>JjeJhWy@#)cn*+qZKVfKSns#6|Y*}`)IA9>PfQ%gAFy>Wu1NS4It5aKIq*N=gqXA1lDJTi%{vivKy>@PhB2-EWyLSly~QRf1gGzIH&v^(1vr4*9|15MLT#<{?t@?TmGa2SKGjRoR# z1O||v1N`hC^`KNr4*-Dju>zW=?d=DMxL*&T2zdxm2K8dEWw+dC2BIv3es>Max0(4f zu(nLBe{~;B6tP)r?7DWZrE9-_ML#Fb&IG>4zwAAE@gWd{5ae?@zSY(b&jAOatgsvD zz25)6cyhyG?7#i))lb-GMcny2_5Dy3WhJ1Gm#(2wZR5+TyX=UE4*V(&22GK`p@nd4(a#a5yX$)ZV6tF<5P~hs#;vR8p=)D4 z*8eb&RHBt?8*}9>zO1?py);Er1k=8_RLlkFi*p{JGI3@%SI(kRZF>U}Mrp;9r@Z_P wbN8@*m6Vi}l$4Z|l$4Z|l$4Z|l#~vqKNwcV2J%8>hX4Qo07*qoM6N<$f&}5^%>V!Z diff --git a/client/src/main/resources/textures/blocks/banner_circle.png b/client/src/main/resources/textures/blocks/banner_circle.png deleted file mode 100755 index c6d3774d654c913956b740d991b7ec8f46eee35e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 956 zcmV;t14I0YP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2NDP}EedSSM*si=PDw;TRCwC$ zTFY+JKomWbOkaz}O&@6&t%OwifCc3f5_Qi4sUHAa{-fLe1QH7tELl-ULP+coyQYFl zEmeTf;MhfKQ%^c9!dSNJl4LwVI5TIJ>o~{v-kG^`t|tUtaQxpO@e4cKo7h@k!v6aj z0AT;aS1ICL27*rKd_4T7B(qsaKrjoQJt+eKteGMJz->7Zdw1{EK%^8Ig9vn? zv>3S_w?{SsS66KSK)c;ev`0Px^-m}88N;>r3!HO&|KSAo*-uxh2xby8!Hz@%e8&E2 zYcT`HXm{mKPK*biTdt>10svsHSO5rt&sdNItrF0!{8#$b0D-3CMe4weRnTt+$gca$ zCqPtwG3sNKf^!a{wRlNl+Q5mU|Ca=oq`PPr>&dK-+x_0H8Kpi-%zTCMi{akX0QyATe8Gc1Q`o`7{U zngL?H$5o-S1oRrQK}KqroM}OOIUE-)A^=%O({ko=q;F-YLmf94Y)RA0Ce5=%mh(_wKG7S;gT9*w14|CvpI&ls%2bi|&J&;TPP zg=G&)M`jmD(+!d=1|OHbu6KUpCFwxz@Xq#TVm0*{!`g#;a9a)#Hl+Sf0Y`cb`G? zB+{#kiY<7?{mzZ&0Knox5rh!5Tn|qlJ%m-5#@_R{e^?IG6w=!11vZwaaCF?g5LZ() zPp}fQmrAn{^~E`ls4{V8x3N5h+UZ4*kR+8>TD=>r-=ylE#A{$+U|?WiU|?WiU|?Wi eU|?X74!;3@eZ5tPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4Q13;}Kd9{>OY?MXyIRCwC$ zTF+|}K^T3LO#0){q}w)03l)S~TSctB^`dOrg9pKb(2J;`H}Rx@gLu^cz>9(h4}up@ zvPJQ(w^p!FEmf*D$rfzWOdJn!!tQ3%&Cbq>>CS^drrEqD^SOuny@TOn#i&&n5NlUo2CiQc_dB&zfG7s zIgSq>zeVPz=rP>6+1%t`0|utg8YooC0DuK^0RZse(Ti{qu(Gn^QcXrNuljLt3gm_j ztHJRV6$r04SA8QhDo_`=wF|ad84boiW$--gP1(AVZs_YoNcc^}bTI zqisM~#e$TIi&J3K$O43*&RA;`5)%Oewc3H28W2{oFiOS22>?4~+f@gKbJ^rYfNb6$ zx&c9og;gpJPEq-V>KRJGIR{OXWJN%SMllq~U-#9uzYnXvLQW#u;0&dpG>uUsi_Nd! zk)agDya7T89zJ=KoCt8HgtI6riGag8G8y$1a1zlA06;NsV5e+@u?FglVQ`=yG)?gM z<@@ACKx|gnTfL*IuZpwI7zk;v_%dFgXCt6ewVQT0;#1*Br9jo*P1XiDD?d#Wu!iCY z=v1+zOpsM^ihTFF!bGQl(hcx)ZBeJaDmYUq(s4kNhzR)on=9=LQeh@DvU9#TIK8d# zPT5XgH|YJrN{moYZ!V))9Gu=q9!-;E8leoOs51uE;27xdi?#vXPG-U=76<1)Yli-3 zh(5r1FtRT(B~FD^DvV-ra2|FN!m;>>sm5WPUfWx>ciV=fU2TAPBaWQ>@@@L;DO4+EY=3V4W1?7>w|;bGQi6B| z&+*gKuKPH>{`1$Xt~Ch3*hmgvwzi{nl-;^4zaQeg-ubzBT-6y1sQ_Vcr`RMG&D3cG&D3c hG&D3cG&D4#;SbbsP@hhMHu?Yn002ovPDHLkV1lZ;2gU#Z diff --git a/client/src/main/resources/textures/blocks/banner_curly_border.png b/client/src/main/resources/textures/blocks/banner_curly_border.png deleted file mode 100755 index 5ea188e10182449785ab325b74e014d1768a6f9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1045 zcmV+w1nT>VP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N(A=efPh^6Y%PAJ02e0sxFLhFc6m2oay{Y~RDy#xnLl z)ByndAHPd+k0qUatyV*=R#Q5$q?}P>+}c>ir_VpKFK*ld@BvmT6#ziBS_J@<%jHZH zPs_=@;Q7<`JB8UI0KjS5A$xc4b*iygaRcRp)ha~R|ic@B? zu^y0Qm(uQsnr4eW7TRk@qpv>`ye=bWqp}EpluQq zLn4?Ihgu2p-JdV!ac;XEAtaj=wN!#Cp=}k2I3<(M0XizdrsKBdaK@@I6iJZ7aW6(o z2?jI2l_Q|75%K^Y@1iOkDJ7`jf$ z6em1V&5&5~tQ?USLb{#_@&xEp3ff|rnw%JIB`945bX0=84+vh2TuGb~Yv%#|Zi1pZ z#GzJ#GTL8zCCHPWcmy_I%&WZ}P7=RqV_XF%zX}U#fGkqjlHIkmM^%I1%o_jNmO-CV z6!J46ds0FJ^z?v!Ni1uds**Dp2C^5WRvOn;)t{^43|0Z@ZjcZ{7-P~g^uHj=UdO%Y zIwVc(0fZ3jY~PE_raq-ue|R5G)5hs>`-h3#wi{=OL`obl=ehG>J@lPm*?aZ&AY_9O zEX)<~t#PVO2gLo}Mx2QFe(>+ST=|s7^7i71`d@BeU3p#MAf*If?mj{N9~0I_z?>E8SK4y_mAa3Nhn$MlS^!_OylsV{XkSxR*qmbU@w>ELh6e#7E)#W z&TeyM8ugRQ&Vod#w9?w$PW(n?_b6Ti0|NsC0|NsC0|NsC0|NsCgKYQ<>-n*%>x*lG P00000NkvXXu0mjf?{U_u diff --git a/client/src/main/resources/textures/blocks/banner_diagonal_left.png b/client/src/main/resources/textures/blocks/banner_diagonal_left.png deleted file mode 100755 index c6f45ffa29b482c99f4ef0c99ff09d666308f408..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 996 zcmVPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4ShEk8B_i2witc1c7*RCwC$ zT0KwOKp1{5F<%2V;Uh4BREhG@4$zS?5qpP9{D5}t|6t`$RO-;7W2Zu-s#3SA8>w0( zC`wxjb!@7F@rCPc^&7Rd*A1td+sg-02pHo5>csCP%f8cHc5gP zwl-I>zC4HB4^;rb?#J&!4d;^T{NCOk7-O?O{*D%~ zv{pc|ZUO){N*e%x?VZ=@CBRF4&Vo{@BsBrXL;(OWQ=Ii(55@z_fU7G90N^-IXq;LC z!h|mg7Sz5R!KD<}_8&0D@bj11icf!AcNanQDMUJ(SOPjtd*yN&l}bfg$6ZQ0#+hKi zkk%Zzqa(wu_jSuoCjn7Rk8BnIz*Ip82!Ts!D+!rl0EgpTrK@h%e+)GJ-$bv@}3%K(0st;)z7-P`#BwGxSv5w1itNJooaFgnb=s;gHz&j+oqL^p` zWNdcCVF9oHR6)m?Y5Uk9B8mgSfUaqP%&o3CEO03WAtc)xP`B)+9gaCGeN>!s>PVL_*pps*F&Q9-)wEJhN`JcDVEkAz^a=#Icokfk;i83G?GcVtzF*Ey@yM_=XkyTtGD~U z7=&PY(!jUcNxT(hRF@Ujk>LH_&-rxaQhIB;ODb7MSCUAaYg3^XB_TJAoDQJUXd2s?u@_FR(H{hJ(ZAg`k_#@&pT>c&<3Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4Sh9)RX!p8x;@j!8s8RCwC$ zTF+0^KotIlEx!(QDL)ntkeDE#9>62VHr_p$_y_3K|AQ<4goy_a9z97nF(%%OHG*`5ywn%H^`m^@A}c?aMSx*tXq~p!Jn`eBS+$_^|#{ki~j}?I1U_spM^Ulw+KCEeAj6o}qd@(@ACbnw;vSdNr z?EA-H7$SY3uNmMk34c?R8h|WVAd>xQL&u5Z2G}6d6bFI)a3RaVqO!q5AE&&QQV>9u~Z z@)Py9+&({Vbd-b0B+y=MK0)R1414=k0Km*tvE!lH(j4^SBuR&zGhG>WeWJP-XniZgpWCmBX`kK%!JyY3Xjeextg3lwSn} q1qB5K1qB5K1qB5K1qB6#WcUYG90}G_u=8{P0000Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^xA z2_!3~HmAe@00V+aL_t(|+U;6RPZL2Heugez2fCDx!T}N!e8X9!&TFdi8&B zNK<4rQJ?v`?d2VBz?EbwEMo#`^+;l zC8&ZyAsACS90(yKd~IiY4I3--*#A%f0PKJKE;aTLV~p9ht@;Zq`#U%|0E@`z#>zZC zeg4t*cQw#wc>dG^0Q?=xVR=1=e8~X-Y+9QDfZe^pVC?q zQo{fa&%05p0o`Un-0B0sh2sWvVA9N{j{&lMA1eW!WmxksxMB1VaVt}Uo${#2~iZ4CLn1R$X0(km&JwS2G}4YiUYxb#I0~rENHd* zBIP4?${uTP6Xmn z2@e1${)vppf=*OlYy;VY(t();WLJX*k!_wXBW!!i?q%I3X-h4zv%MCnraq-uUVngc z$-&u4^@oW(c8ce*OiHtH`8f9;E(bnG^!l&f9tL6%f|)53-->7LwNYG`74;zD`^ES9 zbmddpblkhfiTYn2UtfE5?I1&DMur5|>Rhq;I3s?g?sEWOZZ-!(2ufua&mKR5nVrDii+BG= zIaDL0h0`mnE{x;oxOyS%ri={1q7cvLrvmPaF&1!T{LF53VH}0it6D;$Tv~qVeyx9_ w)IDlk4Gj$q4Gj$q4Gj$q4Gj$q4UP8j4>SAEpoINPwEzGB07*qoM6N<$f*%9N!~g&Q diff --git a/client/src/main/resources/textures/blocks/banner_diagonal_up_right.png b/client/src/main/resources/textures/blocks/banner_diagonal_up_right.png deleted file mode 100755 index e8cd6b18a3392ce8798bfcec5e65fac663bce925..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1014 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^xA z2_-p9l;_O=00VYOL_t(|+U;6BPuoBke$F|*25iDdU;wES1=yTb#J0^t7IZonxCSJ$9iQnhB_nx~m zK^+_l!MVD0J3Bkr*w`S^>rWru!`kv3wm+5t0NbCwOXa7kAKtd@;15?;QvjhNtS!&s z^WKk+6I1jVUOX!T0RE2Vv9y{;q2d4l){E-^fX%Hp=@r1XZ4`_3A6P6FVcWJ!6#xLN zi97&crZ5}29*qZ90hgB^0KoIS*f_NU1lbozLIve7hwvH0mHP*rbNu|}G~$!r)m!H? z(5H}j*u)AD$9_}=s^Bx$GR}kohG>1{j*bjB{;pKrbPCXl{iIX?08@DrAOt>RjUr@5 z0RoB-rm%1!BBMU7?-@R2Lvg_GMIH z7^H1yIFJgsy5dUL1xDKJ%l3k(>pOMa?5zf)53JM(b(4J=6-1{znj^^?pLe&`g*ebXK*syGEI==?f0GJ? z>x*uIP36sOoDPelu%HJ}VugE&eVG|SX8iYU5AYd-WsZm95eW~_C_pc=-;N4`!$9_+ zbYNxy+0`HgKvciU)eS^#Z`D0(+9Yka008Q5UdDA(pD`@0-bc0K;P|lqVxowh@=04J z<)*wM&z%QLq3;QL{nzhyLoo=!^rVGv<>Ss)leAN*WQS3YAm=DjXY-2aOB z;=*eh4l*+VeYN=nrK5A~ACv(A)00-yO*4gAnAQZ&jvX*o3&p|v#U=%-aV#$`U}b&` zZ$Eqm&5_VrU36@bXV|YbeGdT4&g4M|L8a>A`QwMM%yDeJeE&bou9`iC($P6q=Etyq zP`?m$Q#41g5QygrlOgxTIS;uqab~wNKZerLd7~h4F0HV5w=sU>x_ew+4Gj$q4Gj$q k4Gj$q4Gj$q4UNw555g_bF57b^W&i*H07*qoM6N<$g0yPF5&!@I diff --git a/client/src/main/resources/textures/blocks/banner_flower.png b/client/src/main/resources/textures/blocks/banner_flower.png deleted file mode 100755 index 67dc1ac902b23ae8a5a0e566e044a4a1ea812a33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1219 zcmV;!1U&nRP)Px#24YJ`L;$}4zW~4f2s4TR000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i^x2 z4hj{ltBolD00cuxL_t(|+U;7;Ya2%t{w5k((jhBLvSm|jD5SB|;Ku$33R-+H#gIcG z7ZU=_wWt0QIX3@8Tj-&OoI+2@iiARLCAYY=hNQ->ZQ1Kxw^;IyJ3WY5c1NpUvn%Lo z=L2KSYUbOSx9`3A-i`>m;P`)o$QK@L-og6HB3{1P1pvJK^-ziUMhX@m`GD3}7V-AC zzY?)*8Vulj!Pj3k008CL3IM=4w?pkGPoIrNN|7>%h0fO(Lf7T?)EeOGssjM%bUKmk zsW-sE?;qeXhJW3^!8ym#iS4&rXO2=5OeItnI~4}-7#rBmga_nlH*$-G8UORS<7USI z08pzK03q-g^No-x19UV0RrYd#z^Uzq^1y7_n5+RT%YtQDi7p~8r)t~}HGn)Z%d*gD zG|*@?dajSUfFwCZ<`+*rPboO(pg9uX0R1MW+HX>v0Kj?tGA6PZ5)&B(&1Ms(X^!Lp zF*%7SgY%Sv(j00P1N(<3$Ww}i`3eXj`1bo(>ISeZ3#Ms?EZb~0BL@Z-LkRK5MlC!c z&b|f!fKsu5xoUZA1BhCiTb9K+=l*~3S$r@5$^D}GC(H=|*x6dc&ej^fdH6XVZLecz zYYh)J@8Hq)Iv(HOh+hnerx0{QIUY^ZglU?gm>q;ka3%#BoPd~A@a9pmE4#aJX*mQY z!6|kDLV7d4iWZ>qgjKTZpd>g6PN4y66$3{ncC1|?)lyi7<6gw`0992c#`W6;lIDz( z!!$?0uDQAa`t8%fIPT}3Vw@buli&=-d+W>zsX~>PBs5Bd1l5?x&Vz)F7&A!NB+Z!= zQYVBSe(@PPS00u>s-t!0;IiF8o>DB6XGfTWjzb>oLH>d0o79?iijT}rUA0-b=(VI94XZT;>0B?-frLf6wbMg;}6{*CW^Lw z&>Bgk4C56%AK$$lx=&E+|McQrs0~6eS1seugX4H%G^)yqT8P{~_`TS!JjRCd_Tz~f zE86XLrzad#b^`k2lP|Hme~G>K2LOP%YPqM=e0>2%c@`JPHW<4OwS)b|OA2<)v2tq} zt4k&P{L3GpITEVXMaC99Gv0O2eE|3ep68B>$M-j+a`#;_iF9}W601uk?7i<^kku5; z5iAGVi}h+qeR0l1s;pKqaB90)T`FOB|I#-|luE1L`oxdlsO%oatD&Kxp`oFnp`oFn hp`oFnp`j5E{{cSj6znVqWC8#H002ovPDHLkV1nh)DsKP) diff --git a/client/src/main/resources/textures/blocks/banner_gradient.png b/client/src/main/resources/textures/blocks/banner_gradient.png deleted file mode 100755 index 8ce983200261baf61a3266d4515bc1cc6d7343c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1960 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 diff --git a/client/src/main/resources/textures/blocks/banner_half_horizontal_bottom.png b/client/src/main/resources/textures/blocks/banner_half_horizontal_bottom.png deleted file mode 100755 index 64fac368599c7df80ce38c9ac5a641f20fbb4564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 931 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 FV1m)i$c+F1 diff --git a/client/src/main/resources/textures/blocks/banner_rune.png b/client/src/main/resources/textures/blocks/banner_rune.png deleted file mode 100755 index 32e76206e3a0fa4f3c1240f561bc5ad90700cd26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8856 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 diff --git a/client/src/main/resources/textures/blocks/banner_skull.png b/client/src/main/resources/textures/blocks/banner_skull.png deleted file mode 100755 index ddf865340709a3fca3d8c8a07ee30591fd255e99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1193 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 diff --git a/client/src/main/resources/textures/blocks/banner_square_bottom_right.png b/client/src/main/resources/textures/blocks/banner_square_bottom_right.png deleted file mode 100755 index dd64ecaaa766acd78db9b170bd29a806cd200183..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 898 zcmV-|1AY97P)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4PZ7b!XlMF0Q;6iGxuRCwC$ zS}{-CKotHiF$oOVB!Pqhq)L>8b}0P`LF^qW@dMhm|AUo3QK>_Rj-5)7s!H9eZUnVR z&?s$FQpZlE5Pab}xEI-u0q0DG?7MHub1rA!=l9-y?_LO8Fx&wejRxxV`i&6;92qFnd>pe zLID6^^-Q0=yZ2^l4@eaFLYK-F-}RuKS^_REh5&%!a2RT*o`Ck3Q#h33(*6U+7=HdT z$M)H8YwGzjNGL=Wn+gIPO0Tu0@PHZ3jojIMZv44t+42wo0HuNs5CVtNF$q!;;AZ{{ z`Eme9*R*|kV8PJk^8nGfPdouU^YgbpqiJA_LCX@kJb*DKrw3e>^+obPqCLPH65gbk zY6AG%FBNojP21-UB1th79w6l|5OPW;R}Sb|wkwBY?h2_20n6^oMSwT+Ygqz1lE?#i zya!dG+6B^1Kqf;XE5lS0aCymYwJw;7x<;dM>kFEqJ9KR++%;{XYH(`biPFo9ii3lL zSicW0SSleD-14+6ky8lGXc`I)u$l?u8X-C^De^J)NTTVrwKKd}Tjl)}*GeRf_z10>!9ykQ{PC{4{S5T_c9 z96X|x+y6jN_F8s-;*fNzYH(+JBQ%>jlw$qS16Vy1om2OZiQG2ZXOTq8P4n`3?mb-h z-N&o-U%xx_*&qaqMFZd3op@msRb_=OBskvtJ>RYzN^hL^s(HeG%kA^?;Y2uy>;&4Y z-KS`_1~@)x0{|9_#>Akdas|4vfPTjWr6Zs19nTLb=!l`Zwu;)y9NvET3N1@~wK~t( ze4d;$nz#=DRF(=LgrH~Hc>d%u41FGZFW>*0xyn$ofas~&r~ zT=c0g#+Xl)@t$36We&~OU`$AuN-MA3AIEQ4b`P6ZK|w)5K|w)5K|w)5K|w)5K_MRg Y0^a^xwh?7DvH$=807*qoM6N<$f^|QMz5oCK diff --git a/client/src/main/resources/textures/blocks/banner_square_top_left.png b/client/src/main/resources/textures/blocks/banner_square_top_left.png deleted file mode 100755 index 762899894f238b03014027f68262f31cd3363276..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 892 zcmV-?1B3jDP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4Pb74-rM>i_@)4oO5oRCwC$ zS}||aKp1`3T$^O5T_Qxe^<{J*)*9eX3BM>NngH?d=Pd(gwi{RtGNPD>6`*7lAcUx`0WHVv+2Jv( zLZVW@anIEvz_0u?MZmfWtpJhlVOOZDK+*}AnIR)P!$cBrb;T#z7sR>@h6Pck8;rFE zgeR<&5ek<)nj&f%p;=1dF$UJ<$fW0V8B~S<(Fgc9MlK}o632dL$d9NFG0`a?Cl8#CMfZmgrQEKWjhSJ7eI4v8^liq`gBDNc+Bbk(8=i7$=jcxg1M%Zi#v_V4(Xo>`Sb)nc|oH?&M za2)_xUa~+4LCbOR^x=J&#ys|(zx_MP!DNKAR&Qgyn8nd???Bj1(GPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4Pd7CKS?*8l(m5lKWrRCwC$ zS}||aKp1`3T$^;L9j9&DA(fCyQebEqJEmf1K;j3$%KzxvKY_%+z{o@s2_dl|wx)tg zEmeTf;@CyBi7!0{bCK;B>RdY1zI#%ne2()ue!1^`@9s?CgChYNjRxxV`jzJqLU7F( zN%;7|9c%<7l+u8%MoFV0;Z-&VrQ610xmE4wayDt-3FtAC^H*O zwFX3QSSceEZFw|D)HFiVl)_^SY`{^-&*(O&3;|*u5ZoBKkXR*7{mxJjG7n~?x&&mr zf9eSkt}nU-Hg6ef><){qu%HJ}c57_X`cEwZ9%C?#xlo*!@Bo>z!m=Bsndt(uvq6fO zhY-_%sO@#!vyny8qyzx)pS+AyQ;#uJ*YCpV+UOkl4^y(_H_P7j2x;s19BY+X931)wqHc=j2v!2|a=8?8 zU!3!hD-(NmYn55Fj?agL#JRNc>g{3u#;JQ;UJVTm4Gj$q4Gj$q4Gj$q4GoRS@CO1` VcRHx5aYXPx#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N()CCwy=C*#H0oQ%OWYRCwC$ zT0u|LKotIlE$nX0wp$h!NFXsmK#f7UaqQy3n+Fpw-t=bt8-^=?!o-6IkDg3Pj6c8| z7$pJ8MiJ`|#C+{EHiIQL@kz}#CFn~+xg|ZMHFsyVVw^SVQzPD^g90LGA zO;-Uz;8N-tK_~-sGykc0Ie_E9asqjvs;T06K+?F+ya9OT=Wl&jQNS33QXpb^0Aox{ z4>&LDC&>eu_5goK_>*F;4Zz=iO;>SXIRS4-k`!~{0RuHeVsvAAkYvuFIvb5fz~u=c zspJ5{(nzJ(0P=su&mP@_ODQThO3>7bR}Pm;MbvZ^Yi~Y@8v?d-bomhA&B=Z+3qe^k;shKtMZ}cV@*OTXEwv&YY{(S=ChRAKC#{C{#x%Eo9CBLqjAsGt8v{&dyk> zbwOrBAk6v>EJwU*FuY))ilOk9rxZw{Fv$EaFsvwWDFy8?l!_yA8x+O>HC^=zBaV{< zUE<824223Nu|gmT_s_fmIO_|yz-qc6wE#Z~^K$@UkH!X#|I8Y|r4*W43CP6+93WRz zIO#!YZgzpB)t~~PZ}6ni0ZLnEnD*Mvkw=a$YXAV%6#lG0Bv*K_mkT;M)_uK(`iMnDE37#r2_qq#R&7{z5-Q40x=_y5kfE0@x~de74n zHJ8gLC+(haNU{?sZ&#mSbN3iq+f4w#*r?VsXuLiFRjcA?&jO{Lfb1X7n-sLeFh4tk zh3PUreEtrlKmxTo&)8hgh}-G84**Pz>mY=nWjlEB_yIJv;_Lfwq?1TDcaO0!UB=dS z_d=LWDFuQVpFCL~4X`i9Sb&xBGrNW9GB$UQJ%dECwEFBVFMgx4dz4-Y2?+@a2?+@a j2?+@a2?+@aiNWv>6^gfXhPHQN00000NkvXXu0mjfjNPJT diff --git a/client/src/main/resources/textures/blocks/banner_stripe_bottom.png b/client/src/main/resources/textures/blocks/banner_stripe_bottom.png deleted file mode 100755 index 5473f9012414edf55695f0319d6c5846d3f5ced0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 882 zcmV-&1C9KNP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4Pi4L7VR^Z)<@1W80eRCwC$ zT0KwOKp1|G9E1$mBq4zTq)L>8b}0P`iP$?-;s>;A{|767qEd$r9Xl0uJ~ zG)h}a>e#6S!56MWxX5-~2p3c7eD_R#9p|<0@%!=Ioe2iuND!PS>JEeu5 z5_Uf}006t6zDxP0Ne}+&fs=O00fd}xRF?4h%a6&Q^)3jwBM<<1@vH^_u;=pt0Jr0W z?CqU5w~hd%AO>10FNV%X?bH%*anS<+^m@HmJM{##4vyh7hD+}cIOq8J%Ng3IzujB= zn}VW{8Eh&D@EN<-)*=F?=^%4wvopivj_c_|000#87C;Dm#)c$lMZlo)U+7l@1lo=l zssr=3rC$Wd=DqR+h{`YC`ZT5BoP%bFUJ;PQtW)VW7==t7P&xvFDG@A+sU|?Y{bJri z+wnrtAX5}m5dm6ufw)yCt!hBW^#*cy!mg026mY$+UIYXyKg|%ZzD5xs@;#~wO&3Tz z0aH_CY-N~A0xmCkqVoc}x3{On!0Yw;wNv4?<4Mg1X{}aMHh-f7)=CIPTOQ32J%!LT zrSKU8>vPOzXG|N^h5#`S2yTp=ORN$rzcUns%y$V&r+|$1SDpZ&`l3r<#k{4*?y%Sj z3u*vux5g&Te`N{q8G~)jh3u?^22ef%f@vVTQJR`AAUzu-ckof)|3Fmsx?Xo=k#sBq z#KG3)dTcfI8N=G62XH$MPL2m3CJNhWosK0^Zt^Sq+@{>Xg*V6l`3Ap{-Q z!}BMPVOw+9dHMdz%YHJ2w9!06bvcK_qrr)&nxYwkm4LleE`-z<=RBm!#GYMsIfq8` zY)D9)N-MA4ALegdb&vCFU|?WiU|?WiU|?WiU|?WiU@#f}0!1ZP_NQ|tBLDyZ07*qo IM6N<$g0nq^q5uE@ diff --git a/client/src/main/resources/textures/blocks/banner_stripe_center.png b/client/src/main/resources/textures/blocks/banner_stripe_center.png deleted file mode 100755 index eddba20e04a6dc61135808135857f20647010695..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmV-=1BLvFP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2NDc93p|`TtpET63`s;mRCwC$ zS}||aKp1`3T-s)+9XCzVO09%c+5$tNTgRmA3`qO{*bsjMb?u)(VqjooLav1P0o@t| zm0F?*N{eF$k*2=n7|cbsI_4Jg z4dB`1dwBh_g1wy;?Cq=|E@pe$R&jWE7}!>+RA8FssKW-X@!{q&j=ubu_Q(Oi+-(1Q({|(`000Vx z1`q<5u|5e>5#TBRwR{>NaA`RK9mwmNd?O%k-6x&^q5R@s&r%A`IcSE+H3B&2a*lvu zsvk!O5Ye3U>JUcvLS4dR}*iK6> z0{qHPGX$(F(FhRr9(IMQ3#6TZnHe&+GfX7`y&j+HydcqSFf54D%?86aER_)ow>+95 zavGs5rEnPo>vGJ`&8jvi4FO^v;9nTIit&^<@hd}qM9mOWT>^2uf8q%ct}pxutYBzz ztPYE%Fuwe>|L)^) zAO;~=TGa8qaXwiYjq9?aZX~?F|98=@T*hw9J1kGsu_C^@>I{@aoK8UB?mtDX-p0vk z0|2nJs1NK^ER~_@d9==@aEJ1EXUIk(ptTZt<@Y(PQ49bH$^i9Yrc57v>0$-ob!My z6Ki%`t2xx_?LHwK>I>K|w)5K|w)5K|w)5K|w)5L18ld0~Gt6QuE3M Q>Hq)$07*qoM6N<$f&+SkdH?_b diff --git a/client/src/main/resources/textures/blocks/banner_stripe_downleft.png b/client/src/main/resources/textures/blocks/banner_stripe_downleft.png deleted file mode 100755 index d73f9b7cda4cce216276cee81138d1a1966f349a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 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 diff --git a/client/src/main/resources/textures/blocks/banner_stripe_right.png b/client/src/main/resources/textures/blocks/banner_stripe_right.png deleted file mode 100755 index f0a8a25211495faa3b4d438e1f54e2e44ac2bdca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 883 zcmV-(1C0EMP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4PfD9HwZ{r~_21xZ9fRCwC$ zS}||aKotJ2xisleJ5JiPl~M_*v;~Gjw~kHO8Ibq^up#~i>e@en#K6GFgfbw009%8g zQcDy;XmRW!+SHdEgL9GXI5b>>kbU<_C*?Wzv+wi0_rAL`;Di5dtJP|J6#jv~Aw0T& z3(ueKVsCo|d)q6J#Z3PJrV7sa$X2V>Vy~%It008Lwzy}!yRnQ9AHPogtP}~uv&Xvt zfM0nF>suDeZ5sfvv%3QT*gtrkZUW4L1prtqFNKar?bH%*b=3g?bUK|_JM{!KKb^p1 z3_bTJIOq8G-5%JdKOCtfm`KQUHWdVTjQ!D8VgzKVAG!J5?BI9Xan&IJ07{kt5CV^} z0SQVG;Aj3T^>To~neB%1K*2QB8v(L$pLha9<`-{0ODQ<#pc$gp2pBO@RHqC^A(ICZ zJpzIu5lo7yCP2LXl4an`c0;2aNKjX2nc3= znjv6ag+_pg_oyn=RUqvI%*>Fnm0>Cg==Jzi=LLx_gVBVj+-xw~VWosnwB*qYQBw$I zDTT)vSeGN8o7H7d83M#SAhWeOcl`KPz-C?m6 z7SsUBZjDVE|A{5QV+^J-AF^{28X#3tSazc{HB~@%Hb?Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2N4PjGMLdehyVZr`$5Lxq3h8&wFLD0Jpe$j*Ncr)Pe9}396n3AU> zShFqtW`JznD^Gw>e(|p_PzugDXm<8R7_C;T%Fci!mN9gHe_z=)7=?@uD6Ij(k_d`o zstFMP{(8>BrQ?NWgN!JqVg_j01>&~dw9y7O2oLwPRCE$8(y$A>@Kg|-bfkrbx z)O*wwnl6xb0x}sgwKGg50mC6rbX}ly8;lB~%xX|+4Tug{DrR0y5rTc>;v%i*A9f=PW%=hs9A?&;w|D zG&XPjD@%aS7;I}b6fa45fK*vw*@M#5bOG7bAVtheh$`}F!3A!C~oFJ2tmvB@ci)u*w!iz zU%tP}a-58i*6JNp$}2cM8(oOHDVinN3dE&CKIFbQ=OI@n&g?4X71ZjTF(Gj-t+0K2 zT)%PZ9+%g^z`(%3z`(%3z`(%3z`(%3U_Sf>PRL*|`TPnR00000NkvXXu0mjfD;$Bp diff --git a/client/src/main/resources/textures/blocks/banner_thing.png b/client/src/main/resources/textures/blocks/banner_thing.png deleted file mode 100755 index 7ae1cbcc13b8d87557f961f6fb9971ecd1d58a65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3945 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

-^G4_ zlD&YERUnljV=Kc%2B6#JGwlmvT?WI1s9ZM~p0ErN(oy~Vw212GX93m;_W#r%QfUzT zDlkVWJjTE}91HVlT?Um2fanAK2O~|1UEEQ%2r&)_%U;K=4{VZ7)C?W$ z??kex#~3yr+=ElIadp}IFj3fc^?EFkGRm*;bLakM;5mM+|MJaQzy={$S+?-CdNo}d zjjOVvCK4X+zc0#_$Jj`}xA}?sudtiV)<8PQR08_q@G;7j2F@?40DzTcYhX~munN=4 zpnhe8u};ADj~AO1ti!Rjv5xJvMZA9Z1=JvcUR^M@@RRmB1J40~)qEC&5Y!wOPai#m zWiH|9`P+Y9&SpcTbj zX@!lu{rrt$_b9&_8X6iJ8X6iJ8X6iJ8X6iJ8q?t~lCNXv>5?3C00000NkvXXu0mjf DcZ!IQ diff --git a/client/src/main/resources/textures/blocks/banner_triangle_bottom.png b/client/src/main/resources/textures/blocks/banner_triangle_bottom.png deleted file mode 100755 index bc37930839dd38a22399374a52d77b0d01ccb6af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1454 zcmV;f1yTBmP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RZ2NDP#5NkE+_y7O}KuJVFRCwC$ zTDxxCMif26p(LyDt{&E-kbwY>B_~CkFW?U0K1Be3K+@(v-1;X1q)3r6jYzH#1W0G3 zvx3Bc9YIMHE2~`v&|}G+6zgH`42KVKR|%x$sWe>j&dj;@o_mKB!x$1%gp^Y?2gVpP zuRVS82#>cn5&p0b00>|FR?D_K?ajYi@U%@z0GiRq+nf0Dr{5=E>va%tO<(}<#b*Kl z&|X>w0Q66K+W6V?Z>}5xHwtQ_YwH`@b#r`c3Antx003NETv*4qo`A!j-(VQW7!Cf0 zloEgZ*-OW7|LR}ao`V~TI-9)}1PtT2a6A(cFz1dl_s+t6`u9nHFgpYQ!0K`fU<|`J zPDz+40>;XJIeQwQaNHYcI)@i0R;G{nox5E=w1&sj4ScX}~ z7#znz7>0F@OZI_M8hCnG>gnX;%BA*DnZhVXqKLWqvp>kLO=+CAP6)&RXs_S-{lN(BCjU}%mtN=DS?jTq?@ymMLj2%WTLI{Lmm~YV0O{z_)=u#17+O(zD|5gR)A{@ubEQ)TD z{>?epHf-}YB}S2KhCk=LfM8a+GptO25;_{P0I;{W2O&fz#5M^xp#u$<$(Kc)9 zi4s2F_fuj=qY)TmnoVWLjHdB?a;oP7M?I`ILi3Pru1x961TarK6j3&^ism)DzT@6t zx~IV?inKg6^I8ajZnvA+q|IvzK@dO)kr6=kEY%k?qHHiXJW(T5m3cEwOf4vin!MaL z`vgi#9?X*GayD5bq{5LghTYv=2q8*|=yW=%$5bxc>ONx(-EJ42=Vj8te6Fm@*aUDG z$A}Y&I}7vmMbNC-Mfptc$=kG90!>fTInDGcsvg%;2Gs(SBtaO4TAtF7q)}q42zkv+ z5Crf%uW%tW-#yRMqQDl~>Ks5njGWhaOYG+5q^b-mDvHFdlx0gVVWu7}!$n>%`Vv$p zQXD#|sr;OCZE<<9oe^j?F(V29;yBK<$kfwjm8l|xwNt?6=`uD=F)J&BrjEF-o6&Xa5NH}e_2epLR@tCchNi%r>uNo~#H}zD zpd?93yF1gHd5Uh@F$FU3RGD|ysN#@X1VmAksx;@^TC1x}Mr*jOlPn@gRT*_iQgeHr zm(iDD9HZU3tBn_G^Z;oUFjbnK&pGFXd0o^8&=a1m7cfh!jo6~DkfuT152Y^keqQTp zJGR;)fu8D2<nmFKC8gB5GWE@FXKNAr2WKfE zwk~b`!TZ+t`AXewb{jNk(4aws1`QfCXwaZRg9Z&6G?)zk0EA&GA*5ywssI2007*qo IM6N<$g7y%nLjV8( diff --git a/client/src/main/resources/textures/blocks/banner_triangle_top.png b/client/src/main/resources/textures/blocks/banner_triangle_top.png deleted file mode 100755 index 77877c0fa41ceb8150158bd6edd7e8efcf38b5ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 980 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 A6#xJL diff --git a/common/src/main/java/common/block/tech/BlockCauldron.java b/common/src/main/java/common/block/tech/BlockCauldron.java index fcd2dfe9..d5ac1782 100755 --- a/common/src/main/java/common/block/tech/BlockCauldron.java +++ b/common/src/main/java/common/block/tech/BlockCauldron.java @@ -11,7 +11,6 @@ import common.init.Items; import common.item.CheatTab; import common.item.Item; import common.item.ItemStack; -import common.item.block.ItemBanner; import common.item.block.ItemSmallBlock; import common.item.tool.ItemArmor; import common.model.Model; @@ -19,7 +18,6 @@ import common.model.ModelProvider; import common.properties.Property; import common.properties.PropertyInteger; import common.rng.Random; -import common.tileentity.TileEntityBanner; import common.util.BlockPos; import common.util.BoundingBox; import common.util.ExtMath; @@ -553,46 +551,7 @@ public class BlockCauldron extends Block } } - if (i > 0 && item instanceof ItemBanner && TileEntityBanner.getPatterns(itemstack) > 0) - { - ItemStack itemstack1 = itemstack.copy(); - itemstack1.size = 1; - TileEntityBanner.removeBannerData(itemstack1); - - if (itemstack.size <= 1) // && !playerIn.creative) - { - playerIn.inventory.setInventorySlotContents(playerIn.inventory.currentItem, itemstack1); - } - else - { - if (!playerIn.inventory.addItemStackToInventory(itemstack1)) - { - worldIn.spawnEntityInWorld(new EntityItem(worldIn, (double)pos.getX() + 0.5D, (double)pos.getY() + 1.5D, (double)pos.getZ() + 0.5D, itemstack1)); - } - else - { - playerIn.connection.sendContainerToPlayer(playerIn.inventoryContainer); - } - -// playerIn.triggerAchievement(StatRegistry.bannerCleanedStat); - -// if (!playerIn.creative) -// { - --itemstack.size; -// } - } - -// if (!playerIn.creative) -// { - this.setWaterLevel(worldIn, pos, state, i - 1); -// } - - return true; - } - else - { - return false; - } + return false; } } } diff --git a/common/src/main/java/common/block/tile/BlockBanner.java b/common/src/main/java/common/block/tile/BlockBanner.java deleted file mode 100755 index 0a9c3650..00000000 --- a/common/src/main/java/common/block/tile/BlockBanner.java +++ /dev/null @@ -1,144 +0,0 @@ -package common.block.tile; - -import common.block.BlockContainer; -import common.block.Rotatable; -import common.block.Material; -import common.entity.npc.EntityNPC; -import common.init.Items; -import common.item.Item; -import common.item.ItemStack; -import common.model.Transforms; -import common.rng.Random; -import common.tags.TagObject; -import common.tileentity.TileEntity; -import common.tileentity.TileEntityBanner; -import common.util.BlockPos; -import common.util.BoundingBox; -import common.world.IBlockAccess; -import common.world.State; -import common.world.World; - -public class BlockBanner extends BlockContainer implements Rotatable -{ - public BlockBanner() - { - super(Material.WOOD); - float f = 0.25F; - float f1 = 1.0F; - this.setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f1, 0.5F + f); - } - - public boolean isPickStrict() - { - return true; - } - - public BoundingBox getCollisionBoundingBox(World worldIn, BlockPos pos, State state) - { - return null; - } - - public BoundingBox getSelectedBoundingBox(World worldIn, BlockPos pos) - { - this.setBlockBoundsBasedOnState(worldIn, pos); - return super.getSelectedBoundingBox(worldIn, pos); - } - - public boolean isFullCube() - { - return false; - } - - public boolean isPassable(IBlockAccess worldIn, BlockPos pos) - { - return true; - } - - /** - * Used to determine ambient occlusion and culling when rebuilding chunks for render - */ - public boolean isOpaqueCube() - { - return false; - } - - /** - * Return true if an entity can be spawned inside the block (used to get the player's bed spawn location) - */ - public boolean canSpawnInBlock() - { - return true; - } - - /** - * Returns a new instance of a block's tile entity class. Called on placing the block. - */ - public TileEntity createNewTileEntity() - { - return new TileEntityBanner(); - } - - /** - * Get the Item that this Block should drop when harvested. - */ - public Item getItemDropped(State state, Random rand, int fortune) - { - return Items.banner; - } - - public Item getItem(World worldIn, BlockPos pos) - { - return Items.banner; - } - - /** - * Spawns this Block's drops into the World as EntityItems. - */ - public void dropBlockAsItemWithChance(World worldIn, BlockPos pos, State state, float chance, int fortune) - { - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityBanner) - { - ItemStack itemstack = new ItemStack(Items.banner); - TagObject tag = new TagObject(); - tileentity.writeTags(tag); - itemstack.setTagInfo("BlockEntityTag", tag); - spawnAsEntity(worldIn, pos, itemstack); - } - else - { - super.dropBlockAsItemWithChance(worldIn, pos, state, chance, fortune); - } - } - - public boolean canPlaceBlockAt(World worldIn, BlockPos pos) - { - return !this.hasInvalidNeighbor(worldIn, pos) && super.canPlaceBlockAt(worldIn, pos); - } - - public void harvestBlock(World worldIn, EntityNPC player, BlockPos pos, State state, TileEntity te) - { - if (te instanceof TileEntityBanner) - { - TileEntityBanner tileentitybanner = (TileEntityBanner)te; - ItemStack itemstack = new ItemStack(Items.banner); - TagObject tag = new TagObject(); - TileEntityBanner.setBaseColorAndPatterns(tag, tileentitybanner.getBaseColor(), tileentitybanner.getPatterns()); - itemstack.setTagInfo("BlockEntityTag", tag); - spawnAsEntity(worldIn, pos, itemstack); - } - else - { - super.harvestBlock(worldIn, player, pos, state, (TileEntity)null); - } - } - - public Transforms getTransform() { - return Transforms.BANNER; - } - - public String getFallbackTexture() { - return "oak_planks"; - } -} diff --git a/common/src/main/java/common/block/tile/BlockBannerHanging.java b/common/src/main/java/common/block/tile/BlockBannerHanging.java deleted file mode 100644 index 5e109966..00000000 --- a/common/src/main/java/common/block/tile/BlockBannerHanging.java +++ /dev/null @@ -1,70 +0,0 @@ -package common.block.tile; - -import common.block.Block; -import common.item.Item; -import common.properties.Property; -import common.util.BlockPos; -import common.util.Facing; -import common.world.IWorldAccess; -import common.world.State; -import common.world.World; - -public class BlockBannerHanging extends BlockBanner -{ - public BlockBannerHanging() - { - this.setDefaultState(this.getBaseState().withProperty(FACING, Facing.NORTH)); - } - - public void setBlockBoundsBasedOnState(IWorldAccess worldIn, BlockPos pos) - { - Facing enumfacing = (Facing)worldIn.getState(pos).getValue(FACING); - float f = 0.0F; - float f1 = 0.78125F; - float f2 = 0.0F; - float f3 = 1.0F; - float f4 = 0.125F; - this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - - switch (enumfacing) - { - case NORTH: - default: - this.setBlockBounds(f2, f, 1.0F - f4, f3, f1, 1.0F); - break; - - case SOUTH: - this.setBlockBounds(f2, f, 0.0F, f3, f1, f4); - break; - - case WEST: - this.setBlockBounds(1.0F - f4, f, f2, 1.0F, f1, f3); - break; - - case EAST: - this.setBlockBounds(0.0F, f, f2, f4, f1, f3); - } - } - - public void onNeighborBlockChange(World worldIn, BlockPos pos, State state, Block neighborBlock) - { - Facing enumfacing = (Facing)state.getValue(FACING); - - if (!worldIn.getState(pos.offset(enumfacing.getOpposite())).getBlock().getMaterial().isSolid()) - { - this.dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - } - - super.onNeighborBlockChange(worldIn, pos, state, neighborBlock); - } - - protected Property[] getProperties() - { - return new Property[] {FACING}; - } - - protected Item getItemToRegister() { - return null; - } -} \ No newline at end of file diff --git a/common/src/main/java/common/block/tile/BlockBannerStanding.java b/common/src/main/java/common/block/tile/BlockBannerStanding.java deleted file mode 100644 index b1002805..00000000 --- a/common/src/main/java/common/block/tile/BlockBannerStanding.java +++ /dev/null @@ -1,40 +0,0 @@ -package common.block.tile; - -import common.block.Block; -import common.item.Item; -import common.item.block.ItemBanner; -import common.properties.Property; -import common.properties.PropertyInteger; -import common.util.BlockPos; -import common.world.State; -import common.world.World; - -public class BlockBannerStanding extends BlockBanner -{ - public static final PropertyInteger ROTATION = PropertyInteger.create("rotation", 0, 15); - - public BlockBannerStanding() - { - this.setDefaultState(this.getBaseState().withProperty(ROTATION, Integer.valueOf(0))); - } - - public void onNeighborBlockChange(World worldIn, BlockPos pos, State state, Block neighborBlock) - { - if (!worldIn.getState(pos.down()).getBlock().getMaterial().isSolid()) - { - this.dropBlockAsItem(worldIn, pos, state, 0); - worldIn.setBlockToAir(pos); - } - - super.onNeighborBlockChange(worldIn, pos, state, neighborBlock); - } - - protected Property[] getProperties() - { - return new Property[] {ROTATION}; - } - - protected Item getItemToRegister() { - return new ItemBanner(this).setDisplay("Banner"); - } -} \ No newline at end of file diff --git a/common/src/main/java/common/init/BlockRegistry.java b/common/src/main/java/common/init/BlockRegistry.java index 062d53b0..2898d08b 100755 --- a/common/src/main/java/common/init/BlockRegistry.java +++ b/common/src/main/java/common/init/BlockRegistry.java @@ -132,8 +132,6 @@ import common.block.tech.BlockTripWire; import common.block.tech.BlockTripWireHook; import common.block.tech.BlockWarpChest; import common.block.tech.BlockWorkbench; -import common.block.tile.BlockBannerHanging; -import common.block.tile.BlockBannerStanding; import common.block.tile.BlockStandingSign; import common.block.tile.BlockWallSign; import common.collect.BiMap; @@ -470,8 +468,6 @@ public abstract class BlockRegistry { register("display" + (density == 1 ? "" : density) + "_on", new BlockActiveDisplay(display).setHardness(1.0F).setStepSound(SoundType.STONE).setDisplay("Displaymodul (" + (density * 16) + "x" + (density * 16) + ")")); } - register("banner", (new BlockBannerStanding()).setHardness(1.0F).setStepSound(SoundType.WOOD).setDisplay("Banner")); - register("wall_banner", (new BlockBannerHanging()).setHardness(1.0F).setStepSound(SoundType.WOOD).setDisplay("Banner")); register("portal", (new BlockPortal()).setHardness(0.0F).setStepSound(SoundType.GLASS).setLightLevel(0.75F).setDisplay("Portal")); register("floor_portal", (new BlockFloorPortal(Material.PORTAL)).setHardness(0.0F).setDisplay("Portal")); diff --git a/common/src/main/java/common/init/Blocks.java b/common/src/main/java/common/init/Blocks.java index cf18d5a5..4d38c912 100755 --- a/common/src/main/java/common/init/Blocks.java +++ b/common/src/main/java/common/init/Blocks.java @@ -50,7 +50,6 @@ public abstract class Blocks { public static final BlockOre arsenic_ore = get("arsenic_ore"); public static final Block ash = get("ash"); public static final BlockWorkbench assembly_unit = get("assembly_unit"); - public static final BlockBannerStanding banner = get("banner"); public static final BlockBeacon beacon = get("beacon"); public static final BlockBedrock bedrock = get("bedrock"); public static final BlockDoor birch_door = get("birch_door"); @@ -554,7 +553,6 @@ public abstract class Blocks { public static final Block vanadium_block = get("vanadium_block"); public static final BlockOre vanadium_ore = get("vanadium_ore"); public static final BlockVine vine = get("vine"); - public static final BlockBannerHanging wall_banner = get("wall_banner"); public static final BlockWallSign wall_sign = get("wall_sign"); public static final BlockWarpChest warp_chest = get("warp_chest"); public static final BlockStaticLiquid water = get("water"); diff --git a/common/src/main/java/common/init/CraftingRegistry.java b/common/src/main/java/common/init/CraftingRegistry.java index 410462c0..eeea1b80 100755 --- a/common/src/main/java/common/init/CraftingRegistry.java +++ b/common/src/main/java/common/init/CraftingRegistry.java @@ -19,11 +19,9 @@ import common.entity.animal.EntitySheep; import common.inventory.InventoryCrafting; import common.item.Item; import common.item.ItemStack; -import common.item.block.ItemBanner; import common.item.material.ItemDye; import common.item.tool.ItemArmor; import common.tags.TagObject; -import common.tileentity.TileEntityBanner; public abstract class CraftingRegistry { @@ -212,15 +210,7 @@ public abstract class CraftingRegistry recipes.add(new RecipesArmorDyes()); recipes.add(new RecipeFireworks()); recipes.add(new RecipeRepairItem()); - - for (DyeColor color : DyeColor.values()) - { - add(ItemBanner.getColoredBanner(color), "###", "###", " | ", '#', BlockWool.getByColor(color).getItem(), '|', Items.stick); - } - recipes.add(new RecipeDuplicatePattern()); - recipes.add(new RecipeAddPattern()); - add(new ItemStack(Items.paper, 3), "###", '#', Items.reeds); addShapeless(new ItemStack(Items.book, 1), Items.paper, Items.paper, Items.paper, Items.leather); addShapeless(new ItemStack(Items.writable_book, 1), Items.book, Items.ink_sack, Items.feather); @@ -519,347 +509,6 @@ public abstract class CraftingRegistry ItemStack[] getRemainingItems(InventoryCrafting inv); } - private static class RecipeAddPattern implements IRecipe - { - public boolean matches(InventoryCrafting inv) - { - boolean flag = false; - - for (int i = 0; i < inv.getSizeInventory(); ++i) - { - ItemStack itemstack = inv.getStackInSlot(i); - - if (itemstack != null && itemstack.getItem() == Items.banner) - { - if (flag) - { - return false; - } - - if (TileEntityBanner.getPatterns(itemstack) >= 6) - { - return false; - } - - flag = true; - } - } - - if (!flag) - { - return false; - } - else - { - return this.getBannerPattern(inv) != null; - } - } - - public ItemStack getCraftingResult(InventoryCrafting inv) - { - ItemStack itemstack = null; - - for (int i = 0; i < inv.getSizeInventory(); ++i) - { - ItemStack itemstack1 = inv.getStackInSlot(i); - - if (itemstack1 != null && itemstack1.getItem() == Items.banner) - { - itemstack = itemstack1.copy(); - itemstack.size = 1; - break; - } - } - - TileEntityBanner.EnumBannerPattern type = this.getBannerPattern(inv); - - if (type != null) - { - String k = DyeColor.WHITE.getName(); - - for (int j = 0; j < inv.getSizeInventory(); ++j) - { - ItemStack itemstack2 = inv.getStackInSlot(j); - - if (itemstack2 != null && itemstack2.getItem() instanceof ItemDye dye) - { - k = dye.getColor().getName(); - break; - } - } - - TagObject tag = itemstack.getSubTag("BlockEntityTag", true); - List list = null; - - if (tag.hasList("Patterns")) - { - list = tag.getList("Patterns"); - } - else - { - list = Lists.newArrayList(); - tag.setList("Patterns", list); - } - - TagObject pattern = new TagObject(); - pattern.setString("Pattern", type.getPatternID()); - pattern.setString("Color", k); - list.add(pattern); - } - - return itemstack; - } - - public int getRecipeSize() - { - return 10; - } - - public ItemStack getRecipeOutput() - { - return null; - } - - public ItemStack[] getRemainingItems(InventoryCrafting inv) - { - ItemStack[] aitemstack = new ItemStack[inv.getSizeInventory()]; - - for (int i = 0; i < aitemstack.length; ++i) - { - ItemStack itemstack = inv.getStackInSlot(i); - - if (itemstack != null && itemstack.getItem().hasContainerItem()) - { - aitemstack[i] = new ItemStack(itemstack.getItem().getContainerItem()); - } - } - - return aitemstack; - } - - private TileEntityBanner.EnumBannerPattern getBannerPattern(InventoryCrafting p_179533_1_) - { - for (TileEntityBanner.EnumBannerPattern tileentitybanner$enumbannerpattern : TileEntityBanner.EnumBannerPattern.values()) - { - if (tileentitybanner$enumbannerpattern.hasValidCrafting()) - { - boolean flag = true; - - if (tileentitybanner$enumbannerpattern.hasCraftingStack()) - { - boolean flag1 = false; - boolean flag2 = false; - - for (int i = 0; i < p_179533_1_.getSizeInventory() && flag; ++i) - { - ItemStack itemstack = p_179533_1_.getStackInSlot(i); - - if (itemstack != null && itemstack.getItem() != Items.banner) - { - if (itemstack.getItem() instanceof ItemDye) - { - if (flag2) - { - flag = false; - break; - } - - flag2 = true; - } - else - { - if (flag1 || !itemstack.isItemEqual(tileentitybanner$enumbannerpattern.getCraftingStack())) - { - flag = false; - break; - } - - flag1 = true; - } - } - } - - if (!flag1) - { - flag = false; - } - } - else if (p_179533_1_.getSizeInventory() == tileentitybanner$enumbannerpattern.getCraftingLayers().length * tileentitybanner$enumbannerpattern.getCraftingLayers()[0].length()) - { - DyeColor j = null; - - for (int k = 0; k < p_179533_1_.getSizeInventory() && flag; ++k) - { - int l = k / 3; - int i1 = k % 3; - ItemStack itemstack1 = p_179533_1_.getStackInSlot(k); - - if (itemstack1 != null && itemstack1.getItem() != Items.banner) - { - if (!(itemstack1.getItem() instanceof ItemDye dye)) - { - flag = false; - break; - } - - if (j != null && j != dye.getColor()) - { - flag = false; - break; - } - - if (tileentitybanner$enumbannerpattern.getCraftingLayers()[l].charAt(i1) == 32) - { - flag = false; - break; - } - - j = dye.getColor(); - } - else if (tileentitybanner$enumbannerpattern.getCraftingLayers()[l].charAt(i1) != 32) - { - flag = false; - break; - } - } - } - else - { - flag = false; - } - - if (flag) - { - return tileentitybanner$enumbannerpattern; - } - } - } - - return null; - } - } - - private static class RecipeDuplicatePattern implements IRecipe - { - public boolean matches(InventoryCrafting inv) - { - ItemStack itemstack = null; - ItemStack itemstack1 = null; - - for (int i = 0; i < inv.getSizeInventory(); ++i) - { - ItemStack itemstack2 = inv.getStackInSlot(i); - - if (itemstack2 != null) - { - if (itemstack2.getItem() != Items.banner) - { - return false; - } - - if (itemstack != null && itemstack1 != null) - { - return false; - } - - DyeColor j = TileEntityBanner.getBaseColor(itemstack2); - boolean flag = TileEntityBanner.getPatterns(itemstack2) > 0; - - if (itemstack != null) - { - if (flag) - { - return false; - } - - if (j != TileEntityBanner.getBaseColor(itemstack)) - { - return false; - } - - itemstack1 = itemstack2; - } - else if (itemstack1 != null) - { - if (!flag) - { - return false; - } - - if (j != TileEntityBanner.getBaseColor(itemstack1)) - { - return false; - } - - itemstack = itemstack2; - } - else if (flag) - { - itemstack = itemstack2; - } - else - { - itemstack1 = itemstack2; - } - } - } - - return itemstack != null && itemstack1 != null; - } - - public ItemStack getCraftingResult(InventoryCrafting inv) - { - for (int i = 0; i < inv.getSizeInventory(); ++i) - { - ItemStack itemstack = inv.getStackInSlot(i); - - if (itemstack != null && TileEntityBanner.getPatterns(itemstack) > 0) - { - ItemStack itemstack1 = itemstack.copy(); - itemstack1.size = 1; - return itemstack1; - } - } - - return null; - } - - public int getRecipeSize() - { - return 2; - } - - public ItemStack getRecipeOutput() - { - return null; - } - - public ItemStack[] getRemainingItems(InventoryCrafting inv) - { - ItemStack[] aitemstack = new ItemStack[inv.getSizeInventory()]; - - for (int i = 0; i < aitemstack.length; ++i) - { - ItemStack itemstack = inv.getStackInSlot(i); - - if (itemstack != null) - { - if (itemstack.getItem().hasContainerItem()) - { - aitemstack[i] = new ItemStack(itemstack.getItem().getContainerItem()); - } - else if (itemstack.hasTag() && TileEntityBanner.getPatterns(itemstack) > 0) - { - aitemstack[i] = itemstack.copy(); - aitemstack[i].size = 1; - } - } - } - - return aitemstack; - } - } - private static class RecipeFireworks implements IRecipe { private ItemStack field_92102_a; diff --git a/common/src/main/java/common/init/Items.java b/common/src/main/java/common/init/Items.java index de3b9007..0094f66e 100755 --- a/common/src/main/java/common/init/Items.java +++ b/common/src/main/java/common/init/Items.java @@ -11,7 +11,6 @@ import java.util.Set; import common.collect.Lists; import common.collect.Sets; import common.item.*; -import common.item.block.ItemBanner; import common.item.block.ItemBed; import common.item.block.ItemBlock; import common.item.block.ItemButton; @@ -134,7 +133,6 @@ public abstract class Items { public static final ItemBlock assembly_unit = get("assembly_unit"); public static final ItemFood baked_potato = get("baked_potato"); public static final ItemBanHammer banhammer = get("banhammer"); - public static final ItemBanner banner = get("banner"); public static final ItemBlock beacon = get("beacon"); public static final ItemBlock bedrock = get("bedrock"); public static final ItemFood beef = get("beef"); diff --git a/common/src/main/java/common/init/Registry.java b/common/src/main/java/common/init/Registry.java index 0af89057..d855fdee 100755 --- a/common/src/main/java/common/init/Registry.java +++ b/common/src/main/java/common/init/Registry.java @@ -7,7 +7,6 @@ public abstract class Registry { SpeciesRegistry.register(); EntityRegistry.registerEggs(); ItemRegistry.register(); - TileRegistry.register(); CraftingRegistry.register(); SmeltingRegistry.register(); EntityRegistry.register(); diff --git a/common/src/main/java/common/init/TileRegistry.java b/common/src/main/java/common/init/TileRegistry.java deleted file mode 100755 index 6d9921aa..00000000 --- a/common/src/main/java/common/init/TileRegistry.java +++ /dev/null @@ -1,57 +0,0 @@ -package common.init; - -import java.util.Map; - -import common.collect.Maps; -import common.tileentity.TileEntity; -import common.tileentity.TileEntityBanner; -import common.tileentity.TileEntityBeacon; -import common.tileentity.TileEntityBrewingStand; -import common.tileentity.TileEntityChest; -import common.tileentity.TileEntityComparator; -import common.tileentity.TileEntityDaylightDetector; -import common.tileentity.TileEntityDispenser; -import common.tileentity.TileEntityDisplay; -import common.tileentity.TileEntityDropper; -import common.tileentity.TileEntityEnchantmentTable; -import common.tileentity.TileEntityFurnace; -import common.tileentity.TileEntityHopper; -import common.tileentity.TileEntityMobSpawner; -import common.tileentity.TileEntityPiston; -import common.tileentity.TileEntitySign; -import common.tileentity.TileEntityTianReactor; - -public abstract class TileRegistry { - public static final Map> NAME_TO_CLASS = Maps.>newHashMap(); - public static final Map, String> CLASS_TO_NAME = Maps., String>newHashMap(); - public static final Map, Integer> CLASS_TO_ID = Maps., Integer>newHashMap(); - - private static int nextId; - - private static void addMapping(Class cl, String id) { - if(NAME_TO_CLASS.containsKey(id)) - throw new IllegalArgumentException("Duplicate id: " + id); - NAME_TO_CLASS.put(id, cl); - CLASS_TO_NAME.put(cl, id); - CLASS_TO_ID.put(cl, ++nextId); - } - - static void register() { - addMapping(TileEntityFurnace.class, "Furnace"); - addMapping(TileEntityChest.class, "Chest"); - addMapping(TileEntityDispenser.class, "Trap"); - addMapping(TileEntityDropper.class, "Dropper"); - addMapping(TileEntitySign.class, "Sign"); - addMapping(TileEntityDisplay.class, "Display"); - addMapping(TileEntityPiston.class, "Piston"); - addMapping(TileEntityBrewingStand.class, "Cauldron"); - addMapping(TileEntityEnchantmentTable.class, "EnchantTable"); - addMapping(TileEntityBeacon.class, "Beacon"); - addMapping(TileEntityDaylightDetector.class, "DLDetector"); - addMapping(TileEntityHopper.class, "Hopper"); - addMapping(TileEntityComparator.class, "Comparator"); - addMapping(TileEntityBanner.class, "Banner"); - addMapping(TileEntityTianReactor.class, "TianReactor"); - addMapping(TileEntityMobSpawner.class, "MobSpawner"); - } -} diff --git a/common/src/main/java/common/item/block/ItemBanner.java b/common/src/main/java/common/item/block/ItemBanner.java deleted file mode 100755 index 256d3398..00000000 --- a/common/src/main/java/common/item/block/ItemBanner.java +++ /dev/null @@ -1,200 +0,0 @@ -package common.item.block; - -import java.util.List; - -import common.block.Block; -import common.block.tile.BlockBannerStanding; -import common.block.tile.BlockStandingSign; -import common.block.tile.BlockWallSign; -import common.collect.Lists; -import common.color.DyeColor; -import common.entity.npc.EntityNPC; -import common.init.Blocks; -import common.init.Items; -import common.item.CheatTab; -import common.item.Item; -import common.item.ItemStack; -import common.model.Model; -import common.model.ModelProvider; -import common.model.Transforms; -import common.tags.TagObject; -import common.tileentity.TileEntity; -import common.tileentity.TileEntityBanner; -import common.util.BlockPos; -import common.util.ExtMath; -import common.util.Facing; -import common.world.World; - -public class ItemBanner extends Item -{ - private final BlockBannerStanding block; - - public ItemBanner(BlockBannerStanding block) - { - this.block = block; - this.setTab(CheatTab.DECORATION); - } - - public static ItemStack getColoredBanner(DyeColor color) { - return Items.banner.getColored(color); - } - - private ItemStack getColored(DyeColor color) { - TagObject tag = new TagObject(); - TileEntityBanner.setBaseColorAndPatterns(tag, color, null); - TagObject tile = new TagObject(); - tile.setObject("BlockEntityTag", tag); - ItemStack stack = new ItemStack(this); - stack.setTag(tile); - return stack; - } - - public Block getBlock() - { - return this.block; - } - - /** - * Called when a Block is right-clicked with this Item - */ - public boolean onItemUse(ItemStack stack, EntityNPC playerIn, World worldIn, BlockPos pos, Facing side, float hitX, float hitY, float hitZ) - { - if (side == Facing.DOWN) - { - return false; - } - else if (!worldIn.getState(pos).getBlock().getMaterial().isSolid()) - { - return false; - } - else - { - pos = pos.offset(side); - - if (!playerIn.canPlayerEdit(pos, side, stack)) - { - return false; - } - else if (!this.block.canPlaceBlockAt(worldIn, pos)) - { - return false; - } - else if (worldIn.client) - { - return true; - } - else - { - if (side == Facing.UP) - { - int i = ExtMath.floord((double)((playerIn.rotYaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15; - worldIn.setState(pos, Blocks.banner.getState().withProperty(BlockStandingSign.ROTATION, Integer.valueOf(i)), 3); - } - else - { - worldIn.setState(pos, Blocks.wall_banner.getState().withProperty(BlockWallSign.FACING, side), 3); - } - - --stack.size; - TileEntity tileentity = worldIn.getTileEntity(pos); - - if (tileentity instanceof TileEntityBanner) - { - ((TileEntityBanner)tileentity).setItemValues(stack); - } - - return true; - } - } - } - - public String getDisplay(ItemStack stack) - { -// String s = "item.banner."; - DyeColor enumdyecolor = this.getBaseColor(stack); -// s = s + + ".name"; - return enumdyecolor.getSubject(0) + " " + super.getDisplay(stack); - } - - /** - * allows items to add custom lines of information to the mouseover description - */ - public void addInformation(ItemStack stack, EntityNPC playerIn, List tooltip) - { - TagObject tag = stack.getSubTag("BlockEntityTag", false); - - if (tag != null && tag.hasList("Patterns")) - { - List list = tag.getList("Patterns"); - - for (int i = 0; i < list.size() && i < 6; ++i) - { - TagObject pat = list.get(i); - DyeColor color = DyeColor.byName(pat.getString("Color")); - TileEntityBanner.EnumBannerPattern pattern = TileEntityBanner.EnumBannerPattern.getPatternByID(pat.getString("Pattern")); - - if (pattern != null) - { - tooltip.add(String.format(pattern.getDisplay(), pattern.isColorLowercase() ? - color.getSubject(pattern.getDisplayType()).toLowerCase() : color.getSubject(pattern.getDisplayType()))); - } - } - } - } - - public int getColorFromItemStack(ItemStack stack, int renderPass) - { - if (renderPass == 0) - { - return 16777215; - } - else - { - DyeColor enumdyecolor = this.getBaseColor(stack); - return enumdyecolor.getColor(); - } - } - - public List getItemTags() - { - List tags = Lists.newArrayList(); - for (DyeColor color : DyeColor.values()) - { - tags.add(this.getColored(color).getTag()); - } - return tags; - } - - /** - * gets the tab this item is displayed on - */ - public CheatTab getTab() - { - return CheatTab.DECORATION; - } - - private DyeColor getBaseColor(ItemStack stack) - { - TagObject tag = stack.getSubTag("BlockEntityTag", false); - DyeColor color = null; - - if (tag != null && tag.hasString("Base")) - { - color = DyeColor.byName(tag.getString("Base")); - } - else - { - color = DyeColor.WHITE; - } - - return color; - } - - public Transforms getTransform() { - return Transforms.BANNER; - } - - public Model getModel(ModelProvider provider, String name) { - return provider.getModel(provider.getEntityModel(), this.getTransform()); - } -} diff --git a/common/src/main/java/common/tileentity/TileEntityBanner.java b/common/src/main/java/common/tileentity/TileEntityBanner.java deleted file mode 100755 index c472dd76..00000000 --- a/common/src/main/java/common/tileentity/TileEntityBanner.java +++ /dev/null @@ -1,347 +0,0 @@ -package common.tileentity; - -import java.util.List; - -import common.collect.Lists; -import common.color.DyeColor; -import common.init.Items; -import common.item.ItemStack; -import common.network.Packet; -import common.packet.SPacketUpdateTileEntity; -import common.tags.TagObject; - -public class TileEntityBanner extends TileEntity -{ - private DyeColor baseColor; - - /** A list of all the banner patterns. */ - private List patterns; - private boolean field_175119_g; - private List patternList; - private List colorList; - - /** - * This is a String representation of this banners pattern and color lists, used for texture caching. - */ - private String patternResourceLocation; - - public void setItemValues(ItemStack stack) - { - this.patterns = null; - - if (stack.hasTag() && stack.getTag().hasObject("BlockEntityTag")) - { - TagObject nbttagcompound = stack.getTag().getObject("BlockEntityTag"); - - if (nbttagcompound.hasList("Patterns")) - { - this.patterns = Lists.newArrayList(); - for(TagObject pattern : nbttagcompound.getList("Patterns")) { - this.patterns.add(pattern.copy()); - } - } - - if (nbttagcompound.hasString("Base")) - { - this.baseColor = DyeColor.byName(nbttagcompound.getString("Base")); - } - else - { - this.baseColor = DyeColor.WHITE; - } - } - else - { - this.baseColor = DyeColor.WHITE; - } - - this.patternList = null; - this.colorList = null; - this.patternResourceLocation = ""; - this.field_175119_g = true; - } - - public void writeTags(TagObject compound) - { - super.writeTags(compound); - setBaseColorAndPatterns(compound, this.baseColor, this.patterns); - } - - public static void setBaseColorAndPatterns(TagObject compound, DyeColor baseColorIn, List patternsIn) - { - compound.setString("Base", baseColorIn.getName()); - - if (patternsIn != null) - { - compound.setList("Patterns", patternsIn); - } - } - - public void readTags(TagObject compound) - { - super.readTags(compound); - this.baseColor = DyeColor.byName(compound.getString("Base")); - this.patterns = compound.getList("Patterns"); - this.patternList = null; - this.colorList = null; - this.patternResourceLocation = null; - this.field_175119_g = true; - } - - /** - * Allows for a specialized description packet to be created. This is often used to sync tile entity data from the - * server to the client easily. For example this is used by signs to synchronise the text to be displayed. - */ - public Packet getDescriptionPacket() - { - return new SPacketUpdateTileEntity(this); - } - - public DyeColor getBaseColor() - { - return this.baseColor; - } - - public static DyeColor getBaseColor(ItemStack stack) - { - TagObject nbttagcompound = stack.getSubTag("BlockEntityTag", false); - return nbttagcompound != null && nbttagcompound.hasString("Base") ? DyeColor.byName(nbttagcompound.getString("Base")) : DyeColor.WHITE; - } - - /** - * Retrieves the amount of patterns stored on an ItemStack. If the tag does not exist this value will be 0. - */ - public static int getPatterns(ItemStack stack) - { - TagObject nbttagcompound = stack.getSubTag("BlockEntityTag", false); - return nbttagcompound != null && nbttagcompound.hasList("Patterns") ? nbttagcompound.getList("Patterns").size() : 0; - } - - public List getPatternList() - { - this.initializeBannerData(); - return this.patternList; - } - - public List getPatterns() - { - return this.patterns; - } - - public List getColorList() - { - this.initializeBannerData(); - return this.colorList; - } - - public String getPatternResourceLocation() - { - this.initializeBannerData(); - return this.patternResourceLocation; - } - - /** - * Establishes all of the basic properties for the banner. This will also apply the data from the tile entities nbt - * tag compounds. - */ - private void initializeBannerData() - { - if (this.patternList == null || this.colorList == null || this.patternResourceLocation == null) - { - if (!this.field_175119_g) - { - this.patternResourceLocation = ""; - } - else - { - this.patternList = Lists.newArrayList(); - this.colorList = Lists.newArrayList(); - this.patternList.add(TileEntityBanner.EnumBannerPattern.BASE); - this.colorList.add(this.baseColor); - this.patternResourceLocation = "b" + this.baseColor.ordinal(); - - if (this.patterns != null) - { - for (int i = 0; i < this.patterns.size(); ++i) - { - TagObject nbttagcompound = this.patterns.get(i); - TileEntityBanner.EnumBannerPattern tileentitybanner$enumbannerpattern = TileEntityBanner.EnumBannerPattern.getPatternByID(nbttagcompound.getString("Pattern")); - - if (tileentitybanner$enumbannerpattern != null) - { - this.patternList.add(tileentitybanner$enumbannerpattern); - String j = nbttagcompound.getString("Color"); - DyeColor color = DyeColor.byName(j); - this.colorList.add(color); - this.patternResourceLocation = this.patternResourceLocation + tileentitybanner$enumbannerpattern.getPatternID() + color.ordinal(); - } - } - } - } - } - } - - public int getColor() { - return 0xffffff; - } - - /** - * Removes all the banner related data from a provided instance of ItemStack. - */ - public static void removeBannerData(ItemStack stack) - { - TagObject nbttagcompound = stack.getSubTag("BlockEntityTag", false); - - if (nbttagcompound != null && nbttagcompound.hasList("Patterns")) - { - List nbttaglist = nbttagcompound.getList("Patterns"); - - if (nbttaglist.size() > 0) - { - nbttaglist.remove(nbttaglist.size() - 1); - - if (nbttaglist.isEmpty()) - { - stack.getTag().remove("BlockEntityTag"); - - if (stack.getTag().isEmpty()) - { - stack.setTag((TagObject)null); - } - } - } - } - } - - public static enum EnumBannerPattern - { - BASE("base", "b", "%s Banner", 0, false), - SQUARE_BOTTOM_LEFT("square_bottom_left", "bl", "%s rechtes Untereck", 0, false, " ", " ", "# "), - SQUARE_BOTTOM_RIGHT("square_bottom_right", "br", "%s linkes Untereck", 0, false, " ", " ", " #"), - SQUARE_TOP_LEFT("square_top_left", "tl", "%s rechtes Obereck", 0, false, "# ", " ", " "), - SQUARE_TOP_RIGHT("square_top_right", "tr", "%s linkes Obereck", 0, false, " #", " ", " "), - STRIPE_BOTTOM("stripe_bottom", "bs", "%s Bannerfuß", 1, false, " ", " ", "###"), - STRIPE_TOP("stripe_top", "ts", "%s Bannerhaupt", 0, false, "###", " ", " "), - STRIPE_LEFT("stripe_left", "ls", "%s rechte Flanke", -1, false, "# ", "# ", "# "), - STRIPE_RIGHT("stripe_right", "rs", "%s linke Flanke", -1, false, " #", " #", " #"), - STRIPE_CENTER("stripe_center", "cs", "%s Pfahl", 1, false, " # ", " # ", " # "), - STRIPE_MIDDLE("stripe_middle", "ms", "%s Balken", 1, false, " ", "###", " "), - STRIPE_DOWNRIGHT("stripe_downright", "drs", "%s Schrägbalken", 1, false, "# ", " # ", " #"), - STRIPE_DOWNLEFT("stripe_downleft", "dls", "%s Schräglinksbalken", 1, false, " #", " # ", "# "), - STRIPE_SMALL("small_stripes", "ss", "Vier %s Pfähle", 1, true, "# #", "# #", " "), - CROSS("cross", "cr", "%s Andreaskreuz", 0, false, "# #", " # ", "# #"), - STRAIGHT_CROSS("straight_cross", "sc", "%s Kreuz", 0, false, " # ", "###", " # "), - TRIANGLE_BOTTOM("triangle_bottom", "bt", "%s halbe Spitze", -1, false, " ", " # ", "# #"), - TRIANGLE_TOP("triangle_top", "tt", "%s gestürzte halbe Spitze", -1, false, "# #", " # ", " "), - TRIANGLES_BOTTOM("triangles_bottom", "bts", "%s gespickelter Bannerfuß", 1, false, " ", "# #", " # "), - TRIANGLES_TOP("triangles_top", "tts", "%s gespickeltes Bannerhaupt", 0, false, " # ", "# #", " "), - DIAGONAL_LEFT("diagonal_left", "ld", "%s schräglinks geteilt", null, false, "## ", "# ", " "), - DIAGONAL_RIGHT("diagonal_up_right", "rd", "%s schräglinks geteilt (Invertiert)", null, false, " ", " #", " ##"), - DIAGONAL_LEFT_MIRROR("diagonal_up_left", "lud", "%s schrägrechts geteilt (Invertiert)", null, false, " ", "# ", "## "), - DIAGONAL_RIGHT_MIRROR("diagonal_right", "rud", "%s schrägrechts geteilt", null, false, " ##", " #", " "), - CIRCLE_MIDDLE("circle", "mc", "%s Kugel", -1, false, " ", " # ", " "), - RHOMBUS_MIDDLE("rhombus", "mr", "%s Raute", -1, false, " # ", "# #", " # "), - HALF_VERTICAL("half_vertical", "vh", "Rechts %s gespalten", null, true, "## ", "## ", "## "), - HALF_HORIZONTAL("half_horizontal", "hh", "Oben %s geteilt", null, true, "###", "###", " "), - HALF_VERTICAL_MIRROR("half_vertical_right", "vhr", "Links %s gespalten", null, true, " ##", " ##", " ##"), - HALF_HORIZONTAL_MIRROR("half_horizontal_bottom", "hhb", "Unten %s geteilt", null, true, " ", "###", "###"), - BORDER("border", "bo", "%s Bord", 1, false, "###", "# #", "###"), - CURLY_BORDER("curly_border", "cbo", "%s Spickelbord", 1, false, new ItemStack(Items.vine)), - RUNE("rune", "run", "%s Rune", -1, false, new ItemStack(Items.golden_apple)), - GRADIENT("gradient", "gra", "%s Farbverlauf", 1, false, "# #", " # ", " # "), - GRADIENT_UP("gradient_up", "gru", "%s Farbverlauf (Invertiert)", 1, false, " # ", " # ", "# #"), - BRICKS("bricks", "bri", "Feld %s gemauert", null, true, new ItemStack(Items.brick_block)), - SKULL("skull", "sku", "%s Schädel", 1, false, new ItemStack(Items.skull)), - FLOWER("flower", "flo", "%s Blume", -1, false, new ItemStack(Items.daisy)), - THING("thing", "thi", "%s ", 0, false, new ItemStack(Items.charged_apple)); - - private String patternName; - private String patternID; - private String display; - private Integer displayType; - private boolean displayLower; - private String[] craftingLayers; - private ItemStack patternCraftingStack; - - private EnumBannerPattern(String name, String id, String display, Integer displayType, boolean displayLower) - { - this.craftingLayers = new String[3]; - this.patternName = name; - this.patternID = id; - this.display = display; - this.displayType = displayType; - } - - private EnumBannerPattern(String name, String id, String display, Integer displayType, boolean displayLower, ItemStack craftingItem) - { - this(name, id, display, displayType, displayLower); - this.patternCraftingStack = craftingItem; - } - - private EnumBannerPattern(String name, String id, String display, Integer displayType, boolean displayLower, String craftingTop, String craftingMid, String craftingBot) - { - this(name, id, display, displayType, displayLower); - this.craftingLayers[0] = craftingTop; - this.craftingLayers[1] = craftingMid; - this.craftingLayers[2] = craftingBot; - } - - public String getPatternName() - { - return this.patternName; - } - - public String getPatternID() - { - return this.patternID; - } - - public String getDisplay() - { - return this.display; - } - - public Integer getDisplayType() - { - return this.displayType; - } - - public boolean isColorLowercase() - { - return this.displayLower; - } - - public String[] getCraftingLayers() - { - return this.craftingLayers; - } - - public boolean hasValidCrafting() - { - return this.patternCraftingStack != null || this.craftingLayers[0] != null; - } - - public boolean hasCraftingStack() - { - return this.patternCraftingStack != null; - } - - public ItemStack getCraftingStack() - { - return this.patternCraftingStack; - } - - public static TileEntityBanner.EnumBannerPattern getPatternByID(String id) - { - for (TileEntityBanner.EnumBannerPattern tileentitybanner$enumbannerpattern : values()) - { - if (tileentitybanner$enumbannerpattern.patternID.equals(id)) - { - return tileentitybanner$enumbannerpattern; - } - } - - return null; - } - } -} diff --git a/server/src/main/java/server/clipboard/ReorderRegistry.java b/server/src/main/java/server/clipboard/ReorderRegistry.java index 1d9fe9bd..b503fd72 100755 --- a/server/src/main/java/server/clipboard/ReorderRegistry.java +++ b/server/src/main/java/server/clipboard/ReorderRegistry.java @@ -124,8 +124,6 @@ public abstract class ReorderRegistry { PLACE_FINAL.add(Blocks.cake); PLACE_FINAL.add(Blocks.piston_head); PLACE_FINAL.add(Blocks.piston_extension); - PLACE_FINAL.add(Blocks.banner); - PLACE_FINAL.add(Blocks.wall_banner); } /* diff --git a/server/src/main/java/server/world/Converter.java b/server/src/main/java/server/world/Converter.java index 546b5354..920205fc 100644 --- a/server/src/main/java/server/world/Converter.java +++ b/server/src/main/java/server/world/Converter.java @@ -10,6 +10,7 @@ import java.io.FilenameFilter; import java.io.IOException; import java.io.RandomAccessFile; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.function.Consumer; @@ -87,8 +88,6 @@ import common.block.tech.BlockTorch; import common.block.tech.BlockTripWire; import common.block.tech.BlockTripWireHook; import common.block.tech.BlockWarpChest; -import common.block.tile.BlockBannerHanging; -import common.block.tile.BlockBannerStanding; import common.block.tile.BlockStandingSign; import common.block.tile.BlockWallSign; import common.collect.Lists; @@ -115,7 +114,6 @@ import common.log.Log; import common.rng.Random; import common.tags.TagObject; import common.tileentity.TileEntity; -import common.tileentity.TileEntityBanner; import common.tileentity.TileEntityBeacon; import common.tileentity.TileEntityChest; import common.tileentity.TileEntityComparator; @@ -385,7 +383,8 @@ public abstract class Converter { mapTile(TileEntityDaylightDetector.class, "DLDetector", "daylight_detector"); mapTile(TileEntityHopper.class, "Hopper", "hopper"); mapTile(TileEntityComparator.class, "Comparator", "comparator"); - mapTile(TileEntityBanner.class, "Banner", "banner"); + + Arrays.fill(BLOCK_MAP, Blocks.air.getState()); mapBlock(Blocks.stone, 1); mapBlock(Blocks.rock, 1, 1); @@ -1439,26 +1438,6 @@ public abstract class Converter { mapBlock(Blocks.large_fern, 175, 3); mapBlock(Blocks.rose_bush, 175, 4); mapBlock(Blocks.paeonia, 175, 5); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 0), 176, 0); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 1), 176, 1); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 2), 176, 2); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 3), 176, 3); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 4), 176, 4); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 5), 176, 5); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 6), 176, 6); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 7), 176, 7); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 8), 176, 8); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 9), 176, 9); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 10), 176, 10); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 11), 176, 11); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 12), 176, 12); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 13), 176, 13); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 14), 176, 14); - mapBlock(Blocks.banner.getState().withProperty(BlockBannerStanding.ROTATION, 15), 176, 15); - mapBlock(Blocks.wall_banner.getState().withProperty(BlockBannerHanging.FACING, Facing.NORTH), 177); - mapBlock(Blocks.wall_banner.getState().withProperty(BlockBannerHanging.FACING, Facing.SOUTH), 177, 3, 9, 15); - mapBlock(Blocks.wall_banner.getState().withProperty(BlockBannerHanging.FACING, Facing.WEST), 177, 4, 10); - mapBlock(Blocks.wall_banner.getState().withProperty(BlockBannerHanging.FACING, Facing.EAST), 177, 5, 11); mapBlock(Blocks.daylight_detector_inverted.getState().withProperty(BlockDaylightDetector.POWER, 0), 178, 0); mapBlock(Blocks.daylight_detector_inverted.getState().withProperty(BlockDaylightDetector.POWER, 1), 178, 1); mapBlock(Blocks.daylight_detector_inverted.getState().withProperty(BlockDaylightDetector.POWER, 2), 178, 2); diff --git a/server/src/main/java/server/world/Region.java b/server/src/main/java/server/world/Region.java index a360fa26..2b9b1ca1 100755 --- a/server/src/main/java/server/world/Region.java +++ b/server/src/main/java/server/world/Region.java @@ -83,7 +83,7 @@ public class Region { mapping.put(bid, id); highest = bid > highest ? bid : highest; missing.remove(id); - Log.IO.debug("Geänderte Block-ID %d = %s -> %s", (int)bid, oid, id); + Log.IO.debug((id.equals(oid) ? "Mehrfache" : "Geänderte") + " Block-ID %d = %s -> %s", (int)bid, oid, id); } else { Log.IO.debug("Entfernte Block-ID %d = %s", (int)bid, oid);