예제 #1
0
    public void ProcessThreads(int threadId)
    {
        //ApplyPendingDataToVariable(currLoop);

        AbilityCentralThreadPool inst  = GetCentralInst();
        SplitterData             sData = threadMap[threadId] as SplitterData;

        //Debug.LogFormat("Thread id {0} currently {1}/{2}.", threadId, sData.numberOfLoops, inst.ReturnRuntimeParameter<int>(GetNodeId(), 0).v);

        if (sData.numberOfLoops < GetNodeVariable <int>("Number of Loops") || GetNodeVariable <int>("Number of Loops") == -1)
        {
            NodeModifierBaseThread trdInst = new NodeModifierBaseThread(threadId, this, 0);
            trdInst.SetNodeData(GetNodeId(), inst.GetNodeBranchData(GetNodeId()));

            int threadToUse = inst.AddNewThread(trdInst);
            //Debug.LogFormat("Thread {0} is starting a new journey.", threadToUse);
            //Debug.LogFormat("Thread id {0} has been created.", threadToUse);
            SetVariable <int>(threadToUse, "Number of Loops");
        }
        else
        {
            //Debug.LogFormat("Thread {0} was rmed.", threadId);
            inst.HandleThreadRemoval(threadId);
            threadMap.Remove(threadId);
        }
    }
예제 #2
0
        public void AddSplitter(SplitContainer splitter, string settingName, int?defaultDistance = null)
        {
            var data = new SplitterData()
            {
                Splitter           = splitter,
                SettingName        = settingName,
                DefaultDistance    = defaultDistance,
                DesignTimeFontSize = _designTimeFontSize
            };

            _splitters.Add(data);
        }
예제 #3
0
 public AllData(RelayCannonsData cannons, FansData fans, CrafterData crafters, ItemObjectsData items, MinersData miners, OreData ores, InventoryData invents, UnPackagerData unPacks,
                PackagerData packs, EggData eggs, SplitterData splits, PumpsData pumps, ZapTowerData zaps, RocketData rock)
 {
     cannon  = cannons;
     fan     = fans;
     crafter = crafters;
     item    = items;
     miner   = miners;
     ore     = ores;
     invent  = invents;
     unPack  = unPacks;
     pack    = packs;
     egg     = eggs;
     split   = splits;
     pump    = pumps;
     zap     = zaps;
     roc     = rock;
 }
    public override InstrumentData GetData()
    {
        SplitterData data = new SplitterData();

        data.deviceType = menuItem.deviceType.Splitter;
        GetTransformData(data);

        data.flowDir  = flow;
        data.jackInID = input.transform.GetInstanceID();

        data.jackCount = count + 1;
        data.jackOutID = new int[data.jackCount];

        data.jackOutID[0] = output.transform.GetInstanceID();

        for (int i = 1; i < data.jackCount; i++)
        {
            data.jackOutID[i] = signal.nodes[i - 1].jack.transform.GetInstanceID();
        }

        return(data);
    }
    public override void Load(InstrumentData d)
    {
        SplitterData data = d as SplitterData;

        base.Load(data);

        input.ID = data.jackInID;

        setFlow(data.flowDir);
        flowSwitch.setSwitch(flow);

        if (data.jackCount < 2)
        {
            count = 1;
            Vector3 pos = stretchSlider.localPosition;
            pos.x = (count + 1) * -.04f;
            stretchSlider.localPosition = pos;
            updateSplitterCount();

            output.ID = data.jackOutAID;
            signal.nodes[0].jack.ID = data.jackOutBID;
        }
        else
        {
            count = data.jackCount - 1;
            Vector3 pos = stretchSlider.localPosition;
            pos.x = (count + 1) * -.04f;
            stretchSlider.localPosition = pos;
            updateSplitterCount();

            output.ID = data.jackOutID[0];

            for (int i = 1; i < data.jackCount; i++)
            {
                signal.nodes[i - 1].jack.ID = data.jackOutID[i];
            }
        }
    }