コード例 #1
0
    public void Refresh()
    {
        UnregisterLight();
        Operational component = GetComponent <Operational>();

        if ((!((Object)component != (Object)null) || component.IsOperational) && base.isActiveAndEnabled)
        {
            Vector3 position = base.transform.GetPosition();
            position = new Vector3(position.x + Offset.x, position.y + Offset.y, position.z);
            int num = Grid.PosToCell(position);
            if (Grid.IsValidCell(num))
            {
                Vector2I vector2I = Grid.CellToXY(num);
                int      num2     = (int)Range;
                if (shape == LightShape.Circle)
                {
                    Vector2I vector2I2 = new Vector2I(vector2I.x - num2, vector2I.y - num2);
                    solidPartitionerEntry  = GameScenePartitioner.Instance.Add("Radiator", base.gameObject, vector2I2.x, vector2I2.y, 2 * num2, 2 * num2, GameScenePartitioner.Instance.solidChangedLayer, TriggerRefresh);
                    liquidPartitionerEntry = GameScenePartitioner.Instance.Add("Radiator", base.gameObject, vector2I2.x, vector2I2.y, 2 * num2, 2 * num2, GameScenePartitioner.Instance.liquidChangedLayer, TriggerRefresh);
                }
                else if (shape == LightShape.Cone)
                {
                    Vector2I vector2I3 = new Vector2I(vector2I.x - num2, vector2I.y - num2);
                    solidPartitionerEntry  = GameScenePartitioner.Instance.Add("Radiator", base.gameObject, vector2I3.x, vector2I3.y, 2 * num2, num2, GameScenePartitioner.Instance.solidChangedLayer, TriggerRefresh);
                    liquidPartitionerEntry = GameScenePartitioner.Instance.Add("Radiator", base.gameObject, vector2I3.x, vector2I3.y, 2 * num2, num2, GameScenePartitioner.Instance.liquidChangedLayer, TriggerRefresh);
                }
                cell = num;
                litCells.Clear();
                emitter = new RadiationGridEmitter(cell, litCells, Lux, Range, shape, 0.5f);
                emitter.Add();
                isRegistered = true;
            }
        }
    }