@SubscribeEvent
public void onClientTick(ClientTickEvent event)
{
final Minecraft minecraft = FMLClientHandler.instance().getClient();
final WorldClient world = minecraft.theWorld;
final EntityClientPlayerMP player = minecraft.thePlayer;
if (event.phase == Phase.START)
{
if (TickHandlerClient.tickCount >= Long.MAX_VALUE)
{
TickHandlerClient.tickCount = 0;
}
TickHandlerClient.tickCount++;
if (TickHandlerClient.tickCount % 20 == 0)
{
if (player != null && player.inventory.armorItemInSlot(3) != null && player.inventory.armorItemInSlot(3).getItem() instanceof ItemSensorGlasses)
{
ClientProxyCore.valueableBlocks.clear();
for (int i = -4; i < 5; i++)
{
for (int j = -4; j < 5; j++)
{
for (int k = -4; k < 5; k++)
{
int x = MathHelper.floor_double(player.posX + i);
int y = MathHelper.floor_double(player.posY + j);
int z = MathHelper.floor_double(player.posZ + k);
final Block block = player.worldObj.getBlock(x, y, z);
if (block.getMaterial() != Material.air)
{
int metadata = world.getBlockMetadata(x, y, z);
boolean isDetectable = false;
for (BlockMetaList blockMetaList : ClientProxyCore.detectableBlocks)
{
if (blockMetaList.getBlock() == block && blockMetaList.getMetaList().contains(metadata))
{
isDetectable = true;
break;
}
}
if (isDetectable)
{
if (!this.alreadyContainsBlock(x, y, z))
{
ClientProxyCore.valueableBlocks.add(new Vector3(x, y, z));
}
}
else if (block instanceof IDetectableResource && ((IDetectableResource) block).isValueable(metadata))
{
if (!this.alreadyContainsBlock(x, y, z))
{
ClientProxyCore.valueableBlocks.add(new Vector3(x, y, z));
}
List<Integer> metaList = null;
for (BlockMetaList blockMetaList : ClientProxyCore.detectableBlocks)
{
if (blockMetaList.getBlock() == block)
{
metaList = blockMetaList.getMetaList();
if (!metaList.contains(metadata))
{
metaList.add(metadata);
}
break;
}
}
if (metaList == null)
{
metaList = Lists.newArrayList();
metaList.add(metadata);
ClientProxyCore.detectableBlocks.add(new BlockMetaList(block, metaList));
}
}
}
}
}
}
}
}
if (minecraft.currentScreen != null && minecraft.currentScreen instanceof GuiMainMenu)
{
ClientProxyCore.playerItemData.clear();
if (TickHandlerClient.missingRequirementThread == null)
{
TickHandlerClient.missingRequirementThread = new ThreadRequirementMissing(FMLCommonHandler.instance().getEffectiveSide());
TickHandlerClient.missingRequirementThread.start();
}
}
if (world != null && TickHandlerClient.spaceRaceGuiScheduled && minecraft.currentScreen == null)
{
player.openGui(GalacticraftCore.instance, GuiIdsCore.SPACE_RACE_START, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ);
TickHandlerClient.spaceRaceGuiScheduled = false;
}
if (world != null && TickHandlerClient.checkedVersion)
{
ThreadVersionCheck.startCheck();
TickHandlerClient.checkedVersion = false;
}
if (player != null && player.ridingEntity != null && player.ridingEntity instanceof EntitySpaceshipBase)
{
GalacticraftCore.packetPipeline.sendToServer(new PacketRotateRocket(player.ridingEntity));
}
if (world != null)
{
if (world.provider instanceof WorldProviderSurface)
{
if (world.provider.getSkyRenderer() == null && player.ridingEntity != null && player.ridingEntity.posY >= 200)
{
world.provider.setSkyRenderer(new SkyProviderOverworld());
}
else if (world.provider.getSkyRenderer() != null && world.provider.getSkyRenderer() instanceof SkyProviderOverworld && (player.ridingEntity == null || player.ridingEntity.posY < 200))
{
world.provider.setSkyRenderer(null);
}
}
else if (world.provider instanceof WorldProviderOrbit)
{
if (world.provider.getSkyRenderer() == null)
{
world.provider.setSkyRenderer(new SkyProviderOrbit(new ResourceLocation(GalacticraftCore.ASSET_PREFIX, "textures/gui/celestialbodies/earth.png"), true, true));
((SkyProviderOrbit) world.provider.getSkyRenderer()).spinDeltaPerTick = ((WorldProviderOrbit) world.provider).getSpinRate();
GCPlayerStatsClient.get(player).inFreefallFirstCheck = false;
}
if (world.provider.getCloudRenderer() == null)
{
world.provider.setCloudRenderer(new CloudRenderer());
}
}
else if (world.provider instanceof WorldProviderMoon)
{
if (world.provider.getSkyRenderer() == null)
{
world.provider.setSkyRenderer(new SkyProviderMoon());
}
if (world.provider.getCloudRenderer() == null)
{
world.provider.setCloudRenderer(new CloudRenderer());
}
}
}
if (player != null && player.ridingEntity != null && player.ridingEntity instanceof EntitySpaceshipBase)
{
final EntitySpaceshipBase ship = (EntitySpaceshipBase) player.ridingEntity;
boolean hasChanged = false;
if (minecraft.gameSettings.keyBindLeft.getIsKeyPressed())
{
ship.turnYaw(-1.0F);
hasChanged = true;
}
if (minecraft.gameSettings.keyBindRight.getIsKeyPressed())
{
ship.turnYaw(1.0F);
hasChanged = true;
}
if (minecraft.gameSettings.keyBindForward.getIsKeyPressed())
{
if (ship.getLaunched())
{
ship.turnPitch(-0.7F);
hasChanged = true;
}
}
if (minecraft.gameSettings.keyBindBack.getIsKeyPressed())
{
if (ship.getLaunched())
{
ship.turnPitch(0.7F);
hasChanged = true;
}
}
if (hasChanged)
{
GalacticraftCore.packetPipeline.sendToServer(new PacketRotateRocket(ship));
}
}
if (world != null)
{
List entityList = world.loadedEntityList;
for (Object e : entityList)
{
if (e instanceof EntityAutoRocket)
{
if (((EntityAutoRocket) e).rocketSoundUpdater == null)
{
EntityAutoRocket eship = (EntityAutoRocket) e;
eship.rocketSoundUpdater = new SoundUpdaterRocket(FMLClientHandler.instance().getClient().thePlayer, eship);
FMLClientHandler.instance().getClient().getSoundHandler().playSound((ISound) eship.rocketSoundUpdater);
}
}
}
}
if (FMLClientHandler.instance().getClient().currentScreen instanceof GuiCelestialSelection)
{
player.motionY = 0;
}
if (world != null && world.provider instanceof IGalacticraftWorldProvider)
{
world.setRainStrength(0.0F);
}
if (!KeyHandlerClient.spaceKey.getIsKeyPressed())
{
ClientProxyCore.lastSpacebarDown = false;