예제 #1
0
        private void LoadTestScene(BasicCamera c)
        {
            camera = c;

            GameEngine.Instance.CurrentScene.Add(camera);
            GameEngine.Instance.CurrentScene.SetCamera(camera);

            DebugConsoleComponent dbg = DebugConsoleComponent.CreateConsole().GetComponent <DebugConsoleComponent>();

            dbg.AddCommand("reload", cmd_ReLoadScene);
            dbg.AddCommand("mov", cmd_Move);
            dbg.AddCommand("rot", cmd_Rotate);
            GameEngine.Instance.CurrentScene.Add(dbg.Owner);

            WFCMapGenerator preview = WFCMapGenerator
                                      .CreateWFCPreview(Vector3.Zero, "assets/WFCTiles", false,
                                                        (input) => CreateMap(input, DefaultFilepaths.DefaultLitShader))
                                      .GetComponent <WFCMapGenerator>();

            preview.Height = 256;
            preview.Width  = 32;

            int tries = 1;

            Add(preview.Owner);
            preview.Generate(1);

            while (!preview.Success)
            {
                Logger.Log(DebugChannel.Log | DebugChannel.Game, "Generating map Try " + tries, 8);
                preview.Generate(1);
                tries++;
            }
        }
예제 #2
0
        /// <summary>
        /// Overridden Awake method for setting up the Interpreter and add the commands to the console
        /// </summary>
        protected override void Awake()
        {
            Tex                 = TextureLoader.ParameterToTexture(width, height, "FLGeneratorMainTexture");
            SpecularTex         = TextureLoader.ParameterToTexture(width, height, "FLGeneratorSpecularTexture");
            SpecularTex.TexType = TextureType.Specular;
            for (int i = 0; i < previews.Count; i++)
            {
                previews[i].Textures[0] = Tex;
                previews[i].Textures[1] = SpecularTex;
            }


            if (multiThread)
            {
                flRunner = new FlMultiThreadScriptRunner(null, DataVectorTypes.Uchar1, "assets/kernel/");
            }
            else
            {
                flRunner = new FLScriptRunner(CLAPI.MainThread, DataVectorTypes.Uchar1, "assets/kernel/");
            }


            DebugConsoleComponent console =
                Owner.Scene.GetChildWithName("Console").GetComponent <DebugConsoleComponent>();

            console?.AddCommand("runfl", cmd_RunFL);
            console?.AddCommand("r", cmd_FLReset);
        }
예제 #3
0
        protected override void Awake()
        {
            base.Awake();
            DebugConsoleComponent comp = Owner.Scene.GetChildWithName("Console")
                                         .GetComponent <DebugConsoleComponent>();


            comp?.AddCommand("rain", cmd_SpawnColliders);
            comp?.AddCommand("gravity", cmd_SetGravity);
            comp?.AddCommand("reset", cmd_ResetCollider);
        }
예제 #4
0
        protected override void Awake()
        {
            //Physics.AddBoxStatic(System.Numerics.Vector3.UnitY * -4, new System.Numerics.Vector3(50, 10, 50), 1, 3);

            base.Awake();
            DebugConsoleComponent comp = Owner.Scene.GetChildWithName("Console")
                                         .GetComponent <DebugConsoleComponent>();


            comp?.AddCommand("rain", cmd_SpawnColliders);
            comp?.AddCommand("gravity", cmd_SetGravity);
            comp?.AddCommand("reset", cmd_ResetCollider);
        }
예제 #5
0
        protected override void Awake()
        {
            enemiesAlive++;
            target = Owner.Scene.GetChildWithName("Player");
            if (target == null)
            {
                throw new GameException("Target is Null");
            }

            Collider = Owner.GetComponent <Collider>();
            if (Collider == null)
            {
                Logger.Log(DebugChannel.Warning, "No Rigid body attached", 10);
            }

            GameObject dbg = Owner.Scene.GetChildWithName("Console");

            if (dbg != null)
            {
                DebugConsoleComponent console = dbg.GetComponent <DebugConsoleComponent>();
                if (console != null)
                {
                    console.AddCommand("ereset", cmdResetPlayer);
                    console.AddCommand("ecdamp", cmdChangeDamp);
                    console.AddCommand("ecmove", cmdChangeForce);
                    console.AddCommand("ecforce", cmdBulletForce);
                    console.AddCommand("ecbrate", cmdBulletPerSecond);
                    console.AddCommand("eactive", cmdActivate);
                    console.AddCommand("pcbmass", cmdBulletMass);
                    console.AddCommand("pcbphys", cmdToggleBulletPhysics);
                }
            }
        }
예제 #6
0
        protected override void Awake()
        {
            Collider = Owner.GetComponent <Collider>();
            if (Collider == null)
            {
                Logger.Log(DebugChannel.Warning, "No Rigid body attached", 10);
            }

            GameObject dbg = Owner.Scene.GetChildWithName("Console");

            if (dbg != null)
            {
                DebugConsoleComponent console = dbg.GetComponent <DebugConsoleComponent>();
                if (console != null)
                {
                    console.AddCommand("preset", cmdResetPlayer);
                    console.AddCommand("pcdamp", cmdChangeDamp);
                    console.AddCommand("pcmove", cmdChangeForce);
                    console.AddCommand("pcforce", cmdBulletForce);
                    console.AddCommand("pcbrate", cmdBulletPerSecond);
                    console.AddCommand("pcbmass", cmdBulletMass);
                    console.AddCommand("pcbphys", cmdToggleBulletPhysics);
                }
            }

            lastEnemySpawn = (int)Owner.LocalPosition.Z;
        }
예제 #7
0
        /// <summary>
        /// Overridden Awake method for setting up the Interpreter and add the commands to the console
        /// </summary>
        protected override void Awake()
        {
            Tex = TextureLoader.ParameterToTexture(width, height);

            for (int i = 0; i < _previews.Count; i++)
            {
                _previews[i].Texture = Tex;
            }


            DebugConsoleComponent console =
                Owner.Scene.GetChildWithName("Console").GetComponent <DebugConsoleComponent>();

            console?.AddCommand("runfl", cmd_RunFL);
            console?.AddCommand("dbgfl", cmd_RunFLStepped);
            console?.AddCommand("step", cmd_FLStep);
            console?.AddCommand("r", cmd_FLReset);
            console?.AddCommand("dbgstop", cmd_FLStop);
            _db = new KernelDatabase("kernel/", OpenCL.TypeEnums.DataTypes.UCHAR1);
        }
예제 #8
0
        protected override void Awake()
        {
            DebugConsoleComponent console =
                Owner.Scene.GetChildWithName("Console").GetComponent <DebugConsoleComponent>();

            console.AddCommand("n", cmd_N);
            console.AddCommand("ground", cmd_Ground);
            console.AddCommand("height", cmd_Height);
            console.AddCommand("limit", cmd_Limit);
            console.AddCommand("seed", cmd_Seed);
            console.AddCommand("useseed", cmd_UseSeed);
            console.AddCommand("width", cmd_Width);
            console.AddCommand("symmetry", cmd_Symmetry);
            console.AddCommand("pin", cmd_PeriodicInput);
            console.AddCommand("pout", cmd_PeriodicOutput);
            console.AddCommand("run", cmd_Run);
            console.AddCommand("reload", cmd_Reload);
            console.AddCommand("list", cmd_List);

            renderer = Owner.GetComponent <MeshRendererComponent>();
        }
예제 #9
0
        protected override void InitializeScene()
        {
            Mesh bgBox = MeshLoader.FileToMesh("models/cube_flat.obj");


            ShaderProgram.TryCreate(new Dictionary <ShaderType, string>
            {
                { ShaderType.FragmentShader, "shader/UITextRender.fs" },
                { ShaderType.VertexShader, "shader/UIRender.vs" }
            }, out ShaderProgram textShader);

            ShaderProgram.TryCreate(new Dictionary <ShaderType, string>
            {
                { ShaderType.FragmentShader, "shader/texture.fs" },
                { ShaderType.VertexShader, "shader/texture.vs" }
            }, out ShaderProgram shader);

            DebugConsoleComponent dbg = DebugConsoleComponent.CreateConsole().GetComponent <DebugConsoleComponent>();

            dbg.AddCommand("mov", cmd_ChangeCameraPos);
            dbg.AddCommand("rot", cmd_ChangeCameraRot);
            dbg.AddCommand("reload", cmd_ReLoadScene);
            dbg.AddCommand("next", cmd_NextScene);
            dbg.AddCommand("lookat", cmd_LookAtAudioSource);
            GameEngine.Instance.CurrentScene.Add(dbg.Owner);

            GameObject bgObj = new GameObject(Vector3.UnitY * -3, "BG");

            bgObj.Scale = new Vector3(25, 1, 25);
            bgObj.AddComponent(new MeshRendererComponent(shader, bgBox,
                                                         TextureLoader.FileToTexture("textures/ground4k.png"), 1));
            GameEngine.Instance.CurrentScene.Add(bgObj);

            BasicCamera c = new BasicCamera(
                Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(75f),
                                                     GameEngine.Instance.Width / (float)GameEngine.Instance.Height, 0.01f, 1000f), Vector3.Zero);

            c.Translate(new Vector3(0, 4, 0));
            _camLookCommandComponent = new LookAtComponent();

            c.AddComponent(_camLookCommandComponent);

            _sourceCube = new GameObject(Vector3.UnitZ * -5, "Audio Source");

            Mesh sourceCube             = MeshLoader.FileToMesh("models/cube_flat.obj");
            AudioSourceComponent source = new AudioSourceComponent();

            _sourceCube.AddComponent(source);
            _sourceCube.AddComponent(new RotateAroundComponent());
            _sourceCube.AddComponent(new MeshRendererComponent(shader, sourceCube,
                                                               TextureLoader.FileToTexture("textures/ground4k.png"), 1));
            if (!AudioLoader.TryLoad("sounds/test_mono_16.wav", out AudioFile clip))
            {
                Console.ReadLine();
            }

            source.Clip    = clip;
            source.Looping = true;
            source.Play();
            GameEngine.Instance.CurrentScene.Add(_sourceCube);

            AudioListener listener = new AudioListener();

            c.AddComponent(listener);
            GameEngine.Instance.CurrentScene.Add(c);
            GameEngine.Instance.CurrentScene.SetCamera(c);
        }
예제 #10
0
        protected override void InitializeScene()
        {
            int rayLayer     = LayerManager.RegisterLayer("raycast", new Layer(1, 2));
            int hybLayer     = LayerManager.RegisterLayer("hybrid", new Layer(1, 1 | 2));
            int physicsLayer = LayerManager.RegisterLayer("physics", new Layer(1, 1));

            LayerManager.DisableCollisions(rayLayer, physicsLayer);

            BasicCamera mainCamera =
                new BasicCamera(
                    Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(75f),
                                                         GameEngine.Instance.Width / (float)GameEngine.Instance.Height, 0.01f, 1000f), Vector3.Zero);

            object mc = mainCamera;

            EngineConfig.LoadConfig("assets/configs/camera_astardemo.xml", ref mc);

            GameObject sourceCube = new GameObject(new Vector3(0, 0, 0), "Light Source");
            GameObject hackCube   = new GameObject(new Vector3(0, 8, -50), "Workaround");

            Add(sourceCube);
            Add(hackCube);
            sourceCube.AddComponent(new LightComponent());


            mainCamera.AddComponent(new CameraRaycaster(sourceCube, hackCube));

            GameObject bgObj = new GameObject(new Vector3(0, -3, -32), "BG")
            {
                Scale = new Vector3(32, 1, 32)
            };

            Collider groundCol = new Collider(new Box(Vector3.Zero, 64, 1, 64), hybLayer);
            Texture  bgTex     = TextureLoader.ColorToTexture(Color.Yellow);

            bgTex.TexType = TextureType.Diffuse;
            bgObj.AddComponent(groundCol);

            tex         = TextureLoader.ColorToTexture(Color.Green);
            beginTex    = TextureLoader.ColorToTexture(Color.Blue);
            endTex      = TextureLoader.ColorToTexture(Color.Red);
            blockTex    = TextureLoader.ColorToTexture(Color.DarkMagenta);
            tex.TexType = beginTex.TexType = endTex.TexType = blockTex.TexType = TextureType.Diffuse;

            DebugConsoleComponent c = DebugConsoleComponent.CreateConsole().GetComponent <DebugConsoleComponent>();

            c.AddCommand("repath", ResetPaths);
            c.AddCommand("rp", ResetPaths);

            Add(c.Owner);

            bgObj.AddComponent(new LitMeshRendererComponent(DefaultFilepaths.DefaultLitShader, Prefabs.Cube, bgTex, 1));
            Add(bgObj);
            Add(mainCamera);
            SetCamera(mainCamera);

            Random rnd = new Random();

            nodes = GenerateNodeGraph(64, 64);
            for (int i = 0; i < nodes.GetLength(0); i++)
            {
                for (int j = 0; j < nodes.GetLength(1); j++)
                {
                    if (rnd.Next(0, 6) == 0)
                    {
                        nodes[i, j].Walkable = false;
                        nodes[i, j].Owner
                        .AddComponent(new LitMeshRendererComponent(DefaultFilepaths.DefaultLitShader,
                                                                   Prefabs.Sphere, blockTex, 1));
                    }

                    nodes[i, j].Owner.Scale *= 0.3f;

                    Add(nodes[i, j].Owner);
                }
            }
        }
예제 #11
0
        protected override void InitializeScene()
        {
            Mesh sphere = MeshLoader.FileToMesh("models/sphere_smooth.obj");
            Mesh plane  = MeshLoader.FileToMesh("models/plane.obj");
            Mesh bgBox  = MeshLoader.FileToMesh("models/cube_flat.obj");


            ShaderProgram.TryCreate(new Dictionary <ShaderType, string>
            {
                { ShaderType.FragmentShader, "shader/UITextRender.fs" },
                { ShaderType.VertexShader, "shader/UITextRender.vs" }
            }, out ShaderProgram textShader);

            ShaderProgram.TryCreate(new Dictionary <ShaderType, string>
            {
                { ShaderType.FragmentShader, "shader/texture.fs" },
                { ShaderType.VertexShader, "shader/texture.vs" }
            }, out ShaderProgram shader);

            GameObject objSphere = new GameObject(new Vector3(1, 1, 0), "SphereDisplay");

            objSphere.AddComponent(new MeshRendererComponent(shader, sphere,
                                                             TextureLoader.FileToTexture("textures/ground4k.png"), 1));
            objSphere.AddComponent(new RotatingComponent());

            GameObject objQuad = new GameObject(new Vector3(-1, 1, 0), "QuadDisplay");

            objQuad.AddComponent(new MeshRendererComponent(shader, plane,
                                                           TextureLoader.FileToTexture("textures/ground4k.png"), 1));
            objQuad.Rotate(new Vector3(1, 0, 0), MathHelper.DegreesToRadians(90));

            GameObject uiText = new GameObject(new Vector3(0), "UIText");

            uiText.AddComponent(new FLGeneratorComponent(new List <MeshRendererComponent>
            {
                objSphere.GetComponent <MeshRendererComponent>(), objQuad.GetComponent <MeshRendererComponent>()
            },
                                                         512,
                                                         512));


            GameEngine.Instance.CurrentScene.Add(uiText);
            DebugConsoleComponent dbg = DebugConsoleComponent.CreateConsole().GetComponent <DebugConsoleComponent>();

            dbg.AddCommand("mov", cmd_ChangeCameraPos);
            dbg.AddCommand("rot", cmd_ChangeCameraRot);
            dbg.AddCommand("reload", cmd_ReLoadScene);
            dbg.AddCommand("next", cmd_NextScene);
            GameEngine.Instance.CurrentScene.Add(dbg.Owner);
            GameEngine.Instance.CurrentScene.Add(objSphere);
            GameEngine.Instance.CurrentScene.Add(objQuad);

            GameObject bgObj = new GameObject(Vector3.UnitY * -3, "BG");

            bgObj.Scale = new Vector3(25, 1, 25);

            Texture bgTex = TextureLoader.FileToTexture("textures/ground4k.png");

            //BufferOperations.GetRegion<byte>(buf, new int3(), )


            bgObj.AddComponent(new MeshRendererComponent(shader, bgBox, bgTex, 1));
            GameEngine.Instance.CurrentScene.Add(bgObj);


            BasicCamera mainCamera =
                new BasicCamera(
                    Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(75f),
                                                         GameEngine.Instance.Width / (float)GameEngine.Instance.Height, 0.01f, 1000f), Vector3.Zero);

            object mc = mainCamera;

            EngineConfig.LoadConfig("configs/camera_fldemo.xml", ref mc);


            GameEngine.Instance.CurrentScene.Add(mainCamera);
            GameEngine.Instance.CurrentScene.SetCamera(mainCamera);

            GameObject camContainer = new GameObject("CamContainer");

            BasicCamera inPicCam =
                new BasicCamera(
                    Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(75f),
                                                         GameEngine.Instance.Width / (float)GameEngine.Instance.Height, 0.01f, 1000f), Vector3.Zero);

            inPicCam.Rotate(new Vector3(1, 0, 0), MathHelper.DegreesToRadians(0));
            inPicCam.Translate(new Vector3(0, 2, 4));
            inPicCam.AddComponent(new RotateAroundComponent());
            GameObject zeroPoint = new GameObject("Zero");

            GameEngine.Instance.CurrentScene.Add(zeroPoint);
            LookAtComponent comp = new LookAtComponent();

            comp.SetTarget(zeroPoint);
            inPicCam.AddComponent(comp);
            GameEngine.Instance.CurrentScene.Add(inPicCam);


            splitCam = new RenderTarget(inPicCam, 1, new Color(0, 0, 0, 0))
            {
                MergeType = RenderTargetMergeType.Additive,
                ViewPort  = new Rectangle(0, 0, (int)(GameEngine.Instance.Width * 0.3f),
                                          (int)(GameEngine.Instance.Height * 0.3f))
            };

            GameEngine.Instance.CurrentScene.Add(camContainer);
            GameEngine.Instance.AddRenderTarget(splitCam);
        }
예제 #12
0
        protected override void InitializeScene()
        {
            Texture test = TextureLoader.FileToTexture("textures/ground4k.png");


            int rayLayer     = LayerManager.RegisterLayer("raycast", new Layer(1, 2));
            int hybLayer     = LayerManager.RegisterLayer("hybrid", new Layer(1, 1 | 2));
            int physicsLayer = LayerManager.RegisterLayer("physics", new Layer(1, 1));

            LayerManager.DisableCollisions(rayLayer, physicsLayer);

            Mesh bgBox  = MeshLoader.FileToMesh("models/cube_flat.obj");
            Mesh box    = MeshLoader.FileToMesh("models/cube_flat.obj");
            Mesh sphere = MeshLoader.FileToMesh("models/sphere_smooth.obj");


            ShaderProgram.TryCreate(new Dictionary <ShaderType, string>
            {
                { ShaderType.FragmentShader, "shader/UITextRender.fs" },
                { ShaderType.VertexShader, "shader/UIRender.vs" }
            }, out ShaderProgram textShader);

            ShaderProgram.TryCreate(new Dictionary <ShaderType, string>
            {
                { ShaderType.FragmentShader, "shader/texture.fs" },
                { ShaderType.VertexShader, "shader/texture.vs" }
            }, out ShaderProgram shader);

            PhysicsDemoComponent phys = new PhysicsDemoComponent();

            GameEngine.Instance.CurrentScene.AddComponent(phys); //Adding Physics Component to world.


            DebugConsoleComponent dbg = DebugConsoleComponent.CreateConsole().GetComponent <DebugConsoleComponent>();

            dbg.AddCommand("mov", cmd_ChangeCameraPos);
            dbg.AddCommand("rot", cmd_ChangeCameraRot);
            dbg.AddCommand("reload", cmd_ReLoadScene);
            dbg.AddCommand("next", cmd_NextScene);
            GameEngine.Instance.CurrentScene.Add(dbg.Owner);

            GameObject bgObj = new GameObject(Vector3.UnitY * -3, "BG");

            bgObj.Scale = new Vector3(250, 1, 250);
            bgObj.AddComponent(new MeshRendererComponent(shader, bgBox,
                                                         TextureLoader.FileToTexture("textures/ground4k.png"), 1));
            Collider groundCol = new Collider(new Box(Vector3.Zero, 500, 1, 500), hybLayer);

            bgObj.AddComponent(groundCol);
            GameEngine.Instance.CurrentScene.Add(bgObj);

            GameObject boxO = new GameObject(Vector3.UnitY * 3, "Box");

            boxO.AddComponent(new MeshRendererComponent(shader, bgBox,
                                                        TextureLoader.FileToTexture("textures/ground4k.png"), 1));
            boxO.AddComponent(new Collider(new Box(Vector3.Zero, 1, 1, 1), physicsLayer));
            boxO.Translate(new Vector3(55, 0, 35));
            GameEngine.Instance.CurrentScene.Add(boxO);


            GameObject mouseTarget = new GameObject(Vector3.UnitY * -3, "BG");

            mouseTarget.Scale = new Vector3(1, 1, 1);
            mouseTarget.AddComponent(new MeshRendererComponent(shader, sphere,
                                                               TextureLoader.FileToTexture("textures/ground4k.png"), 1));

            GameEngine.Instance.CurrentScene.Add(mouseTarget);


            BasicCamera c = new BasicCamera(
                Matrix4.CreatePerspectiveFieldOfView(MathHelper.DegreesToRadians(75f),
                                                     GameEngine.Instance.Width / (float)GameEngine.Instance.Height, 0.01f, 1000f), Vector3.Zero);

            c.Rotate(new Vector3(1, 0, 0), MathHelper.DegreesToRadians(-25));
            c.Translate(new Vector3(1, 30, 45));
            c.AddComponent(new CameraRaycaster(mouseTarget, 3, boxO));
            GameEngine.Instance.CurrentScene.Add(c);
            GameEngine.Instance.CurrentScene.SetCamera(c);
        }