From 3aed464d6622998265f6ac342401748ecf12cfc3 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Fri, 3 Nov 2017 22:33:10 +0100 Subject: [PATCH] Made meteorites spawn naturally, switched sys.out for logger --- assets/hbm/sounds.json | 3 +- assets/hbm/sounds/entity/oldExplosion.ogg | Bin 0 -> 12808 bytes com/hbm/blocks/ModBlocks.java | 2 +- com/hbm/blocks/test/TestEventTester.java | 9 +- com/hbm/entity/projectile/EntityMeteor.java | 87 +++++++++++++++ com/hbm/inventory/MachineRecipes.java | 10 +- com/hbm/main/ClientProxy.java | 3 + com/hbm/main/MainRegistry.java | 116 ++++++++++++-------- com/hbm/main/ModEventHandler.java | 36 ++++++ com/hbm/render/entity/RenderMeteor.java | 95 ++++++++++++++++ com/hbm/world/Meteorite.java | 42 +++++-- 11 files changed, 343 insertions(+), 60 deletions(-) create mode 100644 assets/hbm/sounds/entity/oldExplosion.ogg create mode 100644 com/hbm/entity/projectile/EntityMeteor.java create mode 100644 com/hbm/render/entity/RenderMeteor.java diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 91ae07828..38ebb50a2 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -60,5 +60,6 @@ "entity.chopperCharge": {"category": "hostile", "sounds": [{"name": "entity/chopperCharge", "stream": false}]}, "entity.chopperDamage": {"category": "hostile", "sounds": [{"name": "entity/chopperDamage", "stream": true}]}, "entity.chopperMineLoop": {"category": "hostile", "sounds": [{"name": "entity/chopperMineLoop", "stream": false}]}, - "entity.chopperCrashingLoop": {"category": "hostile", "sounds": [{"name": "entity/chopperCrashingLoop", "stream": true}]} + "entity.chopperCrashingLoop": {"category": "hostile", "sounds": [{"name": "entity/chopperCrashingLoop", "stream": true}]}, + "entity.oldExplosion": {"category": "ambient", "sounds": [{"name": "entity/oldExplosion", "stream": false}]} } diff --git a/assets/hbm/sounds/entity/oldExplosion.ogg b/assets/hbm/sounds/entity/oldExplosion.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a414ea046bf76298f6f1406d574f15741c515248 GIT binary patch literal 12808 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 0 ? MainRegistry.meteorShowerChance : MainRegistry.meteorStrikeChance) == 0) { + if(!event.world.playerEntities.isEmpty()) { + EntityPlayer p = (EntityPlayer)event.world.playerEntities.get(event.world.rand.nextInt(event.world.playerEntities.size())); + EntityMeteor meteor = new EntityMeteor(event.world); + meteor.posX = p.posX + event.world.rand.nextInt(201) - 100; + meteor.posY = 384; + meteor.posZ = p.posZ + event.world.rand.nextInt(201) - 100; + meteor.motionX = event.world.rand.nextDouble() - 0.5; + meteor.motionY = -2.5; + meteor.motionZ = event.world.rand.nextDouble() - 0.5; + event.world.spawnEntityInWorld(meteor); + } + } + + if(meteorShower > 0) { + meteorShower--; + if(meteorShower == 0) + MainRegistry.logger.info("Ended meteor shower."); + } + + if(event.world.rand.nextInt(MainRegistry.meteorStrikeChance * 100) == 0 && MainRegistry.enableMeteorShowers) { + meteorShower = + (int)(MainRegistry.meteorShowerDuration * 0.75 + + MainRegistry.meteorShowerDuration * 0.25 * event.world.rand.nextFloat()); + MainRegistry.logger.info("Started meteor shower! Duration: " + meteorShower); + } + } + } + /*@SubscribeEvent public void itemSmelted(PlayerEvent.ItemSmeltedEvent e) { if(e.smelting.getItem().equals(ModItems.ingot_titanium)) { diff --git a/com/hbm/render/entity/RenderMeteor.java b/com/hbm/render/entity/RenderMeteor.java new file mode 100644 index 000000000..b1ae12549 --- /dev/null +++ b/com/hbm/render/entity/RenderMeteor.java @@ -0,0 +1,95 @@ +package com.hbm.render.entity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.render.model.ModelRubble; + +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderMeteor extends Render { + + public RenderMeteor() { } + + @Override + public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, + float p_76986_9_) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glScalef(1.0F, 1.0F, 1.0F); + GL11.glRotatef(180, 1, 0, 0); + GL11.glRotatef((rocket.ticksExisted % 360) * 10, 1, 1, 1); + + + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glScalef(5.0F, 5.0F, 5.0F); + renderBlock(getEntityTexture(rocket), 0, 0, 0); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + public void renderBlock(ResourceLocation loc1, double x, double y, double z) { + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glRotatef(180, 0F, 0F, 1F); + Tessellator tesseract = Tessellator.instance; + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(-0.5, -0.5, -0.5, 1, 0); + tesseract.addVertexWithUV(+0.5, -0.5, -0.5, 0, 0); + tesseract.addVertexWithUV(+0.5, +0.5, -0.5, 0, 1); + tesseract.addVertexWithUV(-0.5, +0.5, -0.5, 1, 1); + this.bindTexture(loc1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(-0.5, -0.5, +0.5, 1, 0); + tesseract.addVertexWithUV(-0.5, -0.5, -0.5, 0, 0); + tesseract.addVertexWithUV(-0.5, +0.5, -0.5, 0, 1); + tesseract.addVertexWithUV(-0.5, +0.5, +0.5, 1, 1); + this.bindTexture(loc1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(+0.5, -0.5, +0.5, 1, 0); + tesseract.addVertexWithUV(-0.5, -0.5, +0.5, 0, 0); + tesseract.addVertexWithUV(-0.5, +0.5, +0.5, 0, 1); + tesseract.addVertexWithUV(+0.5, +0.5, +0.5, 1, 1); + this.bindTexture(loc1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(+0.5, -0.5, -0.5, 1, 0); + tesseract.addVertexWithUV(+0.5, -0.5, +0.5, 0, 0); + tesseract.addVertexWithUV(+0.5, +0.5, +0.5, 0, 1); + tesseract.addVertexWithUV(+0.5, +0.5, -0.5, 1, 1); + this.bindTexture(loc1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(-0.5, -0.5, +0.5, 1, 0); + tesseract.addVertexWithUV(+0.5, -0.5, +0.5, 0, 0); + tesseract.addVertexWithUV(+0.5, -0.5, -0.5, 0, 1); + tesseract.addVertexWithUV(-0.5, -0.5, -0.5, 1, 1); + this.bindTexture(loc1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(+0.5, +0.5, +0.5, 1, 0); + tesseract.addVertexWithUV(-0.5, +0.5, +0.5, 0, 0); + tesseract.addVertexWithUV(-0.5, +0.5, -0.5, 0, 1); + tesseract.addVertexWithUV(+0.5, +0.5, -0.5, 1, 1); + this.bindTexture(loc1); + tesseract.draw(); + GL11.glPopMatrix(); + + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return new ResourceLocation(RefStrings.MODID + ":textures/blocks/block_meteor_molten.png"); + } +} diff --git a/com/hbm/world/Meteorite.java b/com/hbm/world/Meteorite.java index 0ccca147b..a59de0260 100644 --- a/com/hbm/world/Meteorite.java +++ b/com/hbm/world/Meteorite.java @@ -54,7 +54,9 @@ public class Meteorite { //0 - Meteor //1 - Treasure //2 - Ore - int core = rand.nextInt(3); + int core = rand.nextInt(2); + if(innerPadding > 0) + core = 2; List hullL = new ArrayList(); switch(hull) { @@ -65,7 +67,9 @@ public class Meteorite { hullL.add(new ItemStack(ModBlocks.block_meteor_cobble)); break; case 2: - hullL.add(new ItemStack(ModBlocks.block_meteor_broken)); + for(int i = 0; i < 99; i++) + hullL.add(new ItemStack(ModBlocks.block_meteor_broken)); + hullL.add(new ItemStack(ModBlocks.block_meteor_treasure)); break; case 3: hullL.add(new ItemStack(ModBlocks.block_meteor_molten)); @@ -79,7 +83,9 @@ public class Meteorite { opL.add(new ItemStack(ModBlocks.block_meteor_cobble)); break; case 1: - opL.add(new ItemStack(ModBlocks.block_meteor_broken)); + for(int i = 0; i < 99; i++) + opL.add(new ItemStack(ModBlocks.block_meteor_broken)); + opL.add(new ItemStack(ModBlocks.block_meteor_treasure)); break; case 2: opL.add(new ItemStack(ModBlocks.block_meteor_cobble)); @@ -90,7 +96,9 @@ public class Meteorite { List ipL = new ArrayList(); switch(innerPadding) { case 0: - ipL.add(new ItemStack(ModBlocks.block_meteor_broken)); + for(int i = 0; i < 99; i++) + ipL.add(new ItemStack(ModBlocks.block_meteor_broken)); + ipL.add(new ItemStack(ModBlocks.block_meteor_treasure)); break; case 1: ipL.add(new ItemStack(Blocks.stone)); @@ -157,7 +165,9 @@ public class Meteorite { //0 - Meteor //1 - Treasure //2 - Ore - int core = rand.nextInt(3); + int core = rand.nextInt(2); + if(innerPadding > 0) + core = 2; List hullL = new ArrayList(); switch(hull) { @@ -168,7 +178,9 @@ public class Meteorite { hullL.add(new ItemStack(ModBlocks.block_meteor_cobble)); break; case 2: - hullL.add(new ItemStack(ModBlocks.block_meteor_broken)); + for(int i = 0; i < 99; i++) + hullL.add(new ItemStack(ModBlocks.block_meteor_broken)); + hullL.add(new ItemStack(ModBlocks.block_meteor_treasure)); break; case 3: hullL.add(new ItemStack(ModBlocks.block_meteor_molten)); @@ -182,7 +194,9 @@ public class Meteorite { opL.add(new ItemStack(ModBlocks.block_meteor_cobble)); break; case 1: - opL.add(new ItemStack(ModBlocks.block_meteor_broken)); + for(int i = 0; i < 99; i++) + opL.add(new ItemStack(ModBlocks.block_meteor_broken)); + opL.add(new ItemStack(ModBlocks.block_meteor_treasure)); break; case 2: opL.add(new ItemStack(ModBlocks.block_meteor_cobble)); @@ -193,7 +207,9 @@ public class Meteorite { List ipL = new ArrayList(); switch(innerPadding) { case 0: - ipL.add(new ItemStack(ModBlocks.block_meteor_broken)); + for(int i = 0; i < 99; i++) + ipL.add(new ItemStack(ModBlocks.block_meteor_broken)); + ipL.add(new ItemStack(ModBlocks.block_meteor_treasure)); break; case 1: ipL.add(new ItemStack(Blocks.stone)); @@ -273,7 +289,9 @@ public class Meteorite { hullL.add(new ItemStack(ModBlocks.block_meteor_cobble)); break; case 2: - hullL.add(new ItemStack(ModBlocks.block_meteor_broken)); + for(int i = 0; i < 99; i++) + hullL.add(new ItemStack(ModBlocks.block_meteor_broken)); + hullL.add(new ItemStack(ModBlocks.block_meteor_treasure)); break; case 3: hullL.add(new ItemStack(ModBlocks.block_meteor_molten)); @@ -512,6 +530,12 @@ public class Meteorite { } } + if(rand.nextInt(5) == 3) { + List list = new ArrayList(); + list.add(new ItemStack(ModBlocks.ore_rare, 1).copy()); + return list; + } + if(ores.isEmpty()) { List list = new ArrayList(); list.add(new ItemStack(Blocks.iron_ore, 1).copy());