151 lines
4.5 KiB
Java
151 lines
4.5 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*
|
|
* Could not load the following classes:
|
|
* com.jme3.animation.AnimChannel
|
|
* com.jme3.animation.AnimControl
|
|
* com.jme3.animation.LoopMode
|
|
* com.jme3.bullet.collision.shapes.CapsuleCollisionShape
|
|
* com.jme3.bullet.collision.shapes.CollisionShape
|
|
* com.jme3.bullet.control.BetterCharacterControl
|
|
* com.jme3.bullet.control.GhostControl
|
|
* com.jme3.math.Vector3f
|
|
* com.jme3.scene.Spatial
|
|
* com.jme3.scene.control.Control
|
|
*/
|
|
package mygame;
|
|
|
|
import com.jme3.animation.AnimChannel;
|
|
import com.jme3.animation.AnimControl;
|
|
import com.jme3.animation.LoopMode;
|
|
import com.jme3.bullet.collision.shapes.CapsuleCollisionShape;
|
|
import com.jme3.bullet.collision.shapes.CollisionShape;
|
|
import com.jme3.bullet.control.BetterCharacterControl;
|
|
import com.jme3.bullet.control.GhostControl;
|
|
import com.jme3.math.Vector3f;
|
|
import com.jme3.scene.Spatial;
|
|
import com.jme3.scene.control.Control;
|
|
import mygame.Character;
|
|
import mygame.Exchange;
|
|
import mygame.Weapon;
|
|
|
|
public class Player
|
|
extends Character {
|
|
public Weapon rightHand;
|
|
public Weapon leftHand;
|
|
public Spatial hat;
|
|
public Spatial model;
|
|
public BetterCharacterControl playerControl;
|
|
public AnimChannel leftHandAnimChannel;
|
|
public AnimControl leftHandAnimControl;
|
|
public AnimChannel rightHandAnimChannel;
|
|
public AnimControl rightHandAnimControl;
|
|
public Vector3f pt;
|
|
public GhostControl collision;
|
|
public float health = 100.0f;
|
|
public static float MAX_HEALTH = 100.0f;
|
|
|
|
public Player(String name) {
|
|
super(name);
|
|
}
|
|
|
|
public Spatial getRightHand() {
|
|
return this.rightHand;
|
|
}
|
|
|
|
public void setRightHand(Weapon rightHand) {
|
|
this.rightHand = rightHand;
|
|
this.setupRightHand();
|
|
}
|
|
|
|
public Spatial getLeftHand() {
|
|
return this.leftHand;
|
|
}
|
|
|
|
public void setLeftHand(Weapon leftHand) {
|
|
this.leftHand = leftHand;
|
|
this.setupLeftHand();
|
|
}
|
|
|
|
public Spatial getHat() {
|
|
return this.hat;
|
|
}
|
|
|
|
public void setHat(Spatial hat) {
|
|
this.hat = hat;
|
|
this.setupHat();
|
|
}
|
|
|
|
public Spatial getModel() {
|
|
return this.model;
|
|
}
|
|
|
|
public void setModel(Spatial model) {
|
|
this.model = model;
|
|
this.setupModel();
|
|
this.setupControl();
|
|
this.setupModelControl();
|
|
this.wholeBody.attachChild(this.model);
|
|
}
|
|
|
|
public void switchHands() {
|
|
this.wholeBody.detachChild((Spatial)this.leftHand);
|
|
this.wholeBody.detachChild((Spatial)this.rightHand);
|
|
Weapon temp = this.rightHand;
|
|
this.setRightHand(this.leftHand);
|
|
this.setLeftHand(temp);
|
|
}
|
|
|
|
public void die() {
|
|
this.modelAnimChannel.setAnim("die");
|
|
this.modelAnimChannel.setLoopMode(LoopMode.DontLoop);
|
|
this.wholeBody.setLocalTranslation(0.0f, 0.5f, 0.0f);
|
|
this.wholeBody.detachChild(this.hat);
|
|
this.wholeBody.detachChild((Spatial)this.rightHand);
|
|
this.wholeBody.detachChild((Spatial)this.leftHand);
|
|
}
|
|
|
|
private void setupLeftHand() {
|
|
this.leftHand.setLocalTranslation(0.4f, 0.3f, 0.4f);
|
|
this.leftHand.setLocalScale(0.35f);
|
|
this.wholeBody.attachChild((Spatial)this.leftHand);
|
|
}
|
|
|
|
private void setupRightHand() {
|
|
this.rightHand.setLocalTranslation(-0.4f, 0.3f, 0.4f);
|
|
this.rightHand.setLocalScale(0.35f);
|
|
this.wholeBody.attachChild((Spatial)this.rightHand);
|
|
}
|
|
|
|
private void setupHat() {
|
|
this.hat.setLocalScale(0.35f);
|
|
this.hat.setLocalTranslation(0.0f, 0.9f, -0.2f);
|
|
this.hat.rotate(-0.4f, 0.0f, 0.0f);
|
|
this.wholeBody.attachChild(this.hat);
|
|
}
|
|
|
|
public void setupModel() {
|
|
this.model.setLocalScale(0.5f);
|
|
this.wholeBody.attachChild(this.model);
|
|
}
|
|
|
|
private void setupControl() {
|
|
this.playerControl = new BetterCharacterControl(0.5f, 1.0f, 8.0f);
|
|
this.addControl((Control)this.playerControl);
|
|
this.collision = new GhostControl((CollisionShape)new CapsuleCollisionShape(1.0f, 0.5f));
|
|
this.collision.addCollideWithGroup(2);
|
|
this.addControl((Control)this.collision);
|
|
Exchange.bulletAppState.getPhysicsSpace().add((Object)this.collision);
|
|
}
|
|
|
|
public void setupModelControl() {
|
|
this.modelAnimControl = (AnimControl)this.model.getControl(AnimControl.class);
|
|
this.modelAnimChannel = this.modelAnimControl.createChannel();
|
|
this.modelAnimChannel.setAnim("stand");
|
|
}
|
|
|
|
public void heal(float amount) {
|
|
this.health = amount + this.health > MAX_HEALTH ? MAX_HEALTH : (this.health += amount);
|
|
}
|
|
}
|