Skip to content

Commit

Permalink
Test classes: code cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
capdevon committed Mar 7, 2024
1 parent f861ae7 commit ca11d2e
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 428 deletions.
90 changes: 3 additions & 87 deletions src/main/java/com/capdevon/demo/Test_AnimControllerLayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.capdevon.anim.fsm.AnimatorState;
import com.capdevon.anim.fsm.AnimatorStateMachine;
import com.capdevon.anim.fsm.AnimatorStateTransition;
import com.capdevon.demo.util.DefaultSceneAppState;
import com.capdevon.engine.FRotator;
import com.capdevon.engine.SimpleAppState;
import com.capdevon.physx.TogglePhysicsDebugState;
Expand All @@ -21,10 +22,7 @@
import com.jme3.app.SimpleApplication;
import com.jme3.bullet.BulletAppState;
import com.jme3.bullet.collision.PhysicsCollisionObject;
import com.jme3.bullet.collision.shapes.CollisionShape;
import com.jme3.bullet.control.BetterCharacterControl;
import com.jme3.bullet.control.RigidBodyControl;
import com.jme3.bullet.util.CollisionShapeFactory;
import com.jme3.input.ChaseCamera;
import com.jme3.input.KeyInput;
import com.jme3.input.MouseInput;
Expand All @@ -33,31 +31,19 @@
import com.jme3.input.controls.KeyTrigger;
import com.jme3.input.controls.MouseButtonTrigger;
import com.jme3.input.controls.Trigger;
import com.jme3.light.AmbientLight;
import com.jme3.light.DirectionalLight;
import com.jme3.light.PointLight;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.FastMath;
import com.jme3.math.Quaternion;
import com.jme3.math.Vector2f;
import com.jme3.math.Vector3f;
import com.jme3.post.FilterPostProcessor;
import com.jme3.renderer.Camera;
import com.jme3.renderer.RenderManager;
import com.jme3.renderer.ViewPort;
import com.jme3.renderer.queue.RenderQueue;
import com.jme3.renderer.queue.RenderQueue.ShadowMode;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.scene.control.AbstractControl;
import com.jme3.scene.control.LightControl;
import com.jme3.scene.shape.Box;
import com.jme3.shadow.DirectionalLightShadowFilter;
import com.jme3.system.AppSettings;
import com.jme3.texture.Texture;
import com.jme3.util.SkyFactory;

/**
*
Expand Down Expand Up @@ -88,13 +74,10 @@ public static void main(String[] args) {
public void simpleInitApp() {

initPhysics();
createFloor();
setupPlayer();
setupChaseCamera();
setupSky();
setupLights();

stateManager.attach(new TogglePhysicsDebugState());
stateManager.attach(new DefaultSceneAppState());
stateManager.attach(new PlayerInputAppState());
}

Expand All @@ -104,56 +87,7 @@ public void simpleInitApp() {
public void initPhysics() {
physics = new BulletAppState();
stateManager.attach(physics);
}

/**
* An ambient light and a directional sun light
*/
private void setupLights() {
DirectionalLight sun = new DirectionalLight();
sun.setDirection(new Vector3f(-0.2f, -1, -0.3f).normalizeLocal());
rootNode.addLight(sun);

AmbientLight ambient = new AmbientLight();
ambient.setColor(new ColorRGBA(0.25f, 0.25f, 0.25f, 1));
rootNode.addLight(ambient);

FilterPostProcessor fpp = new FilterPostProcessor(assetManager);
viewPort.addProcessor(fpp);

DirectionalLightShadowFilter shadowFilter = new DirectionalLightShadowFilter(assetManager, 2_048, 3);
shadowFilter.setLight(sun);
shadowFilter.setShadowIntensity(0.4f);
shadowFilter.setShadowZExtend(256);
fpp.addFilter(shadowFilter);
}

/**
* a sky as background
*/
private void setupSky() {
Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", SkyFactory.EnvMapType.CubeMap);
sky.setShadowMode(RenderQueue.ShadowMode.Off);
rootNode.attachChild(sky);
}

private void createFloor() {
rootNode.setShadowMode(ShadowMode.CastAndReceive);

Box box = new Box(20, .1f, 20);
box.scaleTextureCoordinates(new Vector2f(20, 20));
Geometry floorGeo = new Geometry("Floor.GeoMesh", box);
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
Texture tex = assetManager.loadTexture("Textures/white_grid.jpg");
tex.setWrap(Texture.WrapMode.Repeat);
mat.setTexture("ColorMap", tex);
floorGeo.setMaterial(mat);
rootNode.attachChild(floorGeo);

CollisionShape collShape = CollisionShapeFactory.createMeshShape(floorGeo);
RigidBodyControl rBody = new RigidBodyControl(collShape, 0f);
floorGeo.addControl(rBody);
physics.getPhysicsSpace().add(rBody);
stateManager.attach(new TogglePhysicsDebugState());
}

private void setupPlayer() {
Expand Down Expand Up @@ -245,24 +179,6 @@ private void setupChaseCamera() {
chaseCam.setDefaultDistance(chaseCam.getMinDistance());
}

private interface AnimDefs {

final String MODEL = "Models/Rifle/rifle.glb";
final String RifleIdle = "RifleIdle";
final String RifleWalk = "RifleWalk";
final String RifleRun = "RifleRun";
final String WalkWithRifle = "WalkWithRifle";
final String ThrowGrenade = "ThrowGrenade";
final String Reloading = "Reloading";
final String RifleAimingIdle = "RifleAimingIdle";
final String FiringRifleSingle = "FiringRifleSingle";
final String FiringRifleAuto = "FiringRifleAuto";
final String DeathFromRight = "DeathFromRight";
final String DeathFromHeadshot = "DeathFromHeadshot";
final String TPose = "TPose";

}

private class PlayerMovementControl extends AbstractControl implements ActionListener, AnalogListener {

private float moveSpeed = 3.6f;
Expand Down
95 changes: 4 additions & 91 deletions src/main/java/com/capdevon/demo/Test_AnimStateController.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,15 @@
import com.capdevon.anim.fsm.AnimatorState;
import com.capdevon.anim.fsm.AnimatorStateMachine;
import com.capdevon.anim.fsm.AnimatorStateTransition;
import com.capdevon.demo.util.DefaultSceneAppState;
import com.capdevon.engine.SimpleAppState;
import com.capdevon.physx.TogglePhysicsDebugState;
import com.jme3.anim.AnimComposer;
import com.jme3.app.Application;
import com.jme3.app.FlyCamAppState;
import com.jme3.app.SimpleApplication;
import com.jme3.bullet.BulletAppState;
import com.jme3.bullet.collision.shapes.CollisionShape;
import com.jme3.bullet.control.BetterCharacterControl;
import com.jme3.bullet.control.RigidBodyControl;
import com.jme3.bullet.util.CollisionShapeFactory;
import com.jme3.input.ChaseCamera;
import com.jme3.input.KeyInput;
import com.jme3.input.MouseInput;
Expand All @@ -27,30 +25,18 @@
import com.jme3.input.controls.KeyTrigger;
import com.jme3.input.controls.MouseButtonTrigger;
import com.jme3.input.controls.Trigger;
import com.jme3.light.AmbientLight;
import com.jme3.light.DirectionalLight;
import com.jme3.light.PointLight;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.FastMath;
import com.jme3.math.Vector2f;
import com.jme3.math.Vector3f;
import com.jme3.post.FilterPostProcessor;
import com.jme3.renderer.Camera;
import com.jme3.renderer.RenderManager;
import com.jme3.renderer.ViewPort;
import com.jme3.renderer.queue.RenderQueue;
import com.jme3.renderer.queue.RenderQueue.ShadowMode;
import com.jme3.scene.Geometry;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;
import com.jme3.scene.control.AbstractControl;
import com.jme3.scene.control.LightControl;
import com.jme3.scene.shape.Box;
import com.jme3.shadow.DirectionalLightShadowFilter;
import com.jme3.system.AppSettings;
import com.jme3.texture.Texture;
import com.jme3.util.SkyFactory;

/**
*
Expand All @@ -65,12 +51,9 @@ public class Test_AnimStateController extends SimpleApplication {
public static void main(String[] args) {
Test_AnimStateController app = new Test_AnimStateController();
AppSettings settings = new AppSettings(true);
settings.setResolution(1024, 768);
settings.setFrameRate(200);
settings.setResolution(1280, 720);
settings.setSamples(4);
settings.setBitsPerPixel(32);
settings.setGammaCorrection(true);
settings.setVSync(false);
app.setSettings(settings);
app.setShowSettings(false);
app.setPauseOnLostFocus(false);
Expand All @@ -84,13 +67,10 @@ public static void main(String[] args) {
public void simpleInitApp() {

initPhysics();
createFloor();
setupPlayer();
setupChaseCamera();
setupSky();
setupLights();

stateManager.attach(new TogglePhysicsDebugState());
stateManager.attach(new DefaultSceneAppState());
stateManager.attach(new TPSInputAppState());
}

Expand All @@ -100,58 +80,9 @@ public void simpleInitApp() {
public void initPhysics() {
physics = new BulletAppState();
stateManager.attach(physics);
stateManager.attach(new TogglePhysicsDebugState());
}

/**
* An ambient light and a directional sun light
*/
private void setupLights() {
DirectionalLight sun = new DirectionalLight();
sun.setDirection(new Vector3f(-0.2f, -1, -0.3f).normalizeLocal());
rootNode.addLight(sun);

AmbientLight ambient = new AmbientLight();
ambient.setColor(new ColorRGBA(0.25f, 0.25f, 0.25f, 1));
rootNode.addLight(ambient);

FilterPostProcessor fpp = new FilterPostProcessor(assetManager);
viewPort.addProcessor(fpp);

DirectionalLightShadowFilter shadowFilter = new DirectionalLightShadowFilter(assetManager, 2_048, 3);
shadowFilter.setLight(sun);
shadowFilter.setShadowIntensity(0.4f);
shadowFilter.setShadowZExtend(256);
fpp.addFilter(shadowFilter);
}

/**
* a sky as background
*/
private void setupSky() {
Spatial sky = SkyFactory.createSky(assetManager, "Scenes/Beach/FullskiesSunset0068.dds", SkyFactory.EnvMapType.CubeMap);
sky.setShadowMode(RenderQueue.ShadowMode.Off);
rootNode.attachChild(sky);
}

private void createFloor() {
rootNode.setShadowMode(ShadowMode.CastAndReceive);

Box box = new Box(20, .1f, 20);
box.scaleTextureCoordinates(new Vector2f(20, 20));
Geometry floorGeo = new Geometry("Floor.GeoMesh", box);
Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
Texture tex = assetManager.loadTexture("Textures/white_grid.jpg");
tex.setWrap(Texture.WrapMode.Repeat);
mat.setTexture("ColorMap", tex);
floorGeo.setMaterial(mat);
rootNode.attachChild(floorGeo);

CollisionShape collShape = CollisionShapeFactory.createMeshShape(floorGeo);
RigidBodyControl rBody = new RigidBodyControl(collShape, 0f);
floorGeo.addControl(rBody);
physics.getPhysicsSpace().add(rBody);
}

private void setupPlayer() {
// setup Player model
player = (Node) assetManager.loadModel(AnimDefs.MODEL);
Expand Down Expand Up @@ -210,24 +141,6 @@ private void setupChaseCamera() {
chaseCam.setDefaultDistance(chaseCam.getMinDistance());
}

private interface AnimDefs {

final String MODEL = "Models/Rifle/rifle.glb";
final String RifleIdle = "RifleIdle";
final String RifleWalk = "RifleWalk";
final String RifleRun = "RifleRun";
final String WalkWithRifle = "WalkWithRifle";
final String ThrowGrenade = "ThrowGrenade";
final String Reloading = "Reloading";
final String RifleAimingIdle = "RifleAimingIdle";
final String FiringRifleSingle = "FiringRifleSingle";
final String FiringRifleAuto = "FiringRifleAuto";
final String DeathFromRight = "DeathFromRight";
final String DeathFromHeadshot = "DeathFromHeadshot";
final String TPose = "TPose";

}

private class PlayerMovementControl extends AbstractControl implements ActionListener, AnalogListener {

private float moveSpeed = 4.5f;
Expand Down
Loading

0 comments on commit ca11d2e

Please sign in to comment.