public override void ConfigureBuildingTemplate(GameObject go, Tag prefab_tag) { go.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.CreatureRelocator, false); Storage storage = go.AddOrGet <Storage>(); storage.allowItemRemoval = false; storage.showDescriptor = true; storage.storageFilters = STORAGEFILTERS.SWIMMING_CREATURES; storage.workAnims = new HashedString[1] { new HashedString("working_pre") }; storage.workAnimPlayMode = KAnim.PlayMode.Once; storage.overrideAnims = new KAnimFile[1] { Assets.GetAnim("anim_interacts_fishrelocator_kanim") }; storage.synchronizeAnims = false; storage.useGunForDelivery = false; storage.allowSettingOnlyFetchMarkedItems = false; storage.faceTargetWhenWorking = false; CreatureDeliveryPoint creatureDeliveryPoint = go.AddOrGet <CreatureDeliveryPoint>(); creatureDeliveryPoint.deliveryOffsets = new CellOffset[1] { new CellOffset(0, 1) }; creatureDeliveryPoint.spawnOffset = new CellOffset(0, -1); creatureDeliveryPoint.playAnimsOnFetch = true; go.AddOrGet <TreeFilterable>(); }
private void OnCopySettings(object data) { GameObject gameObject = (GameObject)data; if (!((UnityEngine.Object)gameObject == (UnityEngine.Object)null)) { CreatureDeliveryPoint component = gameObject.GetComponent <CreatureDeliveryPoint>(); if (!((UnityEngine.Object)component == (UnityEngine.Object)null)) { creatureLimit = component.creatureLimit; RebalanceFetches(); } } }
/* * --- int cell = Grid.PosToCell(this); +++ int cell = Grid.OffsetCell( Grid.PosToCell(this), spawnOffset ); */ private static int CorrectedCell(int cell, CreatureDeliveryPoint cdp) { int corrected = Grid.OffsetCell(cell, cdp.spawnOffset); return(Grid.IsValidCell(corrected) ? corrected : cell); }