}                                           //Симуляция загрузки с бд

        protected override async Task OnAfterRenderAsync(bool firstRender)
        {
            if (firstRender)
            {
                dataMap = new DataMap();
                InitDefault();
                InitBot();
                InitBarier();
                InitTeleport();

                //Загрузка обьекта и его текстуры
                //var meshData = await SceneLoader.ImportMeshAsync("", "obj/", "mine.babylon", scene);
                //var mine = meshData.meshes.First();
                //mine.position.x = 0m;
                //mine.position.z = 0m;
                //mine.position.y = 12m;
                //mine.scaling.x = 20;
                //mine.scaling.y = 20;
                //mine.scaling.z = 20;
                //mine.material.metallic = 1;

                var advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI("UI");
                //engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

                engine.runRenderLoop(new ActionCallback(async() => scene.render(true, false)));
            }
        }
        public void CreateScene()
        {
            var canvas = Canvas.GetElementById(
                "game-window"
                );
            var engine = new Engine(
                canvas,
                true
                );
            var scene = new Scene(
                engine
                );
            var light0 = new PointLight(
                "Omni",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var light1 = new HemisphericLight(
                "HemisphericLight",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI("UI");
            var button          = Button.CreateSimpleButton(
                "button", "Click Me"
                );

            button.width      = "90%";
            button.height     = "90%";
            button.color      = "white";
            button.background = "green";
            button.onPointerClickObservable.add(async(Vector2WithInfo arg1, EventState state) =>
            {
                var x      = arg1.x.ToString();
                var fds    = arg1.buttonIndex;
                var vector = new Vector3(2.1m, 3.2m, 4.1m);
                Console.WriteLine(
                    $"Clicked: {arg1.x}, {arg1.y}"
                    );
                var xx        = vector.getClassName();
                ClickPosition = arg1;
                await InvokeAsync(StateHasChanged);
            });
            advancedTexture.addControl(
                button
                );
            var freeCamera = new FreeCamera(
                "FreeCamera",
                new Vector3(
                    0,
                    0,
                    -100
                    ),
                scene
                )
            {
                rotation = new Vector3(
                    0,
                    0,
                    0
                    ),
            };

            scene.activeCamera = freeCamera;
            freeCamera.attachControl(
                canvas,
                false
                );
            engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

            _engine = engine;
        }
Beispiel #3
0
        public async Task CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(0, 100, 8),
                scene
                );

            var advancedTexture = await AdvancedDynamicTexture.CreateFullscreenUI("UI");

            var button = await Button.CreateSimpleButton(
                "button", "Click Me"
                );

            await button.set_width("90%");

            await button.set_height("90%");

            await button.set_color("white");

            await button.set_background("green");

            await(await button.get_onPointerClickObservable()).add(async(Vector2WithInfo arg1, EventState state) =>
            {
                var x      = (await arg1.get_x()).ToString();
                var fds    = await arg1.get_buttonIndex();
                var vector = await Vector3.NewVector3(2.1m, 3.2m, 4.1m);
                //Console.WriteLine(
                //    $"Clicked: {await arg1.get_x()}, {await arg1.get_y()}"
                //);
                var xx          = await vector.getClassName();
                ClickPosition   = arg1;
                ClickPosition_X = await ClickPosition.get_x();
                ClickPosition_Y = await ClickPosition.get_y();
                await InvokeAsync(StateHasChanged);
                //Console.WriteLine("Clicked: ");
            });
            await advancedTexture.addControl(
                button
                );

            var freeCamera = await FreeCamera.NewFreeCamera(
                "FreeCamera",
                await Vector3.NewVector3(
                    0,
                    0,
                    -100
                    ),
                scene
                );

            await freeCamera.set_rotation(
                await Vector3.NewVector3(
                    0,
                    0,
                    0
                    )
                );

            await scene.set_activeCamera(freeCamera);

            await freeCamera.attachControl(false);

            await engine.runRenderLoop(new ActionCallback(() => Task.Run(() => scene.render(true, false))));

            _engine = engine;

            await Canvas.RemoveBlur(
                "game-window"
                );
        }
        public void CreateScene()
        {
            var canvas = Canvas.GetElementById(
                "game-window"
                );
            var engine = new Engine(
                canvas,
                true
                );
            var scene = new Scene(
                engine
                );

            scene.clearColor = new Color4(0, 0, 0, 0);
            var light0 = new PointLight(
                "Omni",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var light1 = new HemisphericLight(
                "HemisphericLight",
                new Vector3(
                    0,
                    100,
                    8
                    ),
                scene
                );
            var advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI("UI");
            var UiPanel         = new StackPanel("name")
            {
                width               = "220px",
                fontSize            = "14px",
                horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_RIGHT,
                verticalAlignment   = Control.VERTICAL_ALIGNMENT_CENTER
            };

            advancedTexture.addControl(UiPanel);

            var house = SceneLoader.ImportMesh(
                null,
                "assets/",
                "Player.glb",
                scene,
                new Interop.Callbacks.ActionCallback <AbstractMesh[], IParticleSystem[], Skeleton[], AnimationGroup[], TransformNode[], Geometry[], Light[]>((arg1, arg2, arg3, arg4, arg5, arg6, arg7) =>
            {
                foreach (var animation in arg4)
                {
                    animation.stop();
                    _animationMap.Add(animation.name, animation);
                    AddRunAnimationButton(
                        UiPanel,
                        animation.name
                        );
                }
                if (_animationMap.Count > 0)
                {
                    _runningAnimation = _animationMap.First().Value;
                    _runningAnimation.start(true);
                }
                return(Task.CompletedTask);
            })
                );
            var camera = new ArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(System.Math.PI / 2),
                (decimal)(System.Math.PI / 4),
                3,
                new Vector3(0, 1, 0),
                scene
                )
            {
                lowerRadiusLimit     = 2,
                upperRadiusLimit     = 10,
                wheelDeltaPercentage = 0.01m
            };

            scene.activeCamera = camera;
            camera.attachControl(
                false
                );
            engine.runRenderLoop(new ActionCallback(
                                     () => Task.Run(() => scene.render(true, false))
                                     ));

            _engine = engine;
        }
        public async ValueTask CreateScene()
        {
            var canvas = await Canvas.GetElementById(
                "game-window"
                );

            var engine = await Engine.NewEngine(
                canvas,
                true
                );

            var scene = await Scene.NewScene(
                engine
                );

            var light0 = await PointLight.NewPointLight(
                "Omni",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var light1 = await HemisphericLight.NewHemisphericLight(
                "HemisphericLight",
                await Vector3.NewVector3(
                    0,
                    100,
                    8
                    ),
                scene
                );

            var advancedTexture = await AdvancedDynamicTexture.CreateFullscreenUI("UI");

            var UiPanel = await StackPanel.NewStackPanel("name");

            await UiPanel.set_width("220px");

            await UiPanel.set_fontSize("14px");

            await UiPanel.set_horizontalAlignment(await Control.get_HORIZONTAL_ALIGNMENT_RIGHT());

            await UiPanel.set_verticalAlignment(await Control.get_VERTICAL_ALIGNMENT_CENTER());

            await advancedTexture.addControl(UiPanel);

            var house = await SceneLoader.ImportMesh(
                null,
                "assets/",
                "Player.glb",
                scene,
                new Server.Interop.Callbacks.ActionCallback <AbstractMesh[], IParticleSystem[], Skeleton[], AnimationGroup[]>(async(arg1, arg2, arg3, arg4) =>
            {
                foreach (var animation in arg4)
                {
                    await animation.stop();
                    _animationMap.Add(await animation.get_name(), animation);
                    await AddRunAnimationButton(
                        UiPanel,
                        await animation.get_name()
                        );
                }
                if (_animationMap.Count > 0)
                {
                    _runningAnimation = _animationMap.First().Value;
                    await _runningAnimation.start(true);
                }
            })
                );

            var camera = await ArcRotateCamera.NewArcRotateCamera(
                "ArcRotateCamera",
                (decimal)(System.Math.PI / 2),
                (decimal)(System.Math.PI / 4),
                3,
                await Vector3.NewVector3(0, 1, 0),
                scene
                );

            await camera.set_lowerRadiusLimit(2);

            await camera.set_upperRadiusLimit(10);

            await camera.set_wheelDeltaPercentage(0.01m);

            await scene.set_activeCamera(camera);

            await camera.attachControl(
                canvas,
                false
                );

            await engine.runRenderLoop(() => Task.Run(() => scene.render(true, false)));

            _engine = engine;
        }