コード例 #1
0
ファイル: MyShipMergeBlock.cs プロジェクト: feiyuren233/vrage
        public override void OnModelChange()
        {
            base.OnModelChange();

            m_emissivityState = EmissivityState.UNSET;
            CheckEmissivity();
        }
コード例 #2
0
ファイル: MyShipMergeBlock.cs プロジェクト: feiyuren233/vrage
        private void UpdateEmissivity(EmissivityState state)
        {
            m_emissivityState = state;

            Color emissiveColor = Color.Black;

            switch (state)
            {
            case EmissivityState.LOCKED:
                emissiveColor = Color.ForestGreen;
                break;

            case EmissivityState.CONSTRAINED:
                emissiveColor = Color.Goldenrod;
                break;

            case EmissivityState.WORKING:
                emissiveColor = Color.Gray;
                break;

            case EmissivityState.NONE:
                break;

            case EmissivityState.UNSET:
            default:
                Debug.Assert(false, "Invalid emissivity state in ship merge block");
                break;;
            }

            MyCubeBlock.UpdateEmissiveParts(Render.RenderObjectIDs[0], 1.0f, emissiveColor, Color.White);
        }
コード例 #3
0
ファイル: MyShipMergeBlock.cs プロジェクト: feiyuren233/vrage
        private void CheckEmissivity()
        {
            if (!InScene)
            {
                return;
            }

            EmissivityState state = EmissivityState.WORKING;

            var otherBlock = GetOtherMergeBlock();

            if (!IsWorking)
            {
                state = EmissivityState.NONE;
            }
            else if (otherBlock != null)
            {
                var dir1 = Base6Directions.GetFlippedDirection(otherBlock.Orientation.TransformDirection(otherBlock.m_forward));
                var dir2 = this.Orientation.TransformDirection(this.m_forward);
                if (dir1 == dir2)
                {
                    state = EmissivityState.LOCKED;
                }
            }
            else if (InConstraint)
            {
                state = EmissivityState.CONSTRAINED;
            }

            if (state != m_emissivityState)
            {
                UpdateEmissivity(state);
            }
        }
コード例 #4
0
        public override void OnModelChange()
        {
            base.OnModelChange();

            m_emissivityState = EmissivityState.UNSET;
            CheckEmissivity();
        }
コード例 #5
0
        private void UpdateEmissivity(EmissivityState state)
        {
            m_emissivityState = state;

            Color emissiveColor = Color.Black;

            switch (state)
            {
                case EmissivityState.LOCKED:
                    emissiveColor = Color.ForestGreen;
                    break;
                case EmissivityState.CONSTRAINED:
                    emissiveColor = Color.Goldenrod;
                    break;
                case EmissivityState.WORKING:
                    emissiveColor = Color.Gray;
                    break;
                case EmissivityState.NONE:
                    break;
                case EmissivityState.UNSET:
                default:
                    Debug.Assert(false, "Invalid emissivity state in ship merge block");
                    break;;
            }

            MyCubeBlock.UpdateEmissiveParts(Render.RenderObjectIDs[0], 1.0f, emissiveColor, Color.White);
        }