Exemplo n.º 1
0
        public void Awake()
        {
            LoadTexture("GameData/kOS/GFX/font_sml.png", ref FontImage);
            LoadTexture("GameData/kOS/GFX/monitor_minimal.png", ref TerminalImage);
            LoadTexture("GameData/kOS/GFX/buttons.png", ref ButtonImage);

            for (var i = 0; i < CPU.FUNCTION_BUTTON_COUNT; i++)
            {
                FunctionButtonDrawInfo state = new FunctionButtonDrawInfo();
                state.Bounds = new Rect(19 + i * 30, 362, 28, 28);
                state.VisBounds = new Rect(19 - 5 + i * 30, 362 - 5, 28 + 10, 28 + 10);
                state.Number = i;

                if (i == 3) state.Onstate = true;

                ButtonDrawInfos.Add(state);
            }
        }
Exemplo n.º 2
0
        // Draw function buttons on the terminal
        void drawButton(FunctionButtonDrawInfo drawInfo)
        {
            // Respect the state of the window
            GUI.color = isLocked ? COLOR : COLOR_ALPHA;

            #region Draw button background

            GUI.BeginGroup(drawInfo.VisBounds);

            int x,y;
            bool isDown =  Cpu.ButtonStates[drawInfo.Number].DownState;
            x = isDown ? -37 : 0; // Different coords if button is down

            // Draw background
            GUI.DrawTexture(new Rect(x, -54, ButtonImage.width, ButtonImage.height), ButtonImage);

            GUI.EndGroup();

            // Draw button glow if state is on
            try
            {
                if (Cpu.ButtonStates[drawInfo.Number].LightState == true)
                {
                    GUI.BeginGroup(drawInfo.VisBounds);

                    GUI.color = isLocked ? BUTTON_GLOW_GREEN : BUTTON_GLOW_GREEN_ALPHA;
                    GUI.DrawTexture(new Rect(x, -91, ButtonImage.width, ButtonImage.height), ButtonImage);
                    GUI.color = isLocked ? COLOR : COLOR_ALPHA;

                    GUI.EndGroup();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.ToString() + " while tring to draw button " + drawInfo.Number);
            }

            #endregion

            #region Draw Number

            int downOffset = isDown ? 1 : 0;
            int drawnNumber = drawInfo.Number + 1;
            GUI.BeginGroup(new Rect(drawInfo.VisBounds.xMin + 8 + downOffset, drawInfo.VisBounds.yMin + 8 + downOffset, 20, 20));

            // Figure out texture coords for the number
            if (drawnNumber < 5) { x = 88; y = drawnNumber * 20; }
            else { x = 108; y = (drawnNumber - 5) * 20; }

            GUI.DrawTexture(new Rect(-x, -y, ButtonImage.width, ButtonImage.height), ButtonImage);

            GUI.EndGroup();

            #endregion
        }