Ejemplo n.º 1
0
    public void Check()
    {
        InNorth    = '0';
        InSouth    = '0';
        InWest     = '0';
        InEast     = '0';
        Syncstring = "0000";
        HashSet <ElectricalOIinheritance> connections = new HashSet <ElectricalOIinheritance>();

        connections = ElectricityFunctions.SwitchCaseConnections(Wire.transform.localPosition, Wire.Matrix, Wire.InData.CanConnectTo, Connection.MachineConnect, Wire);
        foreach (var cn in connections)
        {
            Vector3 v3 = (cn.transform.localPosition - Wire.transform.localPosition).CutToInt();
            if (v3 == Vector3.up)
            {
                InNorth = '1';
            }
            else if (v3 == Vector3.down)
            {
                InSouth = '1';
            }
            else if (v3 == Vector3.right)
            {
                InEast = '1';
            }
            else if (v3 == Vector3.left)
            {
                InWest = '1';
            }
        }
        Syncstring = InNorth.ToString() + InSouth.ToString() + InWest.ToString() + InEast.ToString();
        UpdateSprites(null, Syncstring);
    }
Ejemplo n.º 2
0
    public void Check()
    {
        if (HashSetCanConnectTo == null)
        {
            HashSetCanConnectTo = new HashSet <PowerTypeCategory>(CanConnectTo);
        }

        InNorth    = '0';
        InSouth    = '0';
        InWest     = '0';
        InEast     = '0';
        Syncstring = "0000";
        HashSet <IntrinsicElectronicData> connections = new HashSet <IntrinsicElectronicData>();

        ElectricityFunctions.SwitchCaseConnections(Wire.transform.localPosition,
                                                   Wire.Matrix, HashSetCanConnectTo,
                                                   Connection.MachineConnect, Wire.InData,
                                                   connections);
        foreach (var cn in connections)
        {
            Vector3 v3 = (cn.Present.transform.localPosition - Wire.transform.localPosition).CutToInt();
            if (v3 == Vector3.up)
            {
                InNorth = '1';
            }
            else if (v3 == Vector3.down)
            {
                InSouth = '1';
            }
            else if (v3 == Vector3.right)
            {
                InEast = '1';
            }
            else if (v3 == Vector3.left)
            {
                InWest = '1';
            }
        }

        Syncstring = InNorth.ToString() + InSouth.ToString() + InWest.ToString() + InEast.ToString();
        UpdateSprites(null, Syncstring);
    }
        public void RefreshSprites()
        {
            HashSet <IntrinsicElectronicData> connections = new HashSet <IntrinsicElectronicData>();

            ElectricityFunctions.SwitchCaseConnections(
                Wire.transform.localPosition, Wire.Matrix, connectionTypes,
                Connection.MachineConnect, Wire.InData, connections);

            HashSet <OrientationEnum> activeDirections = new HashSet <OrientationEnum>();

            foreach (IntrinsicElectronicData connection in connections)
            {
                Vector3 vector = (connection.Present.transform.localPosition - Wire.transform.localPosition).CutToInt();
                activeDirections.Add(Orientation.From(vector).AsEnum());
            }

            foreach (var kvp in spriteHandlers)
            {
                SpriteHandler spriteHandler = kvp.Value;
                if (activeDirections.Contains(kvp.Key))
                {
                    if (spriteHandler.CurrentSpriteIndex == -1)
                    {
                        spriteHandler.ChangeSprite(0);
                    }
                    else
                    {
                        spriteHandler.PushTexture();
                    }
                }
                else
                {
                    spriteHandler.PushClear();
                }
            }
        }