示例#1
0
        public virtual void OnRender(ModelEntityShader shader)
        {
            if (_transformInvalid || _lastPos != Position) {
                _transform =
                    Matrix4.Mult(
                        Matrix4.Mult(
                            Matrix4.Mult(
                                Matrix4.CreateTranslation(_offset),
                                Matrix4.CreateScale(_scale)),
                        Matrix4.CreateFromQuaternion(Rotation)),
                    Matrix4.CreateTranslation(Entity.Position));

                _transformInvalid = false;
                _lastPos = Position;
            }

            if (Model != null) {
                shader.Render(Model, Skin, _transform);
            }
        }
示例#2
0
        public override void OnEnter(bool firstTime)
        {
            base.OnEnter(firstTime);

            if (firstTime) {
                Generator = new CityGenerator();

                World = Generator.Generate(WorldSize, WorldSize);

                _fpsText = new UILabel(PixelFont.Large);
                _fpsText.Colour = Color4.White;
                AddChild(_fpsText);

                _posText = new UILabel(PixelFont.Large);
                _posText.Colour = Color4.White;
                AddChild(_posText);

                _infDisplay = new UIInfectionDisplay(World);
                AddChild(_infDisplay);

                PositionUI();

                Camera = new OrthoCamera(Width, Height, 4.0f / _upScale);
                Camera.SetWrapSize(WorldSize, WorldSize);
                Camera.Position2D = new Vector2(WorldSize, WorldSize) / 2.0f;
                Camera.Pitch = TargetCameraPitch;
                Camera.Yaw = TargetCameraYaw;

                Plugin.CityGenerated();

                GeoShader = new GeometryShader();
                GeoShader.Camera = Camera;

                FlatEntShader = new FlatEntityShader();
                FlatEntShader.Camera = Camera;

                ModelEntShader = new ModelEntityShader();
                ModelEntShader.Camera = Camera;

                _traceShader = new DebugTraceShader();
                _traceShader.Camera = Camera;

                _frameTimer.Start();
            }
        }