/*
* Project Beknyou
* Copyright (c) 2010-2011 Saint Paul College, All Rights Reserved
* Redistributions in source code form must reproduce the above
* Copyright and this condition.
* The contents of this file are subject to the GNU General Public
* License, Version 2 (the "License"); you may not use this file
* except in compliance with the License. A copy of the License is
* available at http://www.opensource.org/licenses/gpl-license.php.
*/
package com.benkyou.common;
import com.jme3.asset.AssetManager;
import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.bullet.collision.shapes.CapsuleCollisionShape;
import com.jme3.bullet.control.CharacterControl;
import com.jme3.scene.Geometry;
/**
*
* @author Austin Allman
*/
public class Player extends Node {
private Avatar avatarInfo;
private Node avatar;
private AssetManager mgr;
private String name;
private CharacterControl character_phys;
private CapsuleCollisionShape capsuleShape;
private boolean attached;
private boolean physicsSetup;
private Vector3f moveDirection;
private String uuid;
private int id;
private boolean atachementUpdate;
public static final Vector3f spawnLocation = new Vector3f(10.0f, 50.0f, 10.0f);
private boolean markedForDeletion;
public Player(String name, int id, String uuid) {
this.name = name;
this.id = id;
this.uuid = uuid;
}
public Vector3f getPosition() {
return avatar.getWorldTranslation();
}
public Spatial getAvatar() {
return avatar;
}
public String getName() {
return name;
}
public Player setupCharacterPhysics() {
capsuleShape = new CapsuleCollisionShape(3f, 4f);
character_phys = new CharacterControl(capsuleShape, 0.05f);
character_phys.setApplyPhysicsLocal(true);
this.addControl(character_phys);
// avatar.addControl(character_phys);
return this;
}
public CharacterControl getCharacterPhysics() {
return character_phys;
}
public String toString() {
return name;
}
Geometry cube_translucent;
/*public void test(){
Box boxshape3 = new Box(Vector3f.ZERO, 3f,1f,3f);
cube_translucent = new Geometry("translucent cube", boxshape3);
Material mat_tt = new Material(gameClient.getAssetManager(), "Common/MatDefs/Misc/Unshaded.j3md");
Texture2D tex = new Texture2D(500,500,Format.RGB8);
mat_tt.setTexture("ColorMap", tex);
tex.setImage(new TextImageGenerator(name).getTextImage());
mat_tt.getAdditionalRenderState().setBlendMode(BlendMode.Alpha);
cube_translucent.setMaterial(mat_tt);
attachChild(cube_translucent);
cube_translucent.setLocalTranslation(10f, 10f, -30f);
}*/
public String getUUID() {
return uuid;
}
public boolean isAttached() {
return attached;
}
public void setAttached(boolean attached) {
this.attached = attached;
}
public boolean isPhysicsSetup() {
return physicsSetup;
}
public void setPhysicsSetup(boolean physicsSetup) {
this.physicsSetup = physicsSetup;
}
public Vector3f getWalkDirection() {
return moveDirection;
}
public void setWalkDirection(float x, float y, float z) {
moveDirection = new Vector3f(x, y, z);
}
public int getID() {
return id;
}
public boolean isAtachementUpdate() {
return atachementUpdate;
}
public void setAtachementUpdate(Boolean bol) {
atachementUpdate = bol;
}
public void markedForDeletion() {
markedForDeletion = true;
}
public void setMarkedForDeletion(boolean markedForDeletion){
this.markedForDeletion = markedForDeletion;
}
public boolean isMarkedForDeletion() {
return markedForDeletion;
}
}