public void Update(GameTime gameTime) { _camera.Update(gameTime); SM.Update(gameTime); _editor.Update(); EC.Update(); _man.Update(gameTime); if (InputHelper.IsNewKeyPress(Keys.H)) { // harvest foreach (KeyValuePair <int, BaseEntity> keypair in EC.All) { Harvestable beh = keypair.Value.GetProperty <Harvestable>(); if (beh != null) { beh.Harvest(keypair.Value); } if (keypair.Value.Schematic == EntitySchematics.Tree) { break; } } } }
public void Update() { inventory.AddToInventory(harvestable.Harvest(), harvestable.amountPerCollection); if (harvestable.remainingAmount <= 0) { Object.Destroy(harvestable); } state = ActionState.Done; }
public override void InitializeStates(out BaseState default_state) { default_state = growing; base.serializable = true; growing.EventTransition(GameHashes.Wilt, stalled, (StatesInstance smi) => smi.IsWilting()).EventTransition(GameHashes.CropSleep, stalled, (StatesInstance smi) => smi.IsSleeping()).EventTransition(GameHashes.PlanterStorage, growing.planted, (StatesInstance smi) => smi.master.rm.Replanted) .EventTransition(GameHashes.PlanterStorage, growing.wild, (StatesInstance smi) => !smi.master.rm.Replanted) .TriggerOnEnter(GameHashes.Grow, null) .Update("CheckGrown", delegate(StatesInstance smi, float dt) { if (smi.ReachedNextHarvest()) { smi.GoTo(grown); } }, UpdateRate.SIM_4000ms, false) .ToggleStatusItem(Db.Get().CreatureStatusItems.Growing, (StatesInstance smi) => smi.master.GetComponent <Growing>()) .Enter(delegate(StatesInstance smi) { State state = (!smi.master.rm.Replanted) ? growing.wild : growing.planted; smi.GoTo(state); }); growing.wild.ToggleAttributeModifier("GrowingWild", (StatesInstance smi) => smi.wildGrowingRate, null); growing.planted.ToggleAttributeModifier("Growing", (StatesInstance smi) => smi.baseGrowingRate, null); stalled.EventTransition(GameHashes.WiltRecover, growing, (StatesInstance smi) => smi.CanExitStalled()).EventTransition(GameHashes.CropWakeUp, growing, (StatesInstance smi) => smi.CanExitStalled()); grown.DefaultState(grown.idle).TriggerOnEnter(GameHashes.Grow, null).Update("CheckNotGrown", delegate(StatesInstance smi, float dt) { if (!smi.ReachedNextHarvest()) { smi.GoTo(growing); } }, UpdateRate.SIM_4000ms, false) .ToggleAttributeModifier("GettingOld", (StatesInstance smi) => smi.getOldRate, null) .Enter(delegate(StatesInstance smi) { smi.ClampGrowthToHarvest(); }) .Exit(delegate(StatesInstance smi) { smi.master.oldAge.SetValue(0f); }); grown.idle.Update("CheckNotGrown", delegate(StatesInstance smi, float dt) { if (smi.master.shouldGrowOld && smi.master.oldAge.value >= smi.master.oldAge.GetMax()) { smi.GoTo(grown.try_self_harvest); } }, UpdateRate.SIM_4000ms, false); grown.try_self_harvest.Enter(delegate(StatesInstance smi) { Harvestable component = smi.master.GetComponent <Harvestable>(); if ((bool)component && component.CanBeHarvested) { bool harvestWhenReady = component.harvestDesignatable.HarvestWhenReady; component.ForceCancelHarvest(null); component.Harvest(); if (harvestWhenReady && (Object)component != (Object)null) { component.harvestDesignatable.SetHarvestWhenReady(true); } } smi.master.maturity.SetValue(0f); smi.master.oldAge.SetValue(0f); }).GoTo(grown.idle); }