Пример #1
0
    public static GameObject CreateGasOreEntity(SimHashes elementId, List <Tag> additionalTags = null)
    {
        GameObject gameObject = CreateOreEntity(elementId, CollisionShape.RECTANGLE, 0.5f, 0.6f, additionalTags, 293f);
        Dumpable   dumpable   = gameObject.AddOrGet <Dumpable>();

        dumpable.SetWorkTime(5f);
        gameObject.AddOrGet <SubstanceChunk>();
        return(gameObject);
    }
Пример #2
0
            private static void Prefix(PlantElementAbsorbers __instance, float dt)
            {
                List <PlantElementAbsorber> data = Traverse.Create(__instance).Field("data").GetValue <List <PlantElementAbsorber> >();
                int count = data.Count;

                Traverse.Create(__instance).Field("updating").SetValue(true);
                for (int i = 0; i < count; ++i)
                {
                    PlantElementAbsorber plantElementAbsorber = data[i];
                    if (plantElementAbsorber.storage != null && plantElementAbsorber.consumedElements == null)
                    {
                        float          a             = plantElementAbsorber.localInfo.massConsumptionRate * dt;
                        PrimaryElement firstWithMass = plantElementAbsorber.storage.FindFirstWithMass(plantElementAbsorber.localInfo.tag);
                        if (firstWithMass != null)
                        {
                            if (firstWithMass.Element.tag.Equals(ElementLoader.FindElementByHash(Elements.MineralWaterElement.SimHash).tag))
                            {
                                float amount          = Mathf.Min(a, firstWithMass.Mass);
                                float convertedAmount = amount * ConversionRate;
                                plantElementAbsorber.storage.AddLiquid(SimHashes.Water,
                                                                       convertedAmount, firstWithMass.Temperature, byte.MaxValue, 0);
                                float availableMass = plantElementAbsorber.storage.GetMassAvailable(SimHashes.Water);
                                Console.WriteLine(string.Format("checking available mass is {0}", availableMass));
                                if (availableMass >= MinDumpAmount)
                                {
                                    PrimaryElement element   = plantElementAbsorber.storage.FindFirstWithMass(ElementLoader.FindElementByHash(SimHashes.Water).tag);
                                    Dumpable       component = element.gameObject.GetComponent <Dumpable>();
                                    if (component == null)
                                    {
                                        DebugUtil.LogWarningArgs("Was unable to dump water converted from mineral water!");
                                        continue;
                                    }
                                    component.Dump(plantElementAbsorber.storage.transform.GetPosition());
                                }
                            }
                        }
                    }
                }
            }