diff --git a/changelog b/changelog index b98eaa7aa..0cd64c5ff 100644 --- a/changelog +++ b/changelog @@ -11,7 +11,11 @@ * EMP grenades now destroy machines in a small radius like an EMP missile would * Grenades are no longer affected by nuclear blasts or other grenade explosions * Players no longer receive the starting guide book on first spawn since it's now very outdated -* All redstone-over-radio panels now have QMAW integration +* All RoR panels now have QMAW integration +* Legacy plasma heater and plasma heater hatches which are still found in crashed space ships can now be dismantled into steel pipes, copper pipes and analog circuits +* Removed legacy plasma block +* RoR panels now have OpenComputers integration, allowing otherwise fixed parameters like gauge thresholds, channels, and button commands to be adjusted on the fly +* Solinium blasts now use the new higher poly sphere model and frame interpolation, making the expansion smoother ## Fixed * Fixed the grenade crafting handler not checking if a shell/filling combination is even valid, allowing weird combos diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 4cd964c56..73ef2a6d8 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -866,7 +866,6 @@ public class ModBlocks { @Deprecated public static Block fusion_heater; @Deprecated public static Block fusion_hatch; - @Deprecated public static Block plasma; // only actually used by the old plasma grenade, will die with the grenade rework @Deprecated public static Block iter; @Deprecated public static Block plasma_heater; @@ -1984,7 +1983,6 @@ public class ModBlocks { fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); - plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":plasma"); iter = new MachineITER().setBlockName("iter").setHardness(5.0F).setResistance(60.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":iter"); plasma_heater = new MachinePlasmaHeater().setBlockName("plasma_heater").setHardness(5.0F).setResistance(60.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":plasma_heater"); @@ -3345,7 +3343,6 @@ public class ModBlocks { //Multiblock Generators GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName()); - GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); GameRegistry.registerBlock(iter, iter.getUnlocalizedName()); GameRegistry.registerBlock(plasma_heater, plasma_heater.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockPlasma.java b/src/main/java/com/hbm/blocks/generic/BlockPlasma.java deleted file mode 100644 index b47f52d90..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockPlasma.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; - -@Deprecated -public class BlockPlasma extends Block { - - public BlockPlasma(Material p_i45394_1_) { - super(p_i45394_1_); - this.setTickRandomly(true); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - if(world.getGameRules().getGameRuleBooleanValue("doFireTick")) - world.setBlock(x, y, z, Blocks.air); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) { - return null; - } - - @Override - public void onEntityCollidedWithBlock(World p_149670_1_, int p_149670_2_, int p_149670_3_, int p_149670_4_, Entity p_149670_5_) { - p_149670_5_.setFire(10); - p_149670_5_.setInWeb(); - } - - @Override public boolean isOpaqueCube() { return false; } - @Override public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) { return null; } - @Override public boolean renderAsNormalBlock() { return false; } - -} diff --git a/src/main/java/com/hbm/explosion/ExplosionChaos.java b/src/main/java/com/hbm/explosion/ExplosionChaos.java index 95c1e9f7f..49ae5c0b1 100644 --- a/src/main/java/com/hbm/explosion/ExplosionChaos.java +++ b/src/main/java/com/hbm/explosion/ExplosionChaos.java @@ -501,28 +501,6 @@ public class ExplosionChaos { //TODO: destroy this entire class radius = (int) f; } - public static void plasma(World world, int x, int y, int z, int radius) { - int r = radius; - int r2 = r * r; - int r22 = r2 / 2; - for (int xx = -r; xx < r; xx++) { - int X = xx + x; - int XX = xx * xx; - for (int yy = -r; yy < r; yy++) { - int Y = yy + y; - int YY = XX + yy * yy; - for (int zz = -r; zz < r; zz++) { - int Z = zz + z; - int ZZ = YY + zz * zz; - if (ZZ < r22 + world.rand.nextInt(r22 / 2)) { - if(world.getBlock(X, Y, Z) != ModBlocks.statue_elb_f) - world.setBlock(X, Y, Z, ModBlocks.plasma); - } - } - } - } - } - public static void levelDown(World world, int x, int y, int z, int radius) { if(!world.isRemote) diff --git a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index e3bb7c440..476b4a456 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -1026,6 +1026,19 @@ public class AnvilRecipes extends SerializableRecipe { new AnvilOutput(new ItemStack(Items.bone, 1), 0.75F), new AnvilOutput(new ItemStack(Items.experience_bottle, 1), 0.5F) }).setTier(1)); + + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.fusion_heater), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.pipe, 4, Mats.MAT_STEEL.id)), + new AnvilOutput(new ItemStack(ModItems.pipe, 2, Mats.MAT_COPPER.id)), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 0.5F) + }).setTier(1)); + constructionRecipes.add(new AnvilConstructionRecipe( + new ComparableStack(ModBlocks.fusion_hatch), new AnvilOutput[] { + new AnvilOutput(new ItemStack(ModItems.pipe, 4, Mats.MAT_STEEL.id)), + new AnvilOutput(new ItemStack(ModItems.pipe, 4, Mats.MAT_COPPER.id)), + new AnvilOutput(new ItemStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal()), 0.75F) + }).setTier(1)); } public static List getSmithing() { diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 13bd6b2e4..9d6d7f43f 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -59,7 +59,7 @@ public class ItemBlockLore extends ItemBlockBase { if(this.field_150939_a == ModBlocks.gravel_diamond) return EnumRarity.rare; - if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster || this.field_150939_a == ModBlocks.plasma) + if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster) return EnumRarity.epic; return EnumRarity.common; diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 8b6c3ccb8..f84196a1a 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1569,6 +1569,7 @@ public class MainRegistry { ignoreMappings.add("hbm:item.grenade_if_null"); ignoreMappings.add("hbm:item.grenade_kit"); ignoreMappings.add("hbm:item.nuclear_waste_pearl"); + ignoreMappings.add("hbm:tile.plasma"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/render/entity/effect/RenderCloudSolinium.java b/src/main/java/com/hbm/render/entity/effect/RenderCloudSolinium.java index 4c077afbc..43c96ceb7 100644 --- a/src/main/java/com/hbm/render/entity/effect/RenderCloudSolinium.java +++ b/src/main/java/com/hbm/render/entity/effect/RenderCloudSolinium.java @@ -3,44 +3,52 @@ package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import com.hbm.entity.effect.EntityCloudSolinium; -import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.util.ColorUtil; import net.minecraft.client.renderer.entity.Render; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.client.model.AdvancedModelLoader; -import net.minecraftforge.client.model.IModelCustom; public class RenderCloudSolinium extends Render { - private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Sphere.obj"); - private IModelCustom blastModel; - private ResourceLocation blastTexture; - public float scale = 0; - public float ring = 0; - - public RenderCloudSolinium() { - blastModel = AdvancedModelLoader.loadModel(objTesterModelRL); - blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/BlastSolinium.png"); - scale = 0; - } - @Override - public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { - render((EntityCloudSolinium)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); - } - - public void render(EntityCloudSolinium cloud, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + public void doRender(Entity entity, double x, double y, double z, float f0, float interp) { GL11.glPushMatrix(); - GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); - GL11.glDisable(GL11.GL_LIGHTING); - GL11.glDisable(GL11.GL_CULL_FACE); - - GL11.glScalef(cloud.age, cloud.age, cloud.age); - - bindTexture(blastTexture); - blastModel.renderAll(); - GL11.glPopMatrix(); + GL11.glTranslated(x, y, z); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_TEXTURE_2D); + + int color = 0x27FFDA; + + EntityCloudSolinium cloud = (EntityCloudSolinium) entity; + float scale = cloud.age + interp; + GL11.glScalef(scale, scale, scale); + + GL11.glColor3f(ColorUtil.fr(color), ColorUtil.fg(color), ColorUtil.fb(color)); + ResourceManager.sphere_new.renderAll(); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE); + GL11.glColor4f(ColorUtil.fr(color), ColorUtil.fg(color), ColorUtil.fb(color), 0.125F); + + GL11.glEnable(GL11.GL_CULL_FACE); + + double outerScale = 1.025; + for(int i = 0; i < 3; i++) { + GL11.glScaled(outerScale, outerScale, outerScale); + ResourceManager.sphere_new.renderAll(); + } + + GL11.glColor4f(1F, 1F, 1F, 1F); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); } @Override diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_hatch_alt.png b/src/main/resources/assets/hbm/textures/blocks/fusion_hatch_alt.png deleted file mode 100644 index e11433175..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_hatch_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_heater_side_base.png b/src/main/resources/assets/hbm/textures/blocks/fusion_heater_side_base.png deleted file mode 100644 index fe0b6412c..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_heater_side_base.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/plasma.png b/src/main/resources/assets/hbm/textures/blocks/plasma.png deleted file mode 100644 index 5042b3489..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/plasma.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/plasma.png.mcmeta b/src/main/resources/assets/hbm/textures/blocks/plasma.png.mcmeta deleted file mode 100644 index 55438bf34..000000000 --- a/src/main/resources/assets/hbm/textures/blocks/plasma.png.mcmeta +++ /dev/null @@ -1,45 +0,0 @@ -{ - "animation": { - "frametime": 2, - "frames": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 18, - 17, - 16, - 15, - 14, - 13, - 12, - 11, - 10, - 9, - 8, - 7, - 6, - 5, - 4, - 3, - 2, - 1 - ] - } -} \ No newline at end of file