Package org.spoutcraft.client.player

Source Code of org.spoutcraft.client.player.ClientPlayer

/*
* This file is part of Spoutcraft.
*
* Copyright (c) 2011 SpoutcraftDev <http://spoutcraft.org/>
* Spoutcraft is licensed under the GNU Lesser General Public License.
*
* Spoutcraft is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Spoutcraft is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.spoutcraft.client.player;

import org.lwjgl.input.Keyboard;

import net.minecraft.src.ChunkCoordinates;
import net.minecraft.src.EntityPlayerSP;

import org.spoutcraft.api.GameMode;
import org.spoutcraft.api.gui.InGameHUD;
import org.spoutcraft.api.gui.Screen;
import org.spoutcraft.api.inventory.ItemStack;
import org.spoutcraft.api.player.RenderDistance;
import org.spoutcraft.api.util.FixedLocation;
import org.spoutcraft.api.util.Location;
import org.spoutcraft.api.util.MutableLocation;
import org.spoutcraft.client.SpoutClient;
import org.spoutcraft.client.gui.InGameScreen;

public class ClientPlayer extends SpoutPlayer {
  private static ClientPlayer instance = null;
  private RenderDistance min, max;
  private InGameScreen mainScreen = new InGameScreen();

  public static ClientPlayer getInstance() {
    if (instance == null) {
      instance = new ClientPlayer(SpoutClient.getHandle().thePlayer);
      instance.setPlayer(SpoutClient.getHandle().thePlayer);
      SpoutClient.getInstance().player = (ClientPlayer) instance;
    }
    return instance;
  }

  private ClientPlayer(EntityPlayerSP entity) {
    super(entity);
    min = RenderDistance.TINY;
    max = RenderDistance.FAR;
  }

  public EntityPlayerSP getHandle() {
    return (EntityPlayerSP)super.getMCPlayer();
  }

  public RenderDistance getMaximumView() {
    return max;
  }

  public RenderDistance getMinimumView() {
    return min;
  }

  public void setMaximumView(RenderDistance distance) {
    max = distance;
  }

  public void setMinimumView(RenderDistance distance) {
    min = distance;
  }

  public RenderDistance getCurrentView() {
    return RenderDistance.getRenderDistanceFromValue(SpoutClient.getHandle().gameSettings.renderDistance);
  }

  public void setCurrentView(RenderDistance view) {
    SpoutClient.getHandle().gameSettings.renderDistance = view.getValue();
  }

  public RenderDistance getNextRenderDistance() {
    int next = getCurrentView().getValue() + (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) ? -1 : 1);
    if (next > min.getValue()) {
      next = max.getValue();
    } else if (next < max.getValue()) {
      next = min.getValue();
    }
    return RenderDistance.getRenderDistanceFromValue(next);
  }

  public InGameHUD getMainScreen() {
    return mainScreen;
  }

  public void resetMainScreen() {
    mainScreen = new InGameScreen();
  }

  public void showAchievement(String title, String message, int id) {
    SpoutClient.getHandle().guiAchievement.queueNotification(title, message, id);
  }

  public void showAchievement(String title, String message, int id, int data, int time) {
    SpoutClient.getHandle().guiAchievement.queueNotification(title, message, id, (short) data, time);
  }

  public FixedLocation getLastClickedLocation() {
    return getHandle().lastClickLocation;
  }

  public void sendMessage(String msg) {
    SpoutClient.getHandle().ingameGUI.getChatGUI().printChatMessage(msg);
  }

  public void setCompassTarget(Location loc) {
    SpoutClient.getHandle().thePlayer.setSpawnChunk(new ChunkCoordinates(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ()), true);
    SpoutClient.getHandle().theWorld.getWorldInfo().setSpawnPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ());
  }

  public Location getCompassTarget() {
    ChunkCoordinates coords = SpoutClient.getHandle().thePlayer.getBedLocation();
    return new MutableLocation(coords.posX, coords.posY, coords.posZ);
  }

  public void sendRawMessage(String message) {
    SpoutClient.getHandle().thePlayer.sendChatMessage(message);
  }

  public void disconnect(String message) {
    SpoutClient.getHandle().theWorld.sendQuittingDisconnectingPacket();
    SpoutClient.getHandle().loadWorld(null);
  }

  public void chat(String msg) {
  }

  public boolean performCommand(String command) {
    // TODO Auto-generated method stub
    return false;
  }

  public boolean isSprinting() {
    return SpoutClient.getHandle().thePlayer.isSprinting();
  }

  public void setSprinting(boolean sprinting) {
    SpoutClient.getHandle().thePlayer.setSprinting(sprinting);
  }

  public int getExperience() {
    // TODO Auto-generated method stub
    return 0;
  }

  public void setExperience(int exp) {
    // TODO Auto-generated method stub

  }

  public int getLevel() {
    // TODO Auto-generated method stub
    return 0;
  }

  public void setLevel(int level) {
    // TODO Auto-generated method stub

  }

  public int getTotalExperience() {
    // TODO Auto-generated method stub
    return 0;
  }

  public void setTotalExperience(int exp) {
    // TODO Auto-generated method stub

  }

  public float getExhaustion() {
    // TODO Auto-generated method stub
    return 0;
  }

  public void setExhaustion(float value) {
    // TODO Auto-generated method stub

  }

  public float getSaturation() {
    // TODO Auto-generated method stub
    return 0;
  }

  public void setSaturation(float value) {
    // TODO Auto-generated method stub

  }

  public int getFoodLevel() {
    // TODO Auto-generated method stub
    return 0;
  }

  public void setFoodLevel(int value) {
    // TODO Auto-generated method stub

  }

  public GameMode getGameMode() {
    // TODO Auto-generated method stub
    return null;
  }

  public void setGameMode(GameMode mode) {
    // TODO Auto-generated method stub

  }

  public Screen getCurrentScreen() {
    if (SpoutClient.getHandle().currentScreen == null) {
      return getMainScreen();
    }
    return SpoutClient.getHandle().currentScreen.getScreen();
  }

  public ItemStack getItemStackOnCursor() {
    ItemStack ret = new ItemStack(0);
    if (SpoutClient.getHandle().thePlayer != null) {
      net.minecraft.src.ItemStack mcStack = SpoutClient.getHandle().thePlayer.inventory.getItemStack();
      if (mcStack != null) {
        ret = new ItemStack(mcStack.itemID, mcStack.stackSize, (short) mcStack.getItemDamage());
      }
    }
    return ret;
  }

  public void setItemStackOnCursor(ItemStack stack) {
    if (SpoutClient.getHandle().thePlayer == null) {
      return;
    }
    if (stack == null || stack.getTypeId() == 0) {
      SpoutClient.getHandle().thePlayer.inventory.setItemStack(null);
    } else {
      net.minecraft.src.ItemStack mcStack = new net.minecraft.src.ItemStack(stack.getTypeId(), stack.getAmount(), stack.getDurability());
      SpoutClient.getHandle().thePlayer.inventory.setItemStack(mcStack);
    }
  }
}
TOP

Related Classes of org.spoutcraft.client.player.ClientPlayer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.