Jump to content

TheTrooble

Members
  • Posts

    5
  • Joined

  • Last visited

Converted

  • Gender
    Undisclosed
  • Personal Text
    I am new!

TheTrooble's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. I tried this, now no explosions are made ever in multiplayer but it still works in single player.
  2. I'm trying to make an item that creates and explosion on the block you right click on. This works perfectly in single player and in multiplayer it creates an "explosion" at the correct location but for some reason the explosion is tiny, doesn't hurt anything, and doesn't make noise. My guess is it has something to do with the world.createExplosion line but I'm not sure. Any ideas or suggestions? package me.thetrooble.film.items; import java.util.List; import me.thetrooble.film.LudicFilms; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class BoomStick extends Item{ private final String name = "BoomStick"; public BoomStick() { maxStackSize = 1; setCreativeTab(LudicFilms.filmTab); setUnlocalizedName("ludicfilms" + "_" + name); } public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(getMouseOver(player,250).entityHit!=null){ Entity mob = getMouseOver(player,250).entityHit; world.createExplosion((Entity)null,mob.posX,mob.posY,mob.posZ,5, false); return stack; } BlockPos blk = getMouseOver(player,250).getBlockPos(); world.createExplosion((Entity)null,blk.getX(),blk.getY(),blk.getZ(),5, false); return stack; } public String getName() { return name; } public static MovingObjectPosition getMouseOver(Entity theRenderViewEntity, float dist) { AxisAlignedBB theViewBoundingBox = new AxisAlignedBB( theRenderViewEntity.posX - 0.5D, theRenderViewEntity.posY - 0.0D, theRenderViewEntity.posZ - 0.5D, theRenderViewEntity.posX + 0.5D, theRenderViewEntity.posY + 1.5D, theRenderViewEntity.posZ + 0.5D ); MovingObjectPosition returnMOP = null; if (theRenderViewEntity.worldObj != null) { double var2 = dist; returnMOP = theRenderViewEntity.rayTrace( var2, 0 ); double calcdist = var2; Vec3 pos = theRenderViewEntity.getPositionEyes(0); var2 = calcdist; if (returnMOP != null) { calcdist = returnMOP.hitVec.distanceTo( pos ); } Vec3 lookvec = theRenderViewEntity.getLook( 0 ); Vec3 var8 = pos.addVector( lookvec.xCoord * var2, lookvec.yCoord * var2, lookvec.zCoord * var2 ); Entity pointedEntity = null; float var9 = 1.0F; @SuppressWarnings("unchecked") List<Entity> list = theRenderViewEntity.worldObj .getEntitiesWithinAABBExcludingEntity( theRenderViewEntity, theViewBoundingBox.addCoord( lookvec.xCoord * var2, lookvec.yCoord * var2, lookvec.zCoord * var2 ).expand( var9, var9, var9 ) ); double d = calcdist; for (Entity entity : list) { if (entity.canBeCollidedWith()) { float bordersize = entity.getCollisionBorderSize(); AxisAlignedBB aabb = new AxisAlignedBB( entity.posX - entity.width / 2, entity.posY, entity.posZ - entity.width / 2, entity.posX + entity.width / 2, entity.posY + entity.height, entity.posZ + entity.width / 2 ); aabb.expand( bordersize, bordersize, bordersize ); MovingObjectPosition mop0 = aabb.calculateIntercept( pos, var8 ); if (aabb.isVecInside( pos )) { if (0.0D < d || d == 0.0D) { pointedEntity = entity; d = 0.0D; } } else if (mop0 != null) { double d1 = pos.distanceTo( mop0.hitVec ); if (d1 < d || d == 0.0D) { pointedEntity = entity; d = d1; } } } } if (pointedEntity != null && (d < calcdist || returnMOP == null)) { returnMOP = new MovingObjectPosition( pointedEntity ); } } return returnMOP; } }
  3. This might be something that isn't possible but I figure it can't hurt to ask. I am making some green screens and I want them to all be the same color but depending on which direction they are facing there seems to be some odd shading happening. This is what I have package me.thetrooble.film.blocks; import org.lwjgl.opengl.GL11; import me.thetrooble.film.LudicFilms; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraftforge.fml.common.registry.GameRegistry; public class GreenScreen extends Block { private final String name = "GreenScreen"; public GreenScreen() { super(Material.iron); GameRegistry.registerBlock(this, name); setUnlocalizedName("ludicfilms" + "_" + name); setCreativeTab(LudicFilms.filmTab); setLightOpacity(0); setLightLevel(1.0f); setResistance(6000000); setStepSound(Block.soundTypeCloth); GL11.glDisable(GL11.GL_LIGHTING); } public String getName() { return name; } public boolean renderAsNormalBlock() { return false; } } And this is what I get: I had a version of this working in spout and because of a bug in the way blocks were rendered the corners and walls were indistinguishable from each other. In otherwords the entire background was all one shade of green. I want to duplicate that effect but I'm not sure how to go about it. I have tried a few ideas I picked up from a couple google searches but nothing seems to work. Ideas?
  4. Dude thank you so much this had me stumped for far too long.
  5. I have been googling this for the last 30 minutes and for the life of me I can't figure out what I did wrong. When i use this it creates an explosion somewhere that seems to be related to where I am standing and the block I'm looking at but not actually AT the block. I'm sure it's a really simple thing I overlooked but I'm just not seeing it. public void execute(ICommandSender sender, String[] args) throws CommandException { BlockPos blk = sender.getEntityWorld().rayTraceBlocks(sender.getPositionVector(), sender.getCommandSenderEntity().getLookVec()).getBlockPos(); sender.getEntityWorld().createExplosion(sender.getCommandSenderEntity(),blk.getX(),blk.getY(),blk.getZ(),5, false); }
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.