From 43f38d86795fd20a4aa6c7706d43ddeeae7a459c Mon Sep 17 00:00:00 2001 From: Lazzzycatwastaken Date: Mon, 30 Jun 2025 17:38:36 +0200 Subject: [PATCH 1/2] sdsa --- .../java/com/hbm/blocks/machine/Charger.java | 32 +++++++++++------- .../java/com/hbm/main/StructureManager.java | 1 + .../com/hbm/world/gen/NTMWorldGenerator.java | 14 +++++--- .../assets/hbm/structures/laboratory.nbt | Bin 0 -> 8333 bytes 4 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 src/main/resources/assets/hbm/structures/laboratory.nbt diff --git a/src/main/java/com/hbm/blocks/machine/Charger.java b/src/main/java/com/hbm/blocks/machine/Charger.java index 4ae72544b..5b17ddcc9 100644 --- a/src/main/java/com/hbm/blocks/machine/Charger.java +++ b/src/main/java/com/hbm/blocks/machine/Charger.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import com.hbm.tileentity.machine.TileEntityCharger; +import com.hbm.world.gen.INBTTransformable; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -12,8 +13,8 @@ import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -public class Charger extends BlockContainer { - +public class Charger extends BlockContainer implements INBTTransformable { + public Charger(Material mat) { super(mat); } @@ -22,17 +23,17 @@ public class Charger extends BlockContainer { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityCharger(); } - + @Override public int getRenderType(){ return -1; } - + @Override public boolean isOpaqueCube() { return false; } - + @Override public boolean renderAsNormalBlock() { return false; @@ -40,9 +41,9 @@ public class Charger extends BlockContainer { @Override public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { - + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; - + if(i == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } @@ -60,13 +61,13 @@ public class Charger extends BlockContainer { @Override public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { float f = 0.0625F; - + switch(world.getBlockMetadata(x, y, z)) { - case 2: this.setBlockBounds(5 * f, 0.25F, 12 * f, 11 * f, 0.75F, 1F); break; - case 3: this.setBlockBounds(5 * f, 0.25F, 0F, 11 * f, 0.75F, 4 * f); break; - case 4: this.setBlockBounds(12 * f, 0.25F, 5 * f, 1F, 0.75F, 11 * f); break; - case 5: this.setBlockBounds(0F, 0.25F, 5 * f, 4 * f, 0.75F, 11 * f); break; - default: this.setBlockBounds(5 * f, 0.25F, 5 * f, 11 * f, 0.75F, 11 * f); break; + case 2: this.setBlockBounds(5 * f, 0.25F, 12 * f, 11 * f, 0.75F, 1F); break; + case 3: this.setBlockBounds(5 * f, 0.25F, 0F, 11 * f, 0.75F, 4 * f); break; + case 4: this.setBlockBounds(12 * f, 0.25F, 5 * f, 1F, 0.75F, 11 * f); break; + case 5: this.setBlockBounds(0F, 0.25F, 5 * f, 4 * f, 0.75F, 11 * f); break; + default: this.setBlockBounds(5 * f, 0.25F, 5 * f, 11 * f, 0.75F, 11 * f); break; } } @@ -75,4 +76,9 @@ public class Charger extends BlockContainer { this.setBlockBoundsBasedOnState(world, x, y, z); return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); } + + @Override + public int transformMeta(int meta, int coordBaseMode) { + return INBTTransformable.transformMetaDeco(meta, coordBaseMode); + } } diff --git a/src/main/java/com/hbm/main/StructureManager.java b/src/main/java/com/hbm/main/StructureManager.java index 5c3f93090..09a0d1890 100644 --- a/src/main/java/com/hbm/main/StructureManager.java +++ b/src/main/java/com/hbm/main/StructureManager.java @@ -61,6 +61,7 @@ public class StructureManager { public static final NBTStructure beached_patrol = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/beached_patrol.nbt")); public static final NBTStructure lighthouse = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/lighthouse.nbt")); public static final NBTStructure dish = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/dish.nbt")); + public static final NBTStructure laboratory = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/laboratory.nbt")); public static final NBTStructure spire = new NBTStructure(new ResourceLocation(RefStrings.MODID, "structures/spire.nbt")); diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index bb1c7b3d3..c30ef4ed6 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -46,7 +46,7 @@ public class NTMWorldGenerator implements IWorldGenerator { structure = new JigsawPiece("spire", StructureManager.spire, -1); spawnWeight = 2; }}); - + NBTStructure.registerStructure(0, new SpawnCondition() {{ canSpawn = biome -> !invalidBiomes.contains(biome); start = d -> new MapGenNTMFeatures.Start(d.getW(), d.getX(), d.getY(), d.getZ()); @@ -102,8 +102,6 @@ public class NTMWorldGenerator implements IWorldGenerator { spawnWeight = 8; }}); - NBTStructure.registerNullWeight(0, 2, oceanBiomes::contains); //why the fuck did this change - NBTStructure.registerStructure(0, new SpawnCondition() {{ canSpawn = biome -> biome == BiomeGenBase.plains; structure = new JigsawPiece("dish", StructureManager.dish, -10); @@ -112,8 +110,16 @@ public class NTMWorldGenerator implements IWorldGenerator { spawnWeight = 1; }}); + NBTStructure.registerStructure(0, new SpawnCondition() {{ + canSpawn = biome -> biome == BiomeGenBase.plains; + structure = new JigsawPiece("laboratory", StructureManager.laboratory, -10); + minHeight = 53; + maxHeight = 65; + spawnWeight = 8; + }}); + NBTStructure.registerNullWeight(0, 2, biome -> biome == BiomeGenBase.plains); - NBTStructure.registerNullWeight(0, 2, oceanBiomes::contains); + NBTStructure.registerNullWeight(0, 4, oceanBiomes::contains); Map bricks = new HashMap() {{ put(ModBlocks.meteor_brick, new MeteorBricks()); diff --git a/src/main/resources/assets/hbm/structures/laboratory.nbt b/src/main/resources/assets/hbm/structures/laboratory.nbt new file mode 100644 index 0000000000000000000000000000000000000000..da6452881a1199668386eba548bef49b8c1ad679 GIT binary patch literal 8333 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 literal 0 HcmV?d00001 From 9a7f991092121b6e3b5055a08687c7bb4284956b Mon Sep 17 00:00:00 2001 From: Lazzzycatwastaken Date: Wed, 27 Aug 2025 17:16:07 +0200 Subject: [PATCH 2/2] resolve hopefully i hope --- .../java/com/hbm/world/gen/NTMWorldGenerator.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java index 049428707..d4109655a 100644 --- a/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java +++ b/src/main/java/com/hbm/world/gen/NTMWorldGenerator.java @@ -103,8 +103,6 @@ public class NTMWorldGenerator implements IWorldGenerator { spawnWeight = 8; }}); - NBTStructure.registerNullWeight(0, 2, oceanBiomes::contains); //why the fuck did this change - NBTStructure.registerStructure(0, new SpawnCondition("dish") {{ canSpawn = biome -> biome == BiomeGenBase.plains; structure = new JigsawPiece("dish", StructureManager.dish, -10); @@ -113,8 +111,16 @@ public class NTMWorldGenerator implements IWorldGenerator { spawnWeight = 1; }}); + NBTStructure.registerStructure(0, new SpawnCondition("labolatory") {{ + canSpawn = biome -> biome == BiomeGenBase.plains; + structure = new JigsawPiece("laboratory", StructureManager.laboratory, -10); + minHeight = 53; + maxHeight = 65; + spawnWeight = 8; + }}); + NBTStructure.registerNullWeight(0, 2, biome -> biome == BiomeGenBase.plains); - NBTStructure.registerNullWeight(0, 2, oceanBiomes::contains); + NBTStructure.registerNullWeight(0, 4, oceanBiomes::contains); Map bricks = new HashMap() {{ put(ModBlocks.meteor_brick, new MeteorBricks());