示例#1
0
 private void UpdateSimState()
 {
     if (dirty)
     {
         dirty = false;
         if (simActive)
         {
             if (element != 0 && emitRate > 0f)
             {
                 Vector3 position  = base.transform.GetPosition();
                 float   x         = position.x + modifierOffset.x;
                 Vector3 position2 = base.transform.GetPosition();
                 Vector3 pos       = new Vector3(x, position2.y + modifierOffset.y, 0f);
                 int     game_cell = Grid.PosToCell(pos);
                 SimMessages.ModifyElementEmitter(simHandle, game_cell, emitRange, element, 0.2f, emitRate * 0.2f, temperature, 3.40282347E+38f, emitDiseaseIdx, emitDiseaseCount);
             }
             statusHandle = GetComponent <KSelectable>().AddStatusItem(Db.Get().BuildingStatusItems.EmittingElement, this);
         }
         else
         {
             SimMessages.ModifyElementEmitter(simHandle, 0, 0, SimHashes.Vacuum, 0f, 0f, 0f, 0f, byte.MaxValue, 0);
             statusHandle = GetComponent <KSelectable>().RemoveStatusItem(statusHandle, this);
         }
     }
 }
示例#2
0
    protected override void OnSimDeactivate()
    {
        int cell      = Grid.PosToCell(base.transform.GetPosition());
        int game_cell = Grid.OffsetCell(cell, (int)outputElement.outputElementOffset.x, (int)outputElement.outputElementOffset.y);

        SimMessages.ModifyElementEmitter(simHandle, game_cell, emitRange, SimHashes.Vacuum, 0f, 0f, 0f, 0f, byte.MaxValue, 0);
        if (showDescriptor)
        {
            statusHandle = GetComponent <KSelectable>().RemoveStatusItem(statusHandle, false);
        }
    }
示例#3
0
    protected override void OnSimActivate()
    {
        int cell      = Grid.PosToCell(base.transform.GetPosition());
        int game_cell = Grid.OffsetCell(cell, (int)outputElement.outputElementOffset.x, (int)outputElement.outputElementOffset.y);

        if (outputElement.elementHash != 0 && outputElement.massGenerationRate > 0f && emissionFrequency > 0f)
        {
            float emit_temperature = (outputElement.minOutputTemperature != 0f) ? outputElement.minOutputTemperature : GetComponent <PrimaryElement>().Temperature;
            SimMessages.ModifyElementEmitter(simHandle, game_cell, emitRange, outputElement.elementHash, emissionFrequency, outputElement.massGenerationRate, emit_temperature, maxPressure, outputElement.addedDiseaseIdx, outputElement.addedDiseaseCount);
        }
        if (showDescriptor)
        {
            statusHandle = GetComponent <KSelectable>().ReplaceStatusItem(statusHandle, Db.Get().BuildingStatusItems.ElementEmitterOutput, this);
        }
    }