Add game source, converter pipeline, and web port
This commit is contained in:
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user