Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Empty file.
Binary file added assets/.gradle/7.0/fileChanges/last-build.bin
Binary file not shown.
Binary file added assets/.gradle/7.0/fileHashes/fileHashes.lock
Binary file not shown.
Empty file.
Binary file added assets/.gradle/checksums/checksums.lock
Binary file not shown.
Empty file.
Empty file.
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ dependencies {
implementation "org.jmonkeyengine:jme3-jbullet:$jmeVer"

// Additional Libraries

implementation "org.jmonkeyengine:jme3-testdata:$jmeVer"
implementation 'com.github.stephengold:SkyControl:1.0.3'

// Assets sub-project
runtimeOnly project(':assets')
}
Expand Down
9 changes: 0 additions & 9 deletions src/main/java/com/grandopengame/engine/Main.java

This file was deleted.

104 changes: 0 additions & 104 deletions src/main/java/com/grandopengame/engine/core/MainLoop.java

This file was deleted.

52 changes: 47 additions & 5 deletions src/main/java/com/mygame/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@
import com.jme3.input.KeyInput;
import com.jme3.input.controls.ActionListener;
import com.jme3.input.controls.KeyTrigger;
import com.jme3.light.AmbientLight;
import com.jme3.light.DirectionalLight;
import com.jme3.material.Material;
import com.jme3.math.ColorRGBA;
import com.jme3.math.Vector3f;
import com.jme3.renderer.Camera;
import com.jme3.renderer.RenderManager;
import com.jme3.scene.Geometry;
import com.jme3.scene.shape.Box;
import com.jme3.renderer.ViewPort;
import com.jme3.renderer.queue.RenderQueue;
import com.jme3.shadow.DirectionalLightShadowRenderer;
import com.jme3.shadow.EdgeFilteringMode;
import jme3utilities.sky.SkyControl;
import jme3utilities.sky.StarsOption;
import jme3utilities.sky.SunAndStars;

/**
* This is the Main Class of your Game. You should only do initialization here.
Expand All @@ -43,14 +48,17 @@ public static void main(String[] args) {

@Override
public void simpleInitApp() {
camera = getCamera();

var scene = assetManager.loadModel("Scenes/yivysky-osm.j3o");

var bulletAppState = new BulletAppState();
bulletAppState.setDebugEnabled(true);
stateManager.attach(bulletAppState);

setupLight();

setupSky();

rootNode.attachChild(scene);
var floor = rootNode.getChild("Floor");
var floorControl = new RigidBodyControl(0);
Expand All @@ -68,7 +76,6 @@ public void simpleInitApp() {
bulletAppState.getPhysicsSpace().add(playerControl);

this.getFlyByCamera().setEnabled(false);
camera = getCamera();
var chaseCamera = new ChaseCamera(camera, player, inputManager);

addInputMappings();
Expand All @@ -80,6 +87,41 @@ private void setupLight() {
sun.setColor(ColorRGBA.White);
sun.setDirection(new Vector3f(-.5f,-.5f,-.5f).normalizeLocal());
rootNode.addLight(sun);
rootNode.addLight(new AmbientLight());

rootNode.setShadowMode(RenderQueue.ShadowMode.CastAndReceive);
var shadowRenderer
= new DirectionalLightShadowRenderer(assetManager, 4_096, 4);
ViewPort viewPort = getViewPort();
viewPort.addProcessor(shadowRenderer);
shadowRenderer.setEdgeFilteringMode(EdgeFilteringMode.PCFPOISSON);
shadowRenderer.setLight(sun);
shadowRenderer.setShadowIntensity(0.3f);
shadowRenderer.setShadowZExtend(256f);
shadowRenderer.setShadowZFadeLength(128f);

}

private void setupSky() {
// var sky = SkyFactory.createSky(assetManager,
// "Textures/Sky/Bright/BrightSky.dds",
// SkyFactory.EnvMapType.CubeMap);
//
var sky = new SkyControl(assetManager, camera,
0.5f, StarsOption.TopDome, true);

rootNode.addControl(sky);

sky.setSolarDiameter(0.1f);
sky.setCloudsRate(0.7f);
sky.setCloudiness(0.8f);
sky.setCloudsYOffset(0.4f);

SunAndStars sunAndStars = sky.getSunAndStars();
sunAndStars.setHour(16f); // 4 p.m.
sunAndStars.setObserverLatitude(0.63f); // 36 degrees north

sky.setEnabled(true);
}

private void addInputMappings() {
Expand Down