From f64d0f4e703e731a393035a32b56fc3344040426 Mon Sep 17 00:00:00 2001 From: MCTian-mi <35869948+MCTian-mi@users.noreply.github.com> Date: Sat, 5 Jul 2025 13:08:36 +0800 Subject: [PATCH] feat: reinforced concrete --- .../supersymmetry/common/CommonProxy.java | 2 + .../blocks/BlockReinforcedConcrete.java | 67 ++++++++++++++++++ .../common/blocks/SuSyBlocks.java | 5 ++ .../blocks/concrete_reinforced/framed.png | Bin 0 -> 2240 bytes .../concrete_reinforced/framed.png.mcmeta | 10 +++ .../blocks/concrete_reinforced/framed_ctm.png | Bin 0 -> 3305 bytes .../susy/blockstates/concrete_reinforced.json | 11 +++ .../resources/assets/susy/lang/en_us.lang | 2 + 8 files changed, 97 insertions(+) create mode 100644 src/main/java/supersymmetry/common/blocks/BlockReinforcedConcrete.java create mode 100644 src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed.png create mode 100644 src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed.png.mcmeta create mode 100644 src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed_ctm.png create mode 100644 src/main/resources/assets/susy/blockstates/concrete_reinforced.json diff --git a/src/main/java/supersymmetry/common/CommonProxy.java b/src/main/java/supersymmetry/common/CommonProxy.java index 59a237a5a..62d076e72 100644 --- a/src/main/java/supersymmetry/common/CommonProxy.java +++ b/src/main/java/supersymmetry/common/CommonProxy.java @@ -153,6 +153,7 @@ public static void registerBlocks(@NotNull RegistryEvent.Register event) registry.register(SuSyBlocks.METALLURGY_ROLL); registry.register(SuSyBlocks.CONVEYOR_BELT); registry.register(SuSyBlocks.ROCKET_ASSEMBLER_CASING); + registry.register(SuSyBlocks.REINFORCED_CONCRETE); SHEETED_FRAMES.values().stream().distinct().forEach(registry::register); } @@ -191,6 +192,7 @@ public static void registerItems(@NotNull RegistryEvent.Register event) { registry.register(createItemBlock(SuSyBlocks.METALLURGY_ROLL, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.CONVEYOR_BELT, VariantItemBlock::new)); registry.register(createItemBlock(SuSyBlocks.ROCKET_ASSEMBLER_CASING, VariantItemBlock::new)); + registry.register(createItemBlock(SuSyBlocks.REINFORCED_CONCRETE, VariantItemBlock::new)); SHEETED_FRAMES.values() .stream().distinct() diff --git a/src/main/java/supersymmetry/common/blocks/BlockReinforcedConcrete.java b/src/main/java/supersymmetry/common/blocks/BlockReinforcedConcrete.java new file mode 100644 index 000000000..d10b36cb5 --- /dev/null +++ b/src/main/java/supersymmetry/common/blocks/BlockReinforcedConcrete.java @@ -0,0 +1,67 @@ +package supersymmetry.common.blocks; + +import gregtech.api.GregTechAPI; +import gregtech.api.block.IStateHarvestLevel; +import gregtech.api.block.VariantBlock; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.entity.EntityLiving; +import net.minecraft.util.BlockRenderLayer; +import net.minecraft.util.IStringSerializable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nonnull; + +public class BlockReinforcedConcrete extends VariantBlock { + + public BlockReinforcedConcrete(){ + super(Material.ROCK); + setTranslationKey("concrete_reinforced"); + setHardness(6.0f); + setResistance(15.0f); + setSoundType(SoundType.STONE); + setHarvestLevel("pickaxe", 2); + setDefaultState(getState(Type.FRAMED)); + setCreativeTab(GregTechAPI.TAB_GREGTECH_DECORATIONS); + } + + @Override + public boolean canCreatureSpawn(@NotNull IBlockState state, @NotNull IBlockAccess world, @NotNull BlockPos pos, + @NotNull EntityLiving.SpawnPlacementType type) { + return false; + } + + @NotNull + @Override + public BlockRenderLayer getRenderLayer() { + return BlockRenderLayer.SOLID; + } + + public enum Type implements IStringSerializable, IStateHarvestLevel { + FRAMED("framed", 2); + + private final String name; + private final int harvestLevel; + + Type(String name, int harvestLevel) { + this.name = name; + this.harvestLevel = harvestLevel; + } + + @Nonnull + public String getName() { + return this.name; + } + + public int getHarvestLevel(IBlockState state) { + return this.harvestLevel; + } + + public String getHarvestTool(IBlockState state) { + return "pickaxe"; + } + } +} diff --git a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java index 2b97e66b8..cf3eedaa4 100644 --- a/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java +++ b/src/main/java/supersymmetry/common/blocks/SuSyBlocks.java @@ -49,6 +49,7 @@ public class SuSyBlocks { public static BlockMetallurgyRoll METALLURGY_ROLL; public static BlockConveyor CONVEYOR_BELT; public static BlockRocketAssemblerCasing ROCKET_ASSEMBLER_CASING; + public static BlockReinforcedConcrete REINFORCED_CONCRETE; public static void init() { COOLING_COIL = new BlockCoolingCoil(); @@ -136,6 +137,9 @@ public static void init() { ROCKET_ASSEMBLER_CASING = new BlockRocketAssemblerCasing(); ROCKET_ASSEMBLER_CASING.setRegistryName("rocket_assembler_casing"); + + REINFORCED_CONCRETE = new BlockReinforcedConcrete(); + REINFORCED_CONCRETE.setRegistryName("concrete_reinforced"); } @SideOnly(Side.CLIENT) @@ -169,6 +173,7 @@ public static void registerItemModels() { registerItemModel(METALLURGY_ROLL); registerItemModel(CONVEYOR_BELT); registerItemModel(ROCKET_ASSEMBLER_CASING); + registerItemModel(REINFORCED_CONCRETE); } @SideOnly(Side.CLIENT) diff --git a/src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed.png b/src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa39215b3baafebfba0618ab1134756bd4a2325 GIT binary patch literal 2240 zcmb_e4{Q@v7(XD+F-12-T_(bLkT_zm_h;8@@6rO>I#|Ju(N$n$3fH^qdak`YdNrAANEOg)%NQy=*p+kqStkXwBQGikL^#l!h=bmdyq72}qE~f(ln$40Vu$0JHc$)X2e!tC+@(d-Qj0NzcINXO*1Wi(e zFFoI>@C`<0)AI!|-)E(L0%^6NjE$pFnxROPDe~i}pSR&wyvS;`5mb8qq_6~*78kr{ zJH~=DN`ftyG?1*u)QYGQXQf&}2~Ji4%kf5aI}qMTt0*9;ZmEw5+?|46vyp%ZjNT^Q zy)aGj>k%$27T1Aj-LagoTanke*|(?er+icqE-)xh(;UhXlohoxoD~&t+z&=Lfnu1n z^uDN5paSW1`P~ckR9N`{C)bH!uf&jh7jt)&cvBv3wU+)rF_^JK_Es2nbMYm|uG>vP zB9mQUi#D2>!vTC`ju%k|aSDUOW7fe-2?*-e(>2+4JXsk7o{Ff5mfVK;rX~S zRoE8js6Ev9VqUsJfnRNr2+?bx}fJ*#-^+67rCiw)sLs)>~)Fm*p9+CM!IT$Ze28f z`0*V*cFeW((&gHX2Xa50vhmTf;`o^>|8~c^?Mvd1Ei4^qkL8FYe@o%Pv=X%^^V9nAD!DgeV^~s$4yHHF34?y Y+{<#=)+fkT;~&FSR^i-SGV_)H0K&`xz5oCK literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed.png.mcmeta new file mode 100644 index 000000000..6c5664bb5 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed.png.mcmeta @@ -0,0 +1,10 @@ +{ + "ctm": { + "ctm_version": 1, + "type": "CTM", + "layer": "SOLID", + "textures": [ + "gregtech:blocks/concrete_reinforced/framed_ctm" + ] + } +} diff --git a/src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed_ctm.png b/src/main/resources/assets/gregtech/textures/blocks/concrete_reinforced/framed_ctm.png new file mode 100644 index 0000000000000000000000000000000000000000..2a2ad81a0bfc89d9b1f067e3d875c028c6036d5d GIT binary patch literal 3305 zcmb_f4Omj=9zU3sr5Pv46Ab`ZPc=UT;F}x=02ud$EOeE2 zl`xQtUQLkX|l6H!su3q#=lQy%%|**&u0^ zFod)SQ==rvolZqSkU?TY?qW8=Vj_qei2*X0G>}cBv#21O>j`n0AZhqR#?7fEQCyMl z;$dU>n-@7+t5tDnw79r9_c#xCOf99+Aqb*@3>t$$#Sv6ZyiyD6s7lS;5e>em22smY zS{bG!nKi;-JENVM#WvEMqw?c4#hC}NTotXTqZGC?sU?EFqu+<#c3$N5I}ulE$T%! zSB*+%P#KI+I>ZG%xpdGK>P*1$HRM0b&&fqc`TsrhCD9#xPtcCv+ zEJ3(Ym|6kj0m~Gy6s4(@QZi{Yjod|;98=?laqm2aybubx0ZNS)Rw8JCuNN7Q*SR8g)-SA^1c`nW3KFoyabmQvsq#ZgY8L$ zI53OKf|v{{7hy`32F|*r?jF`)cO31^@viD@*uSM`qZCo^pEB%9Vzk_M8C~X|9Mi)x)Z2c*n zXus#Y29Et>*Q1zXrUxj2s0fP%Q(-!jP31r^n<@dpD0~N&Fd=9p^!K@r)6au7LchP` z`fys2Xjmyl@w<{n{`uHceyhrLHRni5Ua9h2+OG2*>p~*f#VWhJ54Szw*cxudG#@@p0lw9r=@AL)W1cmY zi~-7@)s6Y*Kub$YhJS0z@y(duY1OR=t-SH1!t}yW;N;|#g_d=zrvRMxZLrlGy{L<4 zvA(`=8sDEn0UVqALQfgP&nla*SZ6PDcDwyD+5Vxl{IzR_KXb28zl<^#xFY!=YyULf z97{kOF&^Ms`E@kB&2NA7h=tuv?9M-F|M2O-yp(ge)V9KD6H|;vW8d1%i>;TOCiW#o z3h>5xST++V?$L`VZIzYDhh%!u_T!4iI|EIN+SEqoe>L|aE?u~86LGaoohfL$@wDr^ zT+@VV2bV7l#XY+>NTvBA0j281=Y>*2Mfvoz``+|EyLjB0Ym7sT)T1{%*|$L|xi(CyQzl8L~_Cw2l`JZCjQAf0|fR(B}TJF?)%T~CZ# zoyD1j^Fze9vWd0Vmr@8H3j(aVllJGGwU~Q8&GyhXm-Sbiia|FhU38`&sF;{bZ>D{u8^1-_A#`TWbsFBp{TAVi}ttu$u!e_Dfb1t=PV2VCU2Z9*L zj!oXo@C9~`m!RkWn`;Gg3+ET9sE%G>!^NT^Vydrq|HCi=1-SL;>5v7*t!0Bf4f8DZ zqT>Ag@lwws!IyTu;}$vIDRa8G)i$+CTxeoc--)->M#M#Ai~fT(m-tO3oniZES3w3kOtv^i+?|{I$S7Y~$E@kG`QdV#y5r%;3$8=6;BK8` zn(6W5gZgo6re*~j*BzL`PbM1WSsLXxE}bUR50aY~9mZDuJIHct2>XekV(+06laXJM zGo$noC&)F}`}KWN6ak1#+*}s2Ahh7e0h&VN)!jCEuvJ|mI(#d^*(&h$79O;*-{Fq+ z;P*Y>hP$_HI=-?1>q@j+Gydv_aVvPQI|kTUrNz9b?H32&?OYmG*Qq@mdZgaesr@Pc-rHHa27T?zC=%N{XoAks1Ick*SH=p#> zCyi&MQYl;6)DX>7t!Pz4yvff$YbwnE)~VHueL?l6mxC+)aKxJgb3jxgs`anQoDCi;^NzVq<-M*s+zTjBW;PRnyq) f$naPMK?W_RsVa5s;z}FypOFB+Am2j%y3c+F%MvC~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/susy/blockstates/concrete_reinforced.json b/src/main/resources/assets/susy/blockstates/concrete_reinforced.json new file mode 100644 index 000000000..42da2d150 --- /dev/null +++ b/src/main/resources/assets/susy/blockstates/concrete_reinforced.json @@ -0,0 +1,11 @@ +{ + "forge_marker" : 1, + "variants" : { + "variant=framed" : { + "model" : "minecraft:cube_all", + "textures" : { + "all" : "gregtech:blocks/concrete_reinforced/framed" + } + } + } +} diff --git a/src/main/resources/assets/susy/lang/en_us.lang b/src/main/resources/assets/susy/lang/en_us.lang index 79bf22a21..7d288a662 100644 --- a/src/main/resources/assets/susy/lang/en_us.lang +++ b/src/main/resources/assets/susy/lang/en_us.lang @@ -156,6 +156,8 @@ tile.susy_stone_bricks.kimberlite.name=Kimberlite Bricks tile.susy_stone_bricks.industrial_concrete.name=Industrial Concrete Bricks tile.susy_stone_bricks.minitary_concrete.name=Military Concrete Bricks +tile.concrete_reinforced.framed.name=Frame-Reinforced Concrete + # Materials susy.material.manganese_iron_arsenic_phosphide=Manganese Iron Arsenic Phosphide susy.material.praseodymium_nickel=Praseodymium-Nickel