public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag)
    {
        go.AddOrGet <LoopingSounds>();
        Storage storage = BuildingTemplates.CreateDefaultStorage(go, false);

        storage.showInUI = true;
        ConduitConsumer conduitConsumer = go.AddOrGet <ConduitConsumer>();

        conduitConsumer.conduitType     = ConduitType.Liquid;
        conduitConsumer.consumptionRate = 1f;
        conduitConsumer.capacityKG      = 10f;
        conduitConsumer.capacityTag     = GameTags.Liquid;
        ElementConverter elementConverter = go.AddOrGet <ElementConverter>();

        elementConverter.consumedElements = new ElementConverter.ConsumedElement[1]
        {
            new ElementConverter.ConsumedElement(new Tag("Water"), 1f)
        };
        elementConverter.outputElements = new ElementConverter.OutputElement[1]
        {
            new ElementConverter.OutputElement(3.33333325f, SimHashes.CrudeOil, 363.15f, false, false, 2f, 1.5f, 0f, byte.MaxValue, 0)
        };
        OilWellCap oilWellCap = go.AddOrGet <OilWellCap>();

        oilWellCap.gasElement     = SimHashes.Methane;
        oilWellCap.gasTemperature = 573.15f;
        oilWellCap.addGasRate     = 0.0333333351f;
        oilWellCap.maxGasPressure = 80.00001f;
        oilWellCap.releaseGasRate = 0.444444478f;
    }
Exemple #2
0
        public static void Postfix(GameObject go)
        {
            if (!NoDupeHelper.CheckConfig(CustomizeBuildingsState.IDOilWellCap))
            {
                return;
            }

            OilWellCap oilWellCap = go.GetComponent <OilWellCap>();

            if (oilWellCap == null)
            {
                Debug.LogWarning("oilWellCap was null");
                return;
            }

            BuildingElementEmitter buildingElementEmitter = go.AddComponent <BuildingElementEmitter>();

            buildingElementEmitter.emitRate       = oilWellCap.addGasRate;     // = 0.03333334f;
            buildingElementEmitter.temperature    = oilWellCap.gasTemperature; // = 573.15f;
            buildingElementEmitter.element        = oilWellCap.gasElement;     // = SimHashes.Methane;
            buildingElementEmitter.modifierOffset = new Vector2(2f, 2f);

            UnityEngine.Object.DestroyImmediate(oilWellCap);
            go.AddOrGet <WaterPurifier>();
        }
            private static void Prefix(OilWellCap __instance, ref float dt)
            {
                var tinkerableWorkable = __instance.GetComponent <TinkerableWorkable>();

                if (tinkerableWorkable != null)
                {
                    dt *= tinkerableWorkable.GetMachinerySpeedMultiplier();
                }
            }
Exemple #4
0
    private void OnCopySettings(object data)
    {
        GameObject gameObject = (GameObject)data;
        OilWellCap component  = gameObject.GetComponent <OilWellCap>();

        if ((Object)component != (Object)null)
        {
            depressurizePercent = component.depressurizePercent;
        }
    }
Exemple #5
0
 private static void Postfix(OilWellCap __instance)
 {
     if (OilWellCapBugFixOptions.Instance.AllowDepressurizeWhenOutOfWater)
     {
         var consumer = __instance.GetComponent <ConduitConsumer>();
         if (consumer != null)
         {
             consumer.forceAlwaysSatisfied = true;
         }
     }
 }