Package com.teamjmonkey.entity

Source Code of com.teamjmonkey.entity.MainCharacter

package com.teamjmonkey.entity;

import com.jme3.bullet.collision.PhysicsCollisionObject;
import com.jme3.bullet.collision.shapes.CapsuleCollisionShape;
import com.jme3.bullet.collision.shapes.CollisionShape;
import com.jme3.bullet.control.CharacterControl;
import com.jme3.bullet.control.GhostControl;
import com.jme3.export.InputCapsule;
import com.jme3.export.JmeExporter;
import com.jme3.export.JmeImporter;
import com.jme3.export.OutputCapsule;
import com.jme3.export.Savable;
import com.jme3.math.Vector3f;
import com.jme3.scene.Node;
import com.teamjmonkey.controls.MonkeyControl;
import java.io.IOException;

public class MainCharacter extends BaseEntity implements Savable {

    private CharacterControl player;
    private GhostControl control;

    public MainCharacter() {
        super();
        spatial = new Node("mainCharacter");
        spatial.setUserData("entity", this);
    }

    @Override
    public CollisionShape getCollisionShape() {
        return new CapsuleCollisionShape(1.5f, 3f, 1);
    }

    @Override
    public void addPhysicsControl() {
        player = new CharacterControl(getCollisionShape(), 0.1f);
        player.setJumpSpeed(20);
        player.setFallSpeed(30);
        player.setGravity(30);
        player.setPhysicsLocation(new Vector3f(0, 10, 0));
        player.setCollisionGroup(PhysicsCollisionObject.COLLISION_GROUP_03);
        player.setCollideWithGroups(PhysicsCollisionObject.COLLISION_GROUP_01 | PhysicsCollisionObject.COLLISION_GROUP_02 | PhysicsCollisionObject.COLLISION_GROUP_04);
        bulletAppState.getPhysicsSpace().add(player);

        spatial.addControl(player);

      //  control = new GhostControl(getCollisionShape());
     //   spatial.addControl(control);
      //  bulletAppState.getPhysicsSpace().add(control);


    }

    public CharacterControl getCharacterControl() {
        return player;
    }

    @Override
    public void addMaterial() {
    }

    @Override
    public void addControl() {
        spatial.addControl(controlManager.getControl(MonkeyControl.SET_TO_CAM));
    }

    @Override
    public void cleanup() {
        spatial.getControl(MonkeyControl.SET_TO_CAM.getClazz()).cleanup();
        bulletAppState.getPhysicsSpace().remove(player);
        spatial.removeControl(player);
        spatial.setUserData("entity", null);
        player = null;
    }

    @Override
    public void finalise() {
        addPhysicsControl();
        addControl();
    }

    @Override
    public void write(JmeExporter e) throws IOException {
        OutputCapsule capsule = e.getCapsule(this);
        capsule.write(this.player, "player", null);
    }

    @Override
    public void read(JmeImporter e) throws IOException {
        InputCapsule capsule = e.getCapsule(this);
        player = (CharacterControl) capsule.readSavable("player", null);
    }
}
TOP

Related Classes of com.teamjmonkey.entity.MainCharacter

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.