List of usage examples for org.apache.commons.math3.geometry.euclidean.threed Vector3D getZ
public double getZ()
From source file:nova.core.wrapper.mc.forge.v17.wrapper.entity.forward.BWRigidBody.java
@Override public void setVelocity(Vector3D velocity) { mcEntity().motionX = velocity.getX(); mcEntity().motionY = velocity.getY(); mcEntity().motionZ = velocity.getZ(); }
From source file:nova.core.wrapper.mc.forge.v17.wrapper.entity.forward.MCEntityTransform.java
@Override public void setPosition(Vector3D position) { if (wrapper instanceof EntityPlayerMP) { ((EntityPlayerMP) wrapper).playerNetServerHandler.setPlayerLocation(position.getX(), position.getY(), position.getZ(), wrapper.rotationYaw, wrapper.rotationPitch); } else {/*from w ww . j a v a 2s . c o m*/ wrapper.setPosition(position.getX(), position.getY(), position.getZ()); } }
From source file:nova.core.wrapper.mc.forge.v17.wrapper.render.BWModel.java
public void render(Optional<IBlockAccess> access, Optional<RenderManager> entityRenderManager) { Tessellator tessellator = Tessellator.instance; tessellator.setColorRGBA_F(1, 1, 1, 1); /**//www. j a v a 2 s . c o m * Convert textures and UV into Minecraft equivalent. */ flatten().forEach(model -> { if (model instanceof MeshModel) { MeshModel meshModel = (MeshModel) model; meshModel.faces.forEach(face -> { // Brightness is defined as: skyLight << 20 | blockLight << 4 if (face.getBrightness() >= 0) { tessellator.setBrightness((int) (face.getBrightness() * (15 << 20 | 11 << 4))); } else if (access.isPresent()) { // Determine nearest adjacent block. Vector3D nearestPos = Vector3DUtil .floor(face.getCenter().add(face.normal.scalarMultiply(0.05))); Block block = access.get().getBlock((int) nearestPos.getX(), (int) nearestPos.getY(), (int) nearestPos.getZ()); int brightness = block.getMixedBrightnessForBlock(access.get(), (int) nearestPos.getX(), (int) nearestPos.getY(), (int) nearestPos.getZ()); // TODO: Add Ambient Occlusion /* int aoBrightnessXYNN = block.getMixedBrightnessForBlock(blockAccess, translation.getX() - 1, translation.getY(), translation.zi()); int aoBrightnessYZNN = block.getMixedBrightnessForBlock(blockAccess, translation.getX(), translation.getY(), translation.zi() - 1); int aoBrightnessYZNP = block.getMixedBrightnessForBlock(blockAccess, translation.getX(), translation.getY(), translation.zi() + 1); int aoBrightnessXYPN = block.getMixedBrightnessForBlock(blockAccess, translation.getX() + 1, translation.getY(), translation.zi()); int brightnessTopLeft = getAoBrightness(aoBrightnessXYZNNP, this.aoBrightnessXYNN, this.aoBrightnessYZNP, i1); int brightnessTopRight = getAoBrightness(aoBrightnessYZNP, this.aoBrightnessXYZPNP, this.aoBrightnessXYPN, i1); int brightnessBottomRight = getAoBrightness(this.aoBrightnessYZNN, this.aoBrightnessXYPN, this.aoBrightnessXYZPNN, i1); int brightnessBottomLeft = getAoBrightness(this.aoBrightnessXYNN, this.aoBrightnessXYZNNN, this.aoBrightnessYZNN, i1); */ tessellator.setBrightness(brightness); } else { // Determine nearest adjacent block. tessellator.setBrightness(15 << 20 | 11 << 4); } tessellator.setNormal((int) face.normal.getX(), (int) face.normal.getY(), (int) face.normal.getZ()); if (face.texture.isPresent()) { if (entityRenderManager.isPresent() && face.texture.get() instanceof EntityTexture) { //We're not working on an atlas, so just do... this. Texture t = face.texture.get(); entityRenderManager.get().renderEngine.bindTexture( new ResourceLocation(t.domain, "textures/entities/" + t.resource + ".png")); face.vertices.forEach(v -> { tessellator.setColorRGBA(v.color.red(), v.color.green(), v.color.blue(), v.color.alpha()); tessellator.addVertexWithUV(v.vec.getX(), v.vec.getY(), v.vec.getZ(), v.uv.getX(), v.uv.getY()); }); } else { Texture texture = face.texture.get(); IIcon icon = RenderUtility.instance.getIcon(texture); face.vertices.forEach(v -> { tessellator.setColorRGBA(v.color.red(), v.color.green(), v.color.blue(), v.color.alpha()); if (icon != null) { tessellator.addVertexWithUV(v.vec.getX(), v.vec.getY(), v.vec.getZ(), icon.getInterpolatedU(16 * v.uv.getX()), icon.getInterpolatedV(16 * v.uv.getY())); } else { tessellator.addVertexWithUV(v.vec.getX(), v.vec.getY(), v.vec.getZ(), v.uv.getX(), v.uv.getY()); } }); } } else { face.vertices.forEach(v -> { tessellator.setColorRGBA(v.color.red(), v.color.green(), v.color.blue(), v.color.alpha()); tessellator.addVertex(v.vec.getX(), v.vec.getY(), v.vec.getZ()); }); } }); } else if (model instanceof CustomModel) { CustomModel customModel = (CustomModel) model; customModel.render.accept(customModel); } }); }
From source file:nova.core.wrapper.mc.forge.v18.launcher.ClientProxy.java
@Override public Entity spawnParticle(net.minecraft.world.World world, Entity entity) { //Backward entity particle unwrapper if (entity instanceof BWEntityFX) { EntityFX entityFX = ((BWEntityFX) entity).createEntityFX(world); Vector3D position = entity.position(); entityFX.posX = position.getX(); entityFX.posY = position.getY(); entityFX.posZ = position.getZ(); FMLClientHandler.instance().getClient().effectRenderer.addEffect(entityFX); return Game.natives().toNova(entityFX); } else {//w w w . jav a 2s. c o m FWEntityFX bwEntityFX = new FWEntityFX(world, entity); FMLClientHandler.instance().getClient().effectRenderer.addEffect(bwEntityFX); return bwEntityFX.wrapped; } }
From source file:nova.core.wrapper.mc.forge.v18.wrapper.block.forward.FWBlock.java
public Block getBlockInstance(IBlockAccess access, Vector3D position) { /**//from ww w. ja va2 s . c om * If this block has a TileEntity, forward the method into the Stateful * block. Otherwise, create a new instance of the block and forward the * methods over. */ if (hasTileEntity(null)) { FWTile tileWrapper = (FWTile) access.getTileEntity( new BlockPos((int) position.getX(), (int) position.getY(), (int) position.getZ())); if (tileWrapper != null && tileWrapper.getBlock() != null) { return tileWrapper.getBlock(); } try { throw new RuntimeException("Error: Block in TileWrapper is null for " + dummy); } catch (Exception e) { e.printStackTrace(); } } return getBlockInstance((nova.core.world.World) Game.natives().toNova(access), position); }
From source file:nova.core.wrapper.mc.forge.v18.wrapper.block.world.BWWorld.java
@Override public void markStaticRender(Vector3D position) { world().markBlockForUpdate(/*from w w w.j a v a 2 s . c o m*/ new BlockPos((int) position.getX(), (int) position.getY(), (int) position.getZ())); }
From source file:nova.core.wrapper.mc.forge.v18.wrapper.block.world.BWWorld.java
@Override public void markChange(Vector3D position) { world().notifyNeighborsOfStateChange( new BlockPos((int) position.getX(), (int) position.getY(), (int) position.getZ()), access.getBlockState(// w w w .j a va 2s . c o m new BlockPos((int) position.getX(), (int) position.getY(), (int) position.getZ())) .getBlock()); }
From source file:nova.core.wrapper.mc.forge.v18.wrapper.block.world.BWWorld.java
@Override public Optional<Block> getBlock(Vector3D position) { net.minecraft.block.Block mcBlock = access .getBlockState(new BlockPos((int) position.getX(), (int) position.getY(), (int) position.getZ())) .getBlock();/*from ww w. j ava2 s. com*/ if (mcBlock == null || mcBlock == Blocks.air) { Block airBlock = Game.blocks().getAirBlock().build(); airBlock.components.add(new MCBlockTransform(airBlock, this, position)); return Optional.of(airBlock); } else if (mcBlock instanceof FWBlock) { return Optional.of(((FWBlock) mcBlock).getBlockInstance(access, position)); } else { return Optional.of(new BWBlock(mcBlock, this, position)); } }
From source file:nova.core.wrapper.mc.forge.v18.wrapper.block.world.BWWorld.java
@Override public boolean setBlock(Vector3D position, BlockFactory blockFactory) { //TODO: Do not call blockFactory.build() net.minecraft.block.Block mcBlock = Game.natives().toNative(blockFactory.build()); BlockPos pos = new BlockPos((int) position.getX(), (int) position.getY(), (int) position.getZ()); net.minecraft.block.Block actualBlock = mcBlock != null ? mcBlock : Blocks.air; IBlockState defaultState = actualBlock.getDefaultState(); IBlockState extendedState = actualBlock.getExtendedState(defaultState, world(), pos); return world().setBlockState(pos, extendedState); }
From source file:nova.core.wrapper.mc.forge.v18.wrapper.block.world.BWWorld.java
@Override public boolean removeBlock(Vector3D position) { return world() .setBlockToAir(new BlockPos((int) position.getX(), (int) position.getY(), (int) position.getZ())); }