Search in sources :

Example 6 with GCPlayerStatsClient

use of micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient in project Galacticraft by micdoodle8.

the class PlayerClient method updateFeet.

private void updateFeet(EntityPlayerSP player, double motionX, double motionZ) {
    GCPlayerStatsClient stats = GCPlayerStatsClient.get(player);
    double motionSqrd = motionX * motionX + motionZ * motionZ;
    // If the player is on the moon, not airbourne and not riding anything
    if (motionSqrd > 0.001 && player.worldObj != null && player.worldObj.provider instanceof WorldProviderMoon && player.ridingEntity == null && !player.capabilities.isFlying) {
        int iPosX = MathHelper.floor_double(player.posX);
        int iPosY = MathHelper.floor_double(player.posY - 0.05);
        int iPosZ = MathHelper.floor_double(player.posZ);
        BlockPos pos1 = new BlockPos(iPosX, iPosY, iPosZ);
        IBlockState state = player.worldObj.getBlockState(pos1);
        // If the block below is the moon block
        if (state.getBlock() == GCBlocks.blockMoon) {
            // And is the correct metadata (moon turf)
            if (state.getValue(BlockBasicMoon.BASIC_TYPE_MOON) == BlockBasicMoon.EnumBlockBasicMoon.MOON_TURF) {
                // If it has been long enough since the last step
                if (stats.getDistanceSinceLastStep() > 0.35) {
                    Vector3 pos = new Vector3(player);
                    // Set the footprint position to the block below and add random number to stop z-fighting
                    pos.y = MathHelper.floor_double(player.posY) + player.getRNG().nextFloat() / 100.0F;
                    // Adjust footprint to left or right depending on step count
                    switch(stats.getLastStep()) {
                        case 0:
                            pos.translate(new Vector3(Math.sin(Math.toRadians(-player.rotationYaw + 90)) * 0.25, 0, Math.cos(Math.toRadians(-player.rotationYaw + 90)) * 0.25));
                            break;
                        case 1:
                            pos.translate(new Vector3(Math.sin(Math.toRadians(-player.rotationYaw - 90)) * 0.25, 0, Math.cos(Math.toRadians(-player.rotationYaw - 90)) * 0.25));
                            break;
                    }
                    pos = WorldUtil.getFootprintPosition(player.worldObj, player.rotationYaw - 180, pos, new BlockVec3(player));
                    long chunkKey = ChunkCoordIntPair.chunkXZ2Int(pos.intX() >> 4, pos.intZ() >> 4);
                    FootprintRenderer.addFootprint(chunkKey, GCCoreUtil.getDimensionID(player.worldObj), pos, player.rotationYaw, player.getName());
                    // Increment and cap step counter at 1
                    stats.setLastStep((stats.getLastStep() + 1) % 2);
                    stats.setDistanceSinceLastStep(0);
                } else {
                    stats.setDistanceSinceLastStep(stats.getDistanceSinceLastStep() + motionSqrd);
                }
            }
        }
    }
}
Also used : IBlockState(net.minecraft.block.state.IBlockState) WorldProviderMoon(micdoodle8.mods.galacticraft.core.dimension.WorldProviderMoon) Vector3(micdoodle8.mods.galacticraft.api.vector.Vector3) BlockVec3(micdoodle8.mods.galacticraft.api.vector.BlockVec3)

Example 7 with GCPlayerStatsClient

use of micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient in project Galacticraft by micdoodle8.

the class TileEntityPlatform method updateClient.

@SideOnly(Side.CLIENT)
private void updateClient() {
    this.lightOn = false;
    if (this.colorTicks > 0) {
        if (--this.colorTicks == 0) {
            this.colorState = 0;
        }
    }
    IBlockState b = this.worldObj.getBlockState(this.getPos());
    if (b.getBlock() == GCBlocks.platform && b.getValue(BlockPlatform.CORNER) == BlockPlatform.EnumCorner.NW) {
        // Scan area for player entities and light up
        if (this.detection == null) {
            this.detection = AxisAlignedBB.fromBounds(this.getPos().getX() + 0.9D, this.getPos().getY() + 0.75D, this.getPos().getZ() + 0.9D, this.getPos().getX() + 1.1D, this.getPos().getY() + 1.85D, this.getPos().getZ() + 1.1D);
        }
        final List<Entity> list = this.worldObj.getEntitiesWithinAABB(EntityPlayer.class, detection);
        if (list.size() > 0) {
            // Light up the platform
            this.lightOn = true;
            // If this player is within the box
            EntityPlayerSP p = FMLClientHandler.instance().getClientPlayerEntity();
            GCPlayerStatsClient stats = GCPlayerStatsClient.get(p);
            if (list.contains(p) && !stats.getPlatformControlled() && p.ridingEntity == null) {
                // TODO: PlayerAPI version of this
                if (p.movementInput.sneak) {
                    int canDescend = this.checkNextPlatform(-1);
                    if (canDescend == -1) {
                        this.colorState = 1;
                        this.colorTicks = 16;
                    } else if (canDescend > 0) {
                        TileEntity te = this.worldObj.getTileEntity(this.pos.down(canDescend));
                        if (te instanceof TileEntityPlatform) {
                            TileEntityPlatform tep = (TileEntityPlatform) te;
                            stats.startPlatformAscent(this, tep, this.pos.getY() - canDescend + (this.worldObj.provider instanceof IZeroGDimension ? 0.97D : (double) BlockPlatform.HEIGHT));
                            this.startMove(tep);
                            tep.startMove(this);
                        }
                    }
                } else if (p.movementInput.jump) {
                    int canAscend = this.checkNextPlatform(1);
                    if (canAscend == -1) {
                        this.colorState = 1;
                        this.colorTicks = 16;
                    } else if (canAscend > 0) {
                        TileEntity te = this.worldObj.getTileEntity(this.pos.up(canAscend));
                        if (te instanceof TileEntityPlatform) {
                            p.motionY = 0D;
                            TileEntityPlatform tep = (TileEntityPlatform) te;
                            stats.startPlatformAscent(tep, this, this.pos.getY() + canAscend + BlockPlatform.HEIGHT);
                            this.startMove(tep);
                            tep.startMove(this);
                        }
                    }
                }
            }
        }
    }
}
Also used : TileEntity(net.minecraft.tileentity.TileEntity) Entity(net.minecraft.entity.Entity) TileEntity(net.minecraft.tileentity.TileEntity) IBlockState(net.minecraft.block.state.IBlockState) GCPlayerStatsClient(micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient) EntityPlayerSP(net.minecraft.client.entity.EntityPlayerSP) IZeroGDimension(micdoodle8.mods.galacticraft.api.world.IZeroGDimension) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 8 with GCPlayerStatsClient

use of micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient in project Galacticraft by micdoodle8.

the class EntityGrapple method onUpdate.

@Override
public void onUpdate() {
    super.onUpdate();
    this.prevRotationRoll = this.rotationRoll;
    if (!this.worldObj.isRemote) {
        this.updateShootingEntity();
        if (this.getPullingEntity()) {
            EntityPlayer shootingEntity = this.getShootingEntity();
            if (shootingEntity != null) {
                double deltaPosition = this.getDistanceSqToEntity(shootingEntity);
                Vector3 mot = new Vector3(shootingEntity.motionX, shootingEntity.motionY, shootingEntity.motionZ);
                if (mot.getMagnitudeSquared() < 0.01 && this.pullingPlayer) {
                    if (deltaPosition < 10) {
                        this.onCollideWithPlayer(shootingEntity);
                    }
                    this.updatePullingEntity(false);
                    this.setDead();
                }
                this.pullingPlayer = true;
            }
        }
    } else {
        if (this.getPullingEntity()) {
            EntityPlayer shootingEntity = this.getShootingEntity();
            if (shootingEntity != null) {
                shootingEntity.setVelocity((this.posX - shootingEntity.posX) / 12.0F, (this.posY - shootingEntity.posY) / 12.0F, (this.posZ - shootingEntity.posZ) / 12.0F);
                if (shootingEntity.worldObj.isRemote && shootingEntity.worldObj.provider instanceof IZeroGDimension) {
                    GCPlayerStatsClient stats = GCPlayerStatsClient.get(shootingEntity);
                    if (stats != null) {
                        stats.getFreefallHandler().updateFreefall(shootingEntity);
                    }
                }
            }
        }
    }
    if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) {
        float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
        this.prevRotationYaw = this.rotationYaw = (float) Math.atan2(this.motionX, this.motionZ) * Constants.RADIANS_TO_DEGREES;
        this.prevRotationPitch = this.rotationPitch = (float) Math.atan2(this.motionY, f) * Constants.RADIANS_TO_DEGREES;
    }
    if (this.hitVec != null) {
        Block block = this.worldObj.getBlockState(this.hitVec).getBlock();
        if (block.getMaterial() != Material.air) {
            block.setBlockBoundsBasedOnState(this.worldObj, this.hitVec);
            AxisAlignedBB axisalignedbb = block.getCollisionBoundingBox(this.worldObj, this.hitVec, this.worldObj.getBlockState(this.hitVec));
            if (axisalignedbb != null && axisalignedbb.isVecInside(new Vec3(this.posX, this.posY, this.posZ))) {
                this.inGround = true;
            }
        }
    }
    if (this.arrowShake > 0) {
        --this.arrowShake;
    }
    if (this.inGround) {
        if (this.hitVec != null) {
            IBlockState state = this.worldObj.getBlockState(this.hitVec);
            Block block = state.getBlock();
            int j = block.getMetaFromState(state);
            if (block == this.hitBlock && j == this.inData) {
                if (this.shootingEntity != null) {
                    this.shootingEntity.motionX = (this.posX - this.shootingEntity.posX) / 16.0F;
                    this.shootingEntity.motionY = (this.posY - this.shootingEntity.posY) / 16.0F;
                    this.shootingEntity.motionZ = (this.posZ - this.shootingEntity.posZ) / 16.0F;
                    if (this.shootingEntity instanceof EntityPlayerMP)
                        GalacticraftCore.handler.preventFlyingKicks((EntityPlayerMP) this.shootingEntity);
                }
                if (!this.worldObj.isRemote && this.ticksInGround < 5) {
                    this.updatePullingEntity(true);
                }
                ++this.ticksInGround;
                if (this.ticksInGround == 1200) {
                    this.setDead();
                }
            } else {
                this.inGround = false;
                this.motionX *= this.rand.nextFloat() * 0.2F;
                this.motionY *= this.rand.nextFloat() * 0.2F;
                this.motionZ *= this.rand.nextFloat() * 0.2F;
                this.ticksInGround = 0;
                this.ticksInAir = 0;
            }
        }
    } else {
        this.rotationRoll += 5;
        ++this.ticksInAir;
        if (!this.worldObj.isRemote) {
            this.updatePullingEntity(false);
        }
        if (this.shootingEntity != null && this.getDistanceSqToEntity(this.shootingEntity) >= 40 * 40) {
            this.setDead();
        }
        Vec3 vec31 = new Vec3(this.posX, this.posY, this.posZ);
        Vec3 vec3 = new Vec3(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
        MovingObjectPosition movingobjectposition = this.worldObj.rayTraceBlocks(vec31, vec3, false, true, false);
        vec31 = new Vec3(this.posX, this.posY, this.posZ);
        vec3 = new Vec3(this.posX + this.motionX, this.posY + this.motionY, this.posZ + this.motionZ);
        if (movingobjectposition != null) {
            vec3 = new Vec3(movingobjectposition.hitVec.xCoord, movingobjectposition.hitVec.yCoord, movingobjectposition.hitVec.zCoord);
        }
        Entity entity = null;
        List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, this.getEntityBoundingBox().addCoord(this.motionX, this.motionY, this.motionZ).expand(1.0D, 1.0D, 1.0D));
        double d0 = 0.0D;
        int i;
        float f1;
        for (i = 0; i < list.size(); ++i) {
            Entity entity1 = (Entity) list.get(i);
            if (entity1.canBeCollidedWith() && (entity1 != this.shootingEntity || this.ticksInAir >= 5)) {
                f1 = 0.3F;
                AxisAlignedBB axisalignedbb1 = entity1.getEntityBoundingBox().expand(f1, f1, f1);
                MovingObjectPosition movingobjectposition1 = axisalignedbb1.calculateIntercept(vec31, vec3);
                if (movingobjectposition1 != null) {
                    double d1 = vec31.distanceTo(movingobjectposition1.hitVec);
                    if (d1 < d0 || d0 == 0.0D) {
                        entity = entity1;
                        d0 = d1;
                    }
                }
            }
        }
        if (entity != null) {
            movingobjectposition = new MovingObjectPosition(entity);
        }
        if (movingobjectposition != null && movingobjectposition.entityHit != null && movingobjectposition.entityHit instanceof EntityPlayer) {
            EntityPlayer entityplayer = (EntityPlayer) movingobjectposition.entityHit;
            if (entityplayer.capabilities.disableDamage || this.shootingEntity != null && !this.shootingEntity.canAttackPlayer(entityplayer)) {
                movingobjectposition = null;
            }
        }
        float motion;
        if (movingobjectposition != null) {
            if (movingobjectposition.entityHit == null) {
                this.hitVec = movingobjectposition.getBlockPos();
                IBlockState state = this.worldObj.getBlockState(this.hitVec);
                this.hitBlock = state.getBlock();
                this.inData = state.getBlock().getMetaFromState(state);
                this.motionX = (float) (movingobjectposition.hitVec.xCoord - this.posX);
                this.motionY = (float) (movingobjectposition.hitVec.yCoord - this.posY);
                this.motionZ = (float) (movingobjectposition.hitVec.zCoord - this.posZ);
                motion = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
                this.posX -= this.motionX / motion * 0.05000000074505806D;
                this.posY -= this.motionY / motion * 0.05000000074505806D;
                this.posZ -= this.motionZ / motion * 0.05000000074505806D;
                this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F));
                this.inGround = true;
                this.arrowShake = 7;
                if (this.hitBlock.getMaterial() != Material.air) {
                    this.hitBlock.onEntityCollidedWithBlock(this.worldObj, this.hitVec, this);
                }
            }
        }
        this.posX += this.motionX;
        this.posY += this.motionY;
        this.posZ += this.motionZ;
        motion = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
        this.rotationYaw = (float) Math.atan2(this.motionX, this.motionZ) * Constants.RADIANS_TO_DEGREES;
        this.rotationPitch = (float) Math.atan2(this.motionY, motion) * Constants.RADIANS_TO_DEGREES;
        while (this.rotationPitch - this.prevRotationPitch < -180.0F) {
            this.prevRotationPitch -= 360.0F;
        }
        while (this.rotationPitch - this.prevRotationPitch >= 180.0F) {
            this.prevRotationPitch += 360.0F;
        }
        while (this.rotationYaw - this.prevRotationYaw < -180.0F) {
            this.prevRotationYaw -= 360.0F;
        }
        while (this.rotationYaw - this.prevRotationYaw >= 180.0F) {
            this.prevRotationYaw += 360.0F;
        }
        this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F;
        this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
        float f3 = 0.99F;
        f1 = 0.05F;
        if (this.isInWater()) {
            float f4 = 0.25F;
            for (int l = 0; l < 4; ++l) {
                this.worldObj.spawnParticle(EnumParticleTypes.WATER_BUBBLE, this.posX - this.motionX * f4, this.posY - this.motionY * f4, this.posZ - this.motionZ * f4, this.motionX, this.motionY, this.motionZ);
            }
            f3 = 0.8F;
        }
        if (this.isWet()) {
            this.extinguish();
        }
        this.setPosition(this.posX, this.posY, this.posZ);
        this.doBlockCollisions();
    }
    if (!this.worldObj.isRemote && (this.ticksInGround - 1) % 10 == 0) {
        GalacticraftCore.packetPipeline.sendToAllAround(new PacketSimpleAsteroids(PacketSimpleAsteroids.EnumSimplePacketAsteroids.C_UPDATE_GRAPPLE_POS, GCCoreUtil.getDimensionID(this.worldObj), new Object[] { this.getEntityId(), new Vector3(this) }), new NetworkRegistry.TargetPoint(GCCoreUtil.getDimensionID(this.worldObj), this.posX, this.posY, this.posZ, 150));
    }
}
Also used : Entity(net.minecraft.entity.Entity) IBlockState(net.minecraft.block.state.IBlockState) PacketSimpleAsteroids(micdoodle8.mods.galacticraft.planets.asteroids.network.PacketSimpleAsteroids) Vector3(micdoodle8.mods.galacticraft.api.vector.Vector3) GCPlayerStatsClient(micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient) NetworkRegistry(net.minecraftforge.fml.common.network.NetworkRegistry) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Block(net.minecraft.block.Block) EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) List(java.util.List) IZeroGDimension(micdoodle8.mods.galacticraft.api.world.IZeroGDimension)

Example 9 with GCPlayerStatsClient

use of micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient in project Galacticraft by micdoodle8.

the class PacketSimple method handleClientSide.

@SideOnly(Side.CLIENT)
@Override
public void handleClientSide(EntityPlayer player) {
    EntityPlayerSP playerBaseClient = null;
    GCPlayerStatsClient stats = null;
    if (player instanceof EntityPlayerSP) {
        playerBaseClient = (EntityPlayerSP) player;
        stats = GCPlayerStatsClient.get(playerBaseClient);
    } else {
        if (type != EnumSimplePacket.C_UPDATE_SPACESTATION_LIST && type != EnumSimplePacket.C_UPDATE_PLANETS_LIST && type != EnumSimplePacket.C_UPDATE_CONFIGS) {
            return;
        }
    }
    switch(this.type) {
        case C_AIR_REMAINING:
            if (String.valueOf(this.data.get(2)).equals(String.valueOf(PlayerUtil.getName(player)))) {
                TickHandlerClient.airRemaining = (Integer) this.data.get(0);
                TickHandlerClient.airRemaining2 = (Integer) this.data.get(1);
            }
            break;
        case C_UPDATE_DIMENSION_LIST:
            if (String.valueOf(this.data.get(0)).equals(PlayerUtil.getName(player))) {
                String dimensionList = (String) this.data.get(1);
                if (ConfigManagerCore.enableDebug) {
                    if (!dimensionList.equals(PacketSimple.spamCheckString)) {
                        GCLog.info("DEBUG info: " + dimensionList);
                        PacketSimple.spamCheckString = dimensionList;
                    }
                }
                final String[] destinations = dimensionList.split("\\?");
                List<CelestialBody> possibleCelestialBodies = Lists.newArrayList();
                Map<Integer, Map<String, GuiCelestialSelection.StationDataGUI>> spaceStationData = Maps.newHashMap();
                for (String str : destinations) {
                    CelestialBody celestialBody = WorldUtil.getReachableCelestialBodiesForName(str);
                    if (celestialBody == null && str.contains("$")) {
                        String[] values = str.split("\\$");
                        int homePlanetID = Integer.parseInt(values[4]);
                        for (Satellite satellite : GalaxyRegistry.getRegisteredSatellites().values()) {
                            if (satellite.getParentPlanet().getDimensionID() == homePlanetID) {
                                celestialBody = satellite;
                                break;
                            }
                        }
                        if (!spaceStationData.containsKey(homePlanetID)) {
                            spaceStationData.put(homePlanetID, new HashMap<String, GuiCelestialSelection.StationDataGUI>());
                        }
                        spaceStationData.get(homePlanetID).put(values[1], new GuiCelestialSelection.StationDataGUI(values[2], Integer.parseInt(values[3])));
                    // spaceStationNames.put(values[1], values[2]);
                    // spaceStationIDs.put(values[1], Integer.parseInt(values[3]));
                    // spaceStationHomes.put(values[1], Integer.parseInt(values[4]));
                    }
                    if (celestialBody != null) {
                        possibleCelestialBodies.add(celestialBody);
                    }
                }
                if (FMLClientHandler.instance().getClient().theWorld != null) {
                    if (!(FMLClientHandler.instance().getClient().currentScreen instanceof GuiCelestialSelection)) {
                        GuiCelestialSelection gui = new GuiCelestialSelection(false, possibleCelestialBodies);
                        gui.spaceStationMap = spaceStationData;
                        // gui.spaceStationNames = spaceStationNames;
                        // gui.spaceStationIDs = spaceStationIDs;
                        FMLClientHandler.instance().getClient().displayGuiScreen(gui);
                    } else {
                        ((GuiCelestialSelection) FMLClientHandler.instance().getClient().currentScreen).possibleBodies = possibleCelestialBodies;
                        ((GuiCelestialSelection) FMLClientHandler.instance().getClient().currentScreen).spaceStationMap = spaceStationData;
                    // ((GuiCelestialSelection) FMLClientHandler.instance().getClient().currentScreen).spaceStationNames = spaceStationNames;
                    // ((GuiCelestialSelection) FMLClientHandler.instance().getClient().currentScreen).spaceStationIDs = spaceStationIDs;
                    }
                }
            }
            break;
        case C_SPAWN_SPARK_PARTICLES:
            BlockPos pos = (BlockPos) this.data.get(0);
            Minecraft mc = Minecraft.getMinecraft();
            for (int i = 0; i < 4; i++) {
                if (mc != null && mc.getRenderViewEntity() != null && mc.effectRenderer != null && mc.theWorld != null) {
                    final EntityFX fx = new EntityFXSparks(mc.theWorld, pos.getX() - 0.15 + 0.5, pos.getY() + 1.2, pos.getZ() + 0.15 + 0.5, mc.theWorld.rand.nextDouble() / 20 - mc.theWorld.rand.nextDouble() / 20, mc.theWorld.rand.nextDouble() / 20 - mc.theWorld.rand.nextDouble() / 20);
                    if (fx != null) {
                        mc.effectRenderer.addEffect(fx);
                    }
                }
            }
            break;
        case C_UPDATE_GEAR_SLOT:
            int subtype = (Integer) this.data.get(3);
            String gearName = (String) this.data.get(0);
            EntityPlayer gearDataPlayer = player.worldObj.getPlayerEntityByName(gearName);
            if (gearDataPlayer != null) {
                PlayerGearData gearData = ClientProxyCore.playerItemData.get(PlayerUtil.getName(gearDataPlayer));
                if (gearData == null) {
                    gearData = new PlayerGearData(player);
                    if (!ClientProxyCore.gearDataRequests.contains(gearName)) {
                        GalacticraftCore.packetPipeline.sendToServer(new PacketSimple(PacketSimple.EnumSimplePacket.S_REQUEST_GEAR_DATA, getDimensionID(), new Object[] { gearName }));
                        ClientProxyCore.gearDataRequests.add(gearName);
                    }
                } else {
                    ClientProxyCore.gearDataRequests.remove(gearName);
                }
                EnumExtendedInventorySlot type = EnumExtendedInventorySlot.values()[(Integer) this.data.get(2)];
                EnumModelPacketType typeChange = EnumModelPacketType.values()[(Integer) this.data.get(1)];
                switch(type) {
                    case MASK:
                        gearData.setMask(subtype);
                        break;
                    case GEAR:
                        gearData.setGear(subtype);
                        break;
                    case LEFT_TANK:
                        gearData.setLeftTank(subtype);
                        break;
                    case RIGHT_TANK:
                        gearData.setRightTank(subtype);
                        break;
                    case PARACHUTE:
                        if (typeChange == EnumModelPacketType.ADD) {
                            String name;
                            if (subtype != -1) {
                                name = ItemParaChute.names[subtype];
                                gearData.setParachute(new ResourceLocation(Constants.ASSET_PREFIX, "textures/model/parachute/" + name + ".png"));
                            }
                        } else {
                            gearData.setParachute(null);
                        }
                        break;
                    case FREQUENCY_MODULE:
                        gearData.setFrequencyModule(subtype);
                        break;
                    case THERMAL_HELMET:
                        gearData.setThermalPadding(0, subtype);
                        break;
                    case THERMAL_CHESTPLATE:
                        gearData.setThermalPadding(1, subtype);
                        break;
                    case THERMAL_LEGGINGS:
                        gearData.setThermalPadding(2, subtype);
                        break;
                    case THERMAL_BOOTS:
                        gearData.setThermalPadding(3, subtype);
                        break;
                    case SHIELD_CONTROLLER:
                        gearData.setShieldController(subtype);
                        break;
                    default:
                        break;
                }
                ClientProxyCore.playerItemData.put(gearName, gearData);
            }
            break;
        case C_CLOSE_GUI:
            FMLClientHandler.instance().getClient().displayGuiScreen(null);
            break;
        case C_RESET_THIRD_PERSON:
            FMLClientHandler.instance().getClient().gameSettings.thirdPersonView = stats.getThirdPersonView();
            break;
        case C_UPDATE_SPACESTATION_LIST:
            WorldUtil.decodeSpaceStationListClient(data);
            break;
        case C_UPDATE_SPACESTATION_DATA:
            SpaceStationWorldData var4 = SpaceStationWorldData.getMPSpaceStationData(player.worldObj, (Integer) this.data.get(0), player);
            var4.readFromNBT((NBTTagCompound) this.data.get(1));
            break;
        case C_UPDATE_SPACESTATION_CLIENT_ID:
            ClientProxyCore.clientSpaceStationID = WorldUtil.stringToSpaceStationData((String) this.data.get(0));
            break;
        case C_UPDATE_PLANETS_LIST:
            WorldUtil.decodePlanetsListClient(data);
            break;
        case C_UPDATE_CONFIGS:
            ConfigManagerCore.saveClientConfigOverrideable();
            ConfigManagerCore.setConfigOverride(data);
            break;
        case C_ADD_NEW_SCHEMATIC:
            final ISchematicPage page = SchematicRegistry.getMatchingRecipeForID((Integer) this.data.get(0));
            if (!stats.getUnlockedSchematics().contains(page)) {
                stats.getUnlockedSchematics().add(page);
            }
            break;
        case C_UPDATE_SCHEMATIC_LIST:
            for (Object o : this.data) {
                Integer schematicID = (Integer) o;
                if (schematicID != -2) {
                    Collections.sort(stats.getUnlockedSchematics());
                    if (!stats.getUnlockedSchematics().contains(SchematicRegistry.getMatchingRecipeForID(schematicID))) {
                        stats.getUnlockedSchematics().add(SchematicRegistry.getMatchingRecipeForID(schematicID));
                    }
                }
            }
            break;
        case C_PLAY_SOUND_BOSS_DEATH:
            player.playSound(Constants.TEXTURE_PREFIX + "entity.bossdeath", 10.0F, (Float) this.data.get(0));
            break;
        case C_PLAY_SOUND_EXPLODE:
            player.playSound("random.explode", 10.0F, 0.7F);
            break;
        case C_PLAY_SOUND_BOSS_LAUGH:
            player.playSound(Constants.TEXTURE_PREFIX + "entity.bosslaugh", 10.0F, 1.1F);
            break;
        case C_PLAY_SOUND_BOW:
            player.playSound("random.bow", 10.0F, 0.2F);
            break;
        case C_UPDATE_OXYGEN_VALIDITY:
            stats.setOxygenSetupValid((Boolean) this.data.get(0));
            break;
        case C_OPEN_PARACHEST_GUI:
            switch((Integer) this.data.get(1)) {
                case 0:
                    if (player.ridingEntity instanceof EntityBuggy) {
                        FMLClientHandler.instance().getClient().displayGuiScreen(new GuiBuggy(player.inventory, (EntityBuggy) player.ridingEntity, ((EntityBuggy) player.ridingEntity).getType()));
                        player.openContainer.windowId = (Integer) this.data.get(0);
                    }
                    break;
                case 1:
                    int entityID = (Integer) this.data.get(2);
                    Entity entity = player.worldObj.getEntityByID(entityID);
                    if (entity != null && entity instanceof IInventorySettable) {
                        FMLClientHandler.instance().getClient().displayGuiScreen(new GuiParaChest(player.inventory, (IInventorySettable) entity));
                    }
                    player.openContainer.windowId = (Integer) this.data.get(0);
                    break;
            }
            break;
        case C_UPDATE_WIRE_BOUNDS:
            TileEntity tile = player.worldObj.getTileEntity((BlockPos) this.data.get(0));
            if (tile instanceof TileBaseConductor) {
                ((TileBaseConductor) tile).adjacentConnections = null;
                player.worldObj.getBlockState(tile.getPos()).getBlock().setBlockBoundsBasedOnState(player.worldObj, tile.getPos());
            }
            break;
        case C_OPEN_SPACE_RACE_GUI:
            if (Minecraft.getMinecraft().currentScreen == null) {
                TickHandlerClient.spaceRaceGuiScheduled = false;
                player.openGui(GalacticraftCore.instance, GuiIdsCore.SPACE_RACE_START, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ);
            } else {
                TickHandlerClient.spaceRaceGuiScheduled = true;
            }
            break;
        case C_UPDATE_SPACE_RACE_DATA:
            Integer teamID = (Integer) this.data.get(0);
            String teamName = (String) this.data.get(1);
            FlagData flagData = (FlagData) this.data.get(2);
            Vector3 teamColor = (Vector3) this.data.get(3);
            List<String> playerList = new ArrayList<String>();
            for (int i = 4; i < this.data.size(); i++) {
                String playerName = (String) this.data.get(i);
                ClientProxyCore.flagRequestsSent.remove(playerName);
                playerList.add(playerName);
            }
            SpaceRace race = new SpaceRace(playerList, teamName, flagData, teamColor);
            race.setSpaceRaceID(teamID);
            SpaceRaceManager.addSpaceRace(race);
            break;
        case C_OPEN_JOIN_RACE_GUI:
            stats.setSpaceRaceInviteTeamID((Integer) this.data.get(0));
            player.openGui(GalacticraftCore.instance, GuiIdsCore.SPACE_RACE_JOIN, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ);
            break;
        case C_UPDATE_DUNGEON_DIRECTION:
            stats.setDungeonDirection((Float) this.data.get(0));
            break;
        case C_UPDATE_FOOTPRINT_LIST:
            List<Footprint> printList = new ArrayList<Footprint>();
            long chunkKey = (Long) this.data.get(0);
            for (int i = 1; i < this.data.size(); i++) {
                Footprint print = (Footprint) this.data.get(i);
                if (!print.owner.equals(player.getName())) {
                    printList.add(print);
                }
            }
            FootprintRenderer.setFootprints(chunkKey, printList);
            break;
        case C_FOOTPRINTS_REMOVED:
            long chunkKey0 = (Long) this.data.get(0);
            BlockVec3 position = (BlockVec3) this.data.get(1);
            List<Footprint> footprintList = FootprintRenderer.footprints.get(chunkKey0);
            List<Footprint> toRemove = new ArrayList<Footprint>();
            if (footprintList != null) {
                for (Footprint footprint : footprintList) {
                    if (footprint.position.x > position.x && footprint.position.x < position.x + 1 && footprint.position.z > position.z && footprint.position.z < position.z + 1) {
                        toRemove.add(footprint);
                    }
                }
            }
            if (!toRemove.isEmpty()) {
                footprintList.removeAll(toRemove);
                FootprintRenderer.footprints.put(chunkKey0, footprintList);
            }
            break;
        case C_UPDATE_STATION_SPIN:
            if (playerBaseClient.worldObj.provider instanceof WorldProviderSpaceStation) {
                ((WorldProviderSpaceStation) playerBaseClient.worldObj.provider).getSpinManager().setSpinRate((Float) this.data.get(0), (Boolean) this.data.get(1));
            }
            break;
        case C_UPDATE_STATION_DATA:
            if (playerBaseClient.worldObj.provider instanceof WorldProviderSpaceStation) {
                ((WorldProviderSpaceStation) playerBaseClient.worldObj.provider).getSpinManager().setSpinCentre((Double) this.data.get(0), (Double) this.data.get(1));
            }
            break;
        case C_UPDATE_STATION_BOX:
            if (playerBaseClient.worldObj.provider instanceof WorldProviderSpaceStation) {
                ((WorldProviderSpaceStation) playerBaseClient.worldObj.provider).getSpinManager().setSpinBox((Integer) this.data.get(0), (Integer) this.data.get(1), (Integer) this.data.get(2), (Integer) this.data.get(3), (Integer) this.data.get(4), (Integer) this.data.get(5));
            }
            break;
        case C_UPDATE_THERMAL_LEVEL:
            stats.setThermalLevel((Integer) this.data.get(0));
            stats.setThermalLevelNormalising((Boolean) this.data.get(1));
            break;
        case C_DISPLAY_ROCKET_CONTROLS:
            player.addChatMessage(new ChatComponentText(GameSettings.getKeyDisplayString(KeyHandlerClient.spaceKey.getKeyCode()) + "  - " + GCCoreUtil.translate("gui.rocket.launch.name")));
            player.addChatMessage(new ChatComponentText(GameSettings.getKeyDisplayString(KeyHandlerClient.leftKey.getKeyCode()) + " / " + GameSettings.getKeyDisplayString(KeyHandlerClient.rightKey.getKeyCode()) + "  - " + GCCoreUtil.translate("gui.rocket.turn.name")));
            player.addChatMessage(new ChatComponentText(GameSettings.getKeyDisplayString(KeyHandlerClient.accelerateKey.getKeyCode()) + " / " + GameSettings.getKeyDisplayString(KeyHandlerClient.decelerateKey.getKeyCode()) + "  - " + GCCoreUtil.translate("gui.rocket.updown.name")));
            player.addChatMessage(new ChatComponentText(GameSettings.getKeyDisplayString(KeyHandlerClient.openFuelGui.getKeyCode()) + "       - " + GCCoreUtil.translate("gui.rocket.inv.name")));
            break;
        case C_GET_CELESTIAL_BODY_LIST:
            String str = "";
            for (CelestialBody cBody : GalaxyRegistry.getRegisteredPlanets().values()) {
                str = str.concat(cBody.getUnlocalizedName() + ";");
            }
            for (CelestialBody cBody : GalaxyRegistry.getRegisteredMoons().values()) {
                str = str.concat(cBody.getUnlocalizedName() + ";");
            }
            for (CelestialBody cBody : GalaxyRegistry.getRegisteredSatellites().values()) {
                str = str.concat(cBody.getUnlocalizedName() + ";");
            }
            for (SolarSystem solarSystem : GalaxyRegistry.getRegisteredSolarSystems().values()) {
                str = str.concat(solarSystem.getUnlocalizedName() + ";");
            }
            GalacticraftCore.packetPipeline.sendToServer(new PacketSimple(EnumSimplePacket.S_COMPLETE_CBODY_HANDSHAKE, getDimensionID(), new Object[] { str }));
            break;
        case C_UPDATE_ENERGYUNITS:
            CommandGCEnergyUnits.handleParamClientside((Integer) this.data.get(0));
            break;
        case C_RESPAWN_PLAYER:
            final WorldProvider provider = WorldUtil.getProviderForNameClient((String) this.data.get(0));
            final int dimID = GCCoreUtil.getDimensionID(provider);
            if (ConfigManagerCore.enableDebug) {
                GCLog.info("DEBUG: Client receiving respawn packet for dim " + dimID);
            }
            int par2 = (Integer) this.data.get(1);
            String par3 = (String) this.data.get(2);
            int par4 = (Integer) this.data.get(3);
            WorldUtil.forceRespawnClient(dimID, par2, par3, par4);
            break;
        case C_UPDATE_STATS:
            stats.setBuildFlags((Integer) this.data.get(0));
            BlockPanelLighting.updateClient(this.data);
            break;
        case C_UPDATE_TELEMETRY:
            tile = player.worldObj.getTileEntity((BlockPos) this.data.get(0));
            if (tile instanceof TileEntityTelemetry) {
                ((TileEntityTelemetry) tile).receiveUpdate(data, this.getDimensionID());
            }
            break;
        case C_SEND_PLAYERSKIN:
            String strName = (String) this.data.get(0);
            String s1 = (String) this.data.get(1);
            String s2 = (String) this.data.get(2);
            String strUUID = (String) this.data.get(3);
            GameProfile gp = PlayerUtil.getOtherPlayerProfile(strName);
            if (gp == null) {
                gp = PlayerUtil.makeOtherPlayerProfile(strName, strUUID);
            }
            gp.getProperties().put("textures", new Property("textures", s1, s2));
            break;
        case C_SEND_OVERWORLD_IMAGE:
            try {
                int cx = (Integer) this.data.get(0);
                int cz = (Integer) this.data.get(1);
                byte[] bytes = (byte[]) this.data.get(2);
                MapUtil.receiveOverworldImageCompressed(cx, cz, bytes);
            } catch (Exception e) {
                e.printStackTrace();
            }
            break;
        case C_RECOLOR_PIPE:
            TileEntity tileEntity = player.worldObj.getTileEntity((BlockPos) this.data.get(0));
            if (tileEntity instanceof TileEntityFluidPipe) {
                TileEntityFluidPipe pipe = (TileEntityFluidPipe) tileEntity;
                pipe.getNetwork().split(pipe);
                pipe.setNetwork(null);
            }
            break;
        case C_RECOLOR_ALL_GLASS:
            BlockSpaceGlass.updateGlassColors((Integer) this.data.get(0), (Integer) this.data.get(1), (Integer) this.data.get(2));
            break;
        case C_UPDATE_MACHINE_DATA:
            TileEntity tile3 = player.worldObj.getTileEntity((BlockPos) this.data.get(0));
            if (tile3 instanceof ITileClientUpdates) {
                ((ITileClientUpdates) tile3).updateClient(this.data);
            }
            break;
        case C_LEAK_DATA:
            TileEntity tile4 = player.worldObj.getTileEntity((BlockPos) this.data.get(0));
            if (tile4 instanceof TileEntityOxygenSealer) {
                ((ITileClientUpdates) tile4).updateClient(this.data);
            }
            break;
        case C_SPAWN_HANGING_SCHEMATIC:
            EntityHangingSchematic entity = new EntityHangingSchematic(player.worldObj, (BlockPos) this.data.get(0), EnumFacing.getFront((Integer) this.data.get(2)), (Integer) this.data.get(3));
            ((WorldClient) player.worldObj).addEntityToWorld((Integer) this.data.get(1), entity);
            break;
        default:
            break;
    }
}
Also used : IControllableEntity(micdoodle8.mods.galacticraft.core.entities.IControllableEntity) Entity(net.minecraft.entity.Entity) TileEntity(net.minecraft.tileentity.TileEntity) TileBaseConductor(micdoodle8.mods.galacticraft.core.energy.tile.TileBaseConductor) SolarSystem(micdoodle8.mods.galacticraft.api.galaxies.SolarSystem) EntityBuggy(micdoodle8.mods.galacticraft.core.entities.EntityBuggy) WorldProvider(net.minecraft.world.WorldProvider) EntityFXSparks(micdoodle8.mods.galacticraft.core.client.fx.EntityFXSparks) EntityFX(net.minecraft.client.particle.EntityFX) Footprint(micdoodle8.mods.galacticraft.core.wrappers.Footprint) EnumExtendedInventorySlot(micdoodle8.mods.galacticraft.api.item.EnumExtendedInventorySlot) GuiParaChest(micdoodle8.mods.galacticraft.core.client.gui.container.GuiParaChest) WorldClient(net.minecraft.client.multiplayer.WorldClient) EntityHangingSchematic(micdoodle8.mods.galacticraft.core.entities.EntityHangingSchematic) GuiCelestialSelection(micdoodle8.mods.galacticraft.core.client.gui.screen.GuiCelestialSelection) GameProfile(com.mojang.authlib.GameProfile) EntityPlayer(net.minecraft.entity.player.EntityPlayer) GuiBuggy(micdoodle8.mods.galacticraft.core.client.gui.container.GuiBuggy) SpaceRace(micdoodle8.mods.galacticraft.core.dimension.SpaceRace) ITileClientUpdates(micdoodle8.mods.galacticraft.api.tile.ITileClientUpdates) Satellite(micdoodle8.mods.galacticraft.api.galaxies.Satellite) TileEntity(net.minecraft.tileentity.TileEntity) FlagData(micdoodle8.mods.galacticraft.core.wrappers.FlagData) WorldProviderSpaceStation(micdoodle8.mods.galacticraft.core.dimension.WorldProviderSpaceStation) CelestialBody(micdoodle8.mods.galacticraft.api.galaxies.CelestialBody) PlayerGearData(micdoodle8.mods.galacticraft.core.wrappers.PlayerGearData) EnumModelPacketType(micdoodle8.mods.galacticraft.core.entities.player.GCPlayerHandler.EnumModelPacketType) Property(com.mojang.authlib.properties.Property) BlockVec3(micdoodle8.mods.galacticraft.api.vector.BlockVec3) SpaceStationWorldData(micdoodle8.mods.galacticraft.core.dimension.SpaceStationWorldData) IInventorySettable(micdoodle8.mods.galacticraft.core.inventory.IInventorySettable) Vector3(micdoodle8.mods.galacticraft.api.vector.Vector3) Minecraft(net.minecraft.client.Minecraft) Footprint(micdoodle8.mods.galacticraft.core.wrappers.Footprint) IOException(java.io.IOException) ISchematicPage(micdoodle8.mods.galacticraft.api.recipe.ISchematicPage) EntityPlayerSP(net.minecraft.client.entity.EntityPlayerSP) SideOnly(net.minecraftforge.fml.relauncher.SideOnly)

Example 10 with GCPlayerStatsClient

use of micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient in project Galacticraft by micdoodle8.

the class TickHandlerClient method onRenderTick.

@SubscribeEvent
public void onRenderTick(RenderTickEvent event) {
    final Minecraft minecraft = FMLClientHandler.instance().getClient();
    final EntityPlayerSP player = minecraft.thePlayer;
    final EntityPlayerSP playerBaseClient = PlayerUtil.getPlayerBaseClientFromPlayer(player, false);
    if (player == null || playerBaseClient == null) {
        return;
    }
    GCPlayerStatsClient stats = GCPlayerStatsClient.get(playerBaseClient);
    ;
    if (event.phase == Phase.END) {
        if (minecraft.currentScreen instanceof GuiIngameMenu) {
            int i = Mouse.getEventX() * minecraft.currentScreen.width / minecraft.displayWidth;
            int j = minecraft.currentScreen.height - Mouse.getEventY() * minecraft.currentScreen.height / minecraft.displayHeight - 1;
            int k = Mouse.getEventButton();
            if (Minecraft.isRunningOnMac && k == 0 && (Keyboard.isKeyDown(29) || Keyboard.isKeyDown(157))) {
                k = 1;
            }
            int deltaColor = 0;
            if (i > minecraft.currentScreen.width - 100 && j > minecraft.currentScreen.height - 35) {
                deltaColor = 20;
                if (k == 0) {
                    if (Mouse.getEventButtonState()) {
                        minecraft.displayGuiScreen(new GuiNewSpaceRace(playerBaseClient));
                    }
                }
            }
            this.drawGradientRect(minecraft.currentScreen.width - 100, minecraft.currentScreen.height - 35, minecraft.currentScreen.width, minecraft.currentScreen.height, ColorUtil.to32BitColor(150, 10 + deltaColor, 10 + deltaColor, 10 + deltaColor), ColorUtil.to32BitColor(250, 10 + deltaColor, 10 + deltaColor, 10 + deltaColor));
            minecraft.fontRendererObj.drawString(GCCoreUtil.translate("gui.space_race.create.title.name.0"), minecraft.currentScreen.width - 50 - minecraft.fontRendererObj.getStringWidth(GCCoreUtil.translate("gui.space_race.create.title.name.0")) / 2, minecraft.currentScreen.height - 26, ColorUtil.to32BitColor(255, 240, 240, 240));
            minecraft.fontRendererObj.drawString(GCCoreUtil.translate("gui.space_race.create.title.name.1"), minecraft.currentScreen.width - 50 - minecraft.fontRendererObj.getStringWidth(GCCoreUtil.translate("gui.space_race.create.title.name.1")) / 2, minecraft.currentScreen.height - 16, ColorUtil.to32BitColor(255, 240, 240, 240));
            Gui.drawRect(minecraft.currentScreen.width - 100, minecraft.currentScreen.height - 35, minecraft.currentScreen.width - 99, minecraft.currentScreen.height, ColorUtil.to32BitColor(255, 0, 0, 0));
            Gui.drawRect(minecraft.currentScreen.width - 100, minecraft.currentScreen.height - 35, minecraft.currentScreen.width, minecraft.currentScreen.height - 34, ColorUtil.to32BitColor(255, 0, 0, 0));
        }
        ClientProxyCore.playerPosX = player.prevPosX + (player.posX - player.prevPosX) * event.renderTickTime;
        ClientProxyCore.playerPosY = player.prevPosY + (player.posY - player.prevPosY) * event.renderTickTime;
        ClientProxyCore.playerPosZ = player.prevPosZ + (player.posZ - player.prevPosZ) * event.renderTickTime;
        ClientProxyCore.playerRotationYaw = player.prevRotationYaw + (player.rotationYaw - player.prevRotationYaw) * event.renderTickTime;
        ClientProxyCore.playerRotationPitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.renderTickTime;
        if (minecraft.currentScreen == null && player.ridingEntity instanceof EntitySpaceshipBase && minecraft.gameSettings.thirdPersonView != 0 && !minecraft.gameSettings.hideGUI) {
            OverlayRocket.renderSpaceshipOverlay(((EntitySpaceshipBase) player.ridingEntity).getSpaceshipGui());
        }
        if (minecraft.currentScreen == null && player.ridingEntity instanceof EntityLander && minecraft.gameSettings.thirdPersonView != 0 && !minecraft.gameSettings.hideGUI) {
            OverlayLander.renderLanderOverlay();
        }
        if (minecraft.currentScreen == null && player.ridingEntity instanceof EntityAutoRocket && minecraft.gameSettings.thirdPersonView != 0 && !minecraft.gameSettings.hideGUI) {
            OverlayDockingRocket.renderDockingOverlay();
        }
        if (minecraft.currentScreen == null && player.ridingEntity instanceof EntitySpaceshipBase && minecraft.gameSettings.thirdPersonView != 0 && !minecraft.gameSettings.hideGUI && ((EntitySpaceshipBase) minecraft.thePlayer.ridingEntity).launchPhase < EnumLaunchPhase.LAUNCHED.ordinal()) {
            OverlayLaunchCountdown.renderCountdownOverlay();
        }
        if (player.worldObj.provider instanceof IGalacticraftWorldProvider && OxygenUtil.shouldDisplayTankGui(minecraft.currentScreen) && OxygenUtil.noAtmosphericCombustion(player.worldObj.provider) && !playerBaseClient.isSpectator() && !minecraft.gameSettings.showDebugInfo) {
            int var6 = (TickHandlerClient.airRemaining - 90) * -1;
            if (TickHandlerClient.airRemaining <= 0) {
                var6 = 90;
            }
            int var7 = (TickHandlerClient.airRemaining2 - 90) * -1;
            if (TickHandlerClient.airRemaining2 <= 0) {
                var7 = 90;
            }
            int thermalLevel = stats.getThermalLevel() + 22;
            OverlayOxygenTanks.renderOxygenTankIndicator(thermalLevel, var6, var7, !ConfigManagerCore.oxygenIndicatorLeft, !ConfigManagerCore.oxygenIndicatorBottom, Math.abs(thermalLevel - 22) >= 10 && !stats.isThermalLevelNormalising());
        }
        if (playerBaseClient != null && player.worldObj.provider instanceof IGalacticraftWorldProvider && !stats.isOxygenSetupValid() && OxygenUtil.noAtmosphericCombustion(player.worldObj.provider) && minecraft.currentScreen == null && !minecraft.gameSettings.hideGUI && !playerBaseClient.capabilities.isCreativeMode && !playerBaseClient.isSpectator()) {
            OverlayOxygenWarning.renderOxygenWarningOverlay();
        }
    }
}
Also used : EntitySpaceshipBase(micdoodle8.mods.galacticraft.api.prefab.entity.EntitySpaceshipBase) IGalacticraftWorldProvider(micdoodle8.mods.galacticraft.api.world.IGalacticraftWorldProvider) GCPlayerStatsClient(micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient) GuiIngameMenu(net.minecraft.client.gui.GuiIngameMenu) GuiNewSpaceRace(micdoodle8.mods.galacticraft.core.client.gui.screen.GuiNewSpaceRace) EntityAutoRocket(micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket) EntityPlayerSP(net.minecraft.client.entity.EntityPlayerSP) Minecraft(net.minecraft.client.Minecraft) Footprint(micdoodle8.mods.galacticraft.core.wrappers.Footprint) EntityLander(micdoodle8.mods.galacticraft.core.entities.EntityLander) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Aggregations

GCPlayerStatsClient (micdoodle8.mods.galacticraft.core.entities.player.GCPlayerStatsClient)9 EntityPlayerSP (net.minecraft.client.entity.EntityPlayerSP)9 IZeroGDimension (micdoodle8.mods.galacticraft.api.world.IZeroGDimension)6 Entity (net.minecraft.entity.Entity)6 SideOnly (net.minecraftforge.fml.relauncher.SideOnly)6 ICameraZoomEntity (micdoodle8.mods.galacticraft.api.entity.ICameraZoomEntity)4 ISchematicPage (micdoodle8.mods.galacticraft.api.recipe.ISchematicPage)4 BlockVec3 (micdoodle8.mods.galacticraft.api.vector.BlockVec3)3 Vector3 (micdoodle8.mods.galacticraft.api.vector.Vector3)3 IBlockState (net.minecraft.block.state.IBlockState)3 TileEntity (net.minecraft.tileentity.TileEntity)3 EntityAutoRocket (micdoodle8.mods.galacticraft.api.prefab.entity.EntityAutoRocket)2 EntitySpaceshipBase (micdoodle8.mods.galacticraft.api.prefab.entity.EntitySpaceshipBase)2 GuiCelestialSelection (micdoodle8.mods.galacticraft.core.client.gui.screen.GuiCelestialSelection)2 GuiNewSpaceRace (micdoodle8.mods.galacticraft.core.client.gui.screen.GuiNewSpaceRace)2 EntityBuggy (micdoodle8.mods.galacticraft.core.entities.EntityBuggy)2 Footprint (micdoodle8.mods.galacticraft.core.wrappers.Footprint)2 PlayerGearData (micdoodle8.mods.galacticraft.core.wrappers.PlayerGearData)2 Minecraft (net.minecraft.client.Minecraft)2 GameProfile (com.mojang.authlib.GameProfile)1