1 module scene;
2 
3 import dagon;
4 
5 class MyScene: Scene
6 {
7     Game game;
8 
9     this(Game game)
10     {
11         super(game);
12         this.game = game;
13     }
14 
15     override void beforeLoad()
16     {
17         // Create assets
18         // aModel = addOBJAsset("assets/model.obj");
19         // aTexture = addTextureAsset("assets/texture.png");
20     }
21     
22     override void onLoad(Time t, float progress)
23     {
24     }
25 
26     override void afterLoad()
27     {
28         auto camera = addCamera();
29         auto freeview = New!FreeviewComponent(eventManager, camera);
30         freeview.zoom(10);
31         freeview.pitch(-30.0f);
32         freeview.turn(10.0f);
33         game.renderer.activeCamera = camera;
34 
35         auto sun = addLight(LightType.Sun);
36         sun.shadowEnabled = true;
37         sun.energy = 10.0f;
38         sun.pitch(-45.0f);
39         
40         auto matRed = addMaterial();
41         matRed.diffuse = Color4f(1.0, 0.2, 0.2, 1.0);
42 
43         auto eCube = addEntity();
44         eCube.drawable = New!ShapeBox(Vector3f(1, 1, 1), assetManager);
45         eCube.material = matRed;
46         eCube.position = Vector3f(0, 1, 0);
47         
48         auto ePlane = addEntity();
49         ePlane.drawable = New!ShapePlane(10, 10, 1, assetManager);
50         
51         game.deferredRenderer.ssaoEnabled = true;
52         game.deferredRenderer.ssaoPower = 6.0;
53         game.postProcessingRenderer.fxaaEnabled = true;
54     }
55     
56     override void onUpdate(Time t) { }
57     override void onKeyDown(int key) { }
58     override void onKeyUp(int key) { }
59     override void onMouseButtonDown(int button) { }
60     override void onMouseButtonUp(int button) { }
61 }