Esempio n. 1
0
        public ClientWorld(MasterRenderer renderer)
        {
            Renderer = renderer;

            debugRenderer = Renderer.GetRenderer3D <DebugRenderer>();
            entRenderer   = Renderer.GetRenderer3D <EntityRenderer>();
        }
Esempio n. 2
0
        public Player(MasterRenderer renderer, World world, SimpleCamera camera, Vector3 position, Team team)
            : base(position, 11, 5, 2.5f)
        {
            this.masterRenderer = renderer;
            this.World          = world;
            this.camera         = camera;
            Team = team;

            if (!GlobalNetwork.IsServer)
            {
                debugRenderer = renderer.GetRenderer3D <DebugRenderer>();
                entRenderer   = renderer.GetRenderer3D <EntityRenderer>();

                base.Renderer.VoxelObject = new DebugVOCube(world.GetTeamColor(team).ToColor4(), 1);

                flashlight = new Light(Vector3.Zero, LightType.Spot, 2, Color.White, new Vector3(1, 0, 0.002f))
                {
                    Radius = MathHelper.ToRadians(45), Visible = false
                };
                renderer.Lights.Add(flashlight);
            }

            HitFeedbackPositions = new List <Vector3>();

            Viewbob     = GlobalNetwork.IsClient ? new ItemViewbob(this) : null;
            ItemManager = new ItemManager(renderer, this, world, Viewbob);
        }
Esempio n. 3
0
        public VoxelTranslationHandles(MasterRenderer renderer)
        {
            xAxisVo = new VoxelTranslationHandle(6, cubeSize, Color.Blue);
            xAxisVo.MeshRotation = new Vector3(0, 0, -90);
            yAxisVo = new VoxelTranslationHandle(6, cubeSize, Color.Red);
            zAxisVo = new VoxelTranslationHandle(6, cubeSize, Color.Green);
            zAxisVo.MeshRotation = new Vector3(90, 0, 0);

            entRenderer   = renderer.GetRenderer3D <EntityRenderer>();
            debugRenderer = renderer.GetRenderer3D <DebugRenderer>();
        }
Esempio n. 4
0
        public Terrain(MasterRenderer renderer)
        {
            if (!GlobalNetwork.IsServer)
            {
                entRenderer     = renderer.GetRenderer3D <EntityRenderer>();
                chunkRenderer   = renderer.GetRenderer3D <ChunkRenderer>();
                MeshReadyChunks = new ConcurrentQueue <Chunk>();
            }

            Chunks     = new ConcurrentDictionary <IndexPosition, Chunk>();
            AllChanges = new List <BlockChange>();

            TrackChanges = GlobalNetwork.IsServer;
        }
        public EditorScreen(MainWindow window, MasterRenderer renderer)
        {
            this.Window     = window;
            this.renderer   = renderer;
            this.entReneder = renderer.GetRenderer3D <EntityRenderer>();

            UI = new EditorUI(renderer, this);

            debug = new DashCMDScreen("modeldebug", "", true, (s) =>
            {
                s.WriteLine("Mouse POS {0} {1}", Input.ClampedCursorX, Input.ClampedCursorY);
                s.WriteLine("Camera POS {0}", Camera.Active.Position);
                s.WriteLine("VoxelEditorObject POS {0}", (Model != null ? Model.CenterPosition : Vector3.Zero));
                s.WriteLine("");
                s.WriteLine("Current File {0}", CurrentFile);
                s.WriteLine("Fog: {0}; Enabled? {1}", renderer.GFXSettings.FogQuality, renderer.FogEnabled);
                s.WriteLine("FXAA: {0}", renderer.GFXSettings.ApplyFXAA);
                s.WriteLine("Shadows: {0}", renderer.GFXSettings.RenderShadows);
                s.WriteLine("PCF Samples: {0}", renderer.GFXSettings.ShadowPCFSamples);
                s.WriteLine("Wireframe: {0}", renderer.GlobalWireframe);
            })
            {
                SleepTime = 40,
            };

            DashCMD.AddScreen(debug);
            DashCMD.ExecuteCommand("screen modeldebug");

            Camera.Active.Speeds[0] = .5f;

            LoadNewModel();
        }
        public EditorWorld(EditorScreen screen)
        {
            this.screen = screen;

            terrainPhys   = new TerrainPhysicsExtension();
            renderer      = MasterRenderer.Instance;
            debugRenderer = renderer.GetRenderer3D <DebugRenderer>();
        }
        public TerrainEditor(EditorScreen screen)
        {
            this.screen = screen;
            editor      = screen.WorldEditor;
            renderer    = screen.Window.Renderer;
            terrainPhys = new TerrainPhysicsExtension();
            entRenderer = renderer.GetRenderer3D <EntityRenderer>();
            colorPicker = screen.UI.ColorWindow.ColorPicker;

            blockCursorCube = new DebugCube(Color4.White, Block.CUBE_SIZE);
            SelectionBox    = new EditorSelectionBox();

            undoStack      = new Stack <TerrainOperationBatch>();
            redoStack      = new Stack <TerrainOperationBatch>();
            operationBatch = new TerrainOperationBatch();

            rayIntersection = new TerrainRaycastResult(new Ray(Vector3.Zero, Vector3.UnitZ));
        }
Esempio n. 8
0
        public Spade(ItemManager itemManager, MasterRenderer renderer)
            : base(renderer, itemManager, ItemType.Spade)
        {
            ModelOffset = new Vector3(-3f, -5f, 3f);
            LoadModel("Models/spade.aosm");

            if (GlobalNetwork.IsClient)
            {
                entRenderer = renderer.GetRenderer3D <EntityRenderer>();

                if (cursorCube == null)
                {
                    cursorCube = new DebugCube(Color4.Black, Block.CUBE_SIZE);
                    cursorCube.RenderAsWireframe = true;
                    cursorCube.ApplyNoLighting   = true;
                    cursorCube.OnlyRenderFor     = RenderPass.Normal;
                }

                if (!itemManager.IsReplicated)
                {
                    AudioBuffer hitBlockAudioBuffer = AssetManager.LoadSound("Weapons/Spade/hit-block.wav");

                    if (hitBlockAudioBuffer != null)
                    {
                        hitBlockAudioSource = new AudioSource(hitBlockAudioBuffer);
                        hitBlockAudioSource.IsSourceRelative = true;
                        hitBlockAudioSource.Gain             = 0.2f;
                    }

                    AudioBuffer missAudioBuffer = AssetManager.LoadSound("Weapons/Spade/miss.wav");

                    if (missAudioBuffer != null)
                    {
                        missAudioSource = new AudioSource(missAudioBuffer);
                        missAudioSource.IsSourceRelative = true;
                        missAudioSource.Gain             = 0.5f;
                    }
                }
            }
        }
Esempio n. 9
0
        public BlockItem(ItemManager itemManager, MasterRenderer renderer)
            : base(itemManager, ItemType.BlockItem)
        {
            this.renderer = renderer;

            ModelOffset            = new Vector3(-1.75f, -1.75f, 2.5f);
            ownerPlayerPhysicsBody = OwnerPlayer.GetComponent <PhysicsBodyComponent>();

            if (!GlobalNetwork.IsServer)
            {
                entRenderer = renderer.GetRenderer3D <EntityRenderer>();

                cube = new DebugCube(Color4.White, 1.5f);
                Renderer.VoxelObject = cube.VoxelObject;

                if (cursorCube == null)
                {
                    cursorCube = new DebugCube(Color4.White, Block.CUBE_SIZE);
                    cursorCube.RenderAsWireframe = true;
                    cursorCube.ApplyNoLighting   = true;
                    cursorCube.OnlyRenderFor     = RenderPass.Normal;
                }

                Colors = new Color[PaletteHeight, PaletteWidth];

                for (int y = 0; y < PaletteHeight; y++)
                {
                    for (int x = 0; x < PaletteWidth; x++)
                    {
                        if (y == 0)
                        {
                            Colors[y, x] = Maths.HSVToRGB(0, 0, Math.Max(x / (float)PaletteWidth, 0.05f));
                        }
                        else
                        {
                            int halfPalette = PaletteWidth / 2;
                            if (x > halfPalette)
                            {
                                Colors[y, x] = Maths.HSVToRGB(
                                    (y - 1) / ((float)PaletteHeight - 1) * 360,
                                    1f - Math.Max((x - halfPalette) / (float)halfPalette, 0.05f),
                                    1f);
                            }
                            else
                            {
                                Colors[y, x] = Maths.HSVToRGB(
                                    (y - 1) / ((float)PaletteHeight - 1) * 360,
                                    1f,
                                    Math.Max(x / (float)halfPalette, 0.05f));
                            }
                        }
                    }
                }

                BlockColor = Colors[ColorY, ColorX];

                if (!itemManager.IsReplicated)
                {
                    AudioBuffer buildAudioBuffer = AssetManager.LoadSound("Weapons/Block/build.wav");

                    if (buildAudioBuffer != null)
                    {
                        buildAudioSource = new AudioSource(buildAudioBuffer);
                        buildAudioSource.IsSourceRelative = true;
                        buildAudioSource.Gain             = 0.5f;
                    }
                }
            }
        }