public void CreateEmptyChore() { if (emptyChore != null) { emptyChore.Cancel("dupe"); } AlgaeHabitatEmpty component = base.master.GetComponent <AlgaeHabitatEmpty>(); emptyChore = new WorkChore <AlgaeHabitatEmpty>(Db.Get().ChoreTypes.EmptyStorage, component, null, true, OnEmptyComplete, null, null, true, null, false, true, null, false, true, true, PriorityScreen.PriorityClass.basic, 5, true, true); }
public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag) { Storage storage = go.AddOrGet <Storage>(); storage.showInUI = true; List <Tag> list = new List <Tag>(); list.Add(SimHashes.DirtyWater.CreateTag()); List <Tag> storageFilters = list; Tag tag = SimHashes.Algae.CreateTag(); Tag tag2 = SimHashes.Water.CreateTag(); Storage storage2 = go.AddComponent <Storage>(); storage2.capacityKg = 360f; storage2.showInUI = true; storage2.SetDefaultStoredItemModifiers(PollutedWaterStorageModifiers); storage2.allowItemRemoval = false; storage2.storageFilters = storageFilters; ManualDeliveryKG manualDeliveryKG = go.AddOrGet <ManualDeliveryKG>(); manualDeliveryKG.SetStorage(storage); manualDeliveryKG.requestedItemTag = tag; manualDeliveryKG.capacity = 90f; manualDeliveryKG.refillMass = 18f; manualDeliveryKG.choreTypeIDHash = Db.Get().ChoreTypes.FetchCritical.IdHash; ManualDeliveryKG manualDeliveryKG2 = go.AddComponent <ManualDeliveryKG>(); manualDeliveryKG2.SetStorage(storage); manualDeliveryKG2.requestedItemTag = tag2; manualDeliveryKG2.capacity = 360f; manualDeliveryKG2.refillMass = 72f; manualDeliveryKG2.allowPause = true; manualDeliveryKG2.choreTypeIDHash = Db.Get().ChoreTypes.FetchCritical.IdHash; KAnimFile[] overrideAnims = new KAnimFile[1] { Assets.GetAnim("anim_interacts_algae_terarrium_kanim") }; AlgaeHabitatEmpty algaeHabitatEmpty = go.AddOrGet <AlgaeHabitatEmpty>(); algaeHabitatEmpty.workTime = 5f; algaeHabitatEmpty.overrideAnims = overrideAnims; algaeHabitatEmpty.workLayer = Grid.SceneLayer.BuildingFront; AlgaeHabitat algaeHabitat = go.AddOrGet <AlgaeHabitat>(); algaeHabitat.lightBonusMultiplier = 1.1f; algaeHabitat.pressureSampleOffset = new CellOffset(0, 1); ElementConverter elementConverter = go.AddComponent <ElementConverter>(); elementConverter.consumedElements = new ElementConverter.ConsumedElement[2] { new ElementConverter.ConsumedElement(tag, 0.0300000012f), new ElementConverter.ConsumedElement(tag2, 0.3f) }; elementConverter.outputElements = new ElementConverter.OutputElement[1] { new ElementConverter.OutputElement(0.0400000028f, SimHashes.Oxygen, 303.15f, false, false, 0f, 1f, 1f, byte.MaxValue, 0) }; ElementConverter elementConverter2 = go.AddComponent <ElementConverter>(); elementConverter2.outputElements = new ElementConverter.OutputElement[1] { new ElementConverter.OutputElement(0.290333331f, SimHashes.DirtyWater, 303.15f, false, true, 0f, 1f, 1f, byte.MaxValue, 0) }; ElementConsumer elementConsumer = go.AddOrGet <ElementConsumer>(); elementConsumer.elementToConsume = SimHashes.CarbonDioxide; elementConsumer.consumptionRate = 0.0003333333f; elementConsumer.consumptionRadius = 3; elementConsumer.showInStatusPanel = true; elementConsumer.sampleCellOffset = new Vector3(0f, 1f, 0f); elementConsumer.isRequired = false; PassiveElementConsumer passiveElementConsumer = go.AddComponent <PassiveElementConsumer>(); passiveElementConsumer.elementToConsume = SimHashes.Water; passiveElementConsumer.consumptionRate = 1.2f; passiveElementConsumer.consumptionRadius = 1; passiveElementConsumer.showDescriptor = false; passiveElementConsumer.storeOnConsume = true; passiveElementConsumer.capacityKG = 360f; passiveElementConsumer.showInStatusPanel = false; go.AddOrGet <KBatchedAnimController>().randomiseLoopedOffset = true; go.AddOrGet <AnimTileable>(); Prioritizable.AddRef(go); }