public override void BeginExecution(Entity stateEntity, ActionContext action, Otto actor) { base.BeginExecution(stateEntity, action, actor); // Trigger beginning of walk animation. m_Animator = actor.GetComponentInParent <Animator>(); m_Animator.SetBool(k_Walk, true); m_TargetPosition = action.GetTrait <Location>(1).Position; m_OttoTransform = actor.transform; // Grab nav mesh m_NavMeshAgent = actor.GetComponentInParent <NavMeshAgent>(); // Motion Controller m_MotionController = actor.GetComponentInParent <MotionController>(); m_MotionController.TargetPosition = m_TargetPosition; m_MotionController.StartMoving(); SetAnimationParams(); m_Arrived = false; var startPosition = action.GetTrait <Location>(0).Position; var distance = Vector3.Distance(startPosition, m_TargetPosition); m_PredictedDeltaTime = Mathf.FloorToInt(distance / 0.47f + 1f); }
public override void EndExecution(Entity stateEntity, ActionContext action, Otto actor) { base.EndExecution(stateEntity, action, actor); // Set target orientation based on location orientation var ecsAction = action; var forward = ecsAction.GetTrait <Location>(1).Forward; m_MotionController.StopMoving(forward); // Effects // Update Otto position var agentDomainObjectTrait = ecsAction.GetTrait <DomainObjectTrait>(0); var destinationLocationTrait = ecsAction.GetTrait <Location>(1); var agentEntity = actor.GetDomainObjectEntityByID(stateEntity, agentDomainObjectTrait.ID); var loc = actor.GetObjectTrait <Location>(agentEntity); loc.Position = destinationLocationTrait.Position; actor.SetObjectTrait(agentEntity, loc); // Trigger ending of walk animation. m_Animator.SetBool(k_Walk, false); SetAnimationParams(true); }
public override void ContinueExecution(Entity stateEntity, ActionContext action, Otto actor) { base.ContinueExecution(stateEntity, action, actor); if (Time.time - m_StartTime >= m_Duration - k_ExitTime) { m_Animator.SetBool(s_ContinueWork, false); } }
public override void BeginExecution(StateData state, ActionKey action, Otto actor) { base.BeginExecution(state, action, actor); m_StartTime = Time.time; m_Duration = state.GetTraitOnObjectAtIndex <Duration>(action[2]).Time; m_Animator.SetTrigger(k_Work); m_Animator.SetBool(s_ContinueWork, true); }
public override void EndExecution(Entity stateEntity, ActionContext action, Otto actor) { foreach (var domainObjectEntity in actor.GetObjectEntities(stateEntity, typeof(Inventory))) { var inventory = actor.GetObjectTrait <Inventory>(domainObjectEntity); inventory.Amount += inventory.ConsumableType == m_ConsumableType ? 1 : 0; actor.SetObjectTrait(domainObjectEntity, inventory); } base.EndExecution(stateEntity, action, actor); }
public override void BeginExecution(StateData state, ActionKey action, Otto actor) { base.BeginExecution(state, action, actor); AnimationComplete = false; m_Animator.SetTrigger(k_Consumables); var dispenser = state.GetTraitOnObjectAtIndex <Dispenser>(action[1]); m_ConsumableType = dispenser.ConsumableType; m_Animator.SetTrigger(m_ConsumableType == ConsumableType.Apple ? k_PocketFood : k_PocketDrink); }
public override void BeginExecution(Entity stateEntity, ActionContext action, Otto actor) { base.BeginExecution(stateEntity, action, actor); AnimationComplete = false; m_Animator.SetTrigger(k_Consumables); var dispenser = action.GetTrait <Dispenser>(1); m_ConsumableType = dispenser.ConsumableType; m_Animator.SetTrigger(m_ConsumableType == ConsumableType.Apple ? k_PocketFood : k_PocketDrink); }
public override void BeginExecution(Entity stateEntity, ActionContext action, Otto actor) { base.BeginExecution(stateEntity, action, actor); m_StartTime = Time.time; var ecsAction = action; m_Duration = ecsAction.GetTrait <Duration>(2).Time; m_Animator.SetTrigger(k_Work); m_Animator.SetBool(s_ContinueWork, true); }
public override void BeginExecution(StateData state, ActionKey action, Otto actor) { base.BeginExecution(state, action, actor); var inventory = state.GetTraitOnObjectAtIndex <Inventory>(action[1]); m_ConsumableType = inventory.ConsumableType; m_NeedType = inventory.SatisfiesNeed; m_NeedReduction = inventory.NeedReduction; m_Animator.SetTrigger(k_Consumables); m_Animator.SetTrigger(m_ConsumableType == ConsumableType.Apple ? k_EatFromPocket : k_DrinkFromPocket); }
public static void Main(string[] args) { Console.WriteLine("start"); Mock myMock = new Mock(); Console.WriteLine("name: " + myMock.getName()); myMock.setName("Hello World"); Console.WriteLine("name: " + myMock.getName()); IntVector v = myMock.getInts(); foreach (var n in v) { Console.WriteLine("v = " + n); } IntMap map = myMock.getMap(); foreach (var n in map) { Console.WriteLine("m = " + n); } map[3] = "bar"; map[4] = "foo"; myMock.printMap(map); myPtr_s ptr = myMock.getPtr(); myPtr_s lastPtr = null; myPtr_s root = ptr; while (ptr != null) { Console.WriteLine("ptr->i=" + ptr.i); Console.WriteLine("ptr->s=" + ptr.s); lastPtr = ptr; ptr = ptr.next; } myPtr_s oneMore = new myPtr_s(); oneMore.i = 3; oneMore.s = "one more from C#"; oneMore.next = null; lastPtr.next = oneMore; myMock.printPtr(root); myPtr_s sp = myMock.getSharedPtr(); Console.WriteLine("shared i=" + sp.i + " s=" + sp.s); Otto otto = myMock.getOtto(); Console.WriteLine("otto i=" + otto.i() + " s=" + otto.s()); otto.s("Karl"); Console.WriteLine("otto i=" + otto.i() + " s=" + otto.s()); Console.WriteLine("end."); }
public override void EndExecution(StateData state, ActionKey action, Otto actor) { var domainObjects = new NativeList <(DomainObject, int)>(4, Allocator.TempJob); foreach (var(_, domainObjectIndex) in state.GetDomainObjects(domainObjects, new ComponentType[] { typeof(Inventory) })) { var inventory = state.GetTraitOnObjectAtIndex <Inventory>(domainObjectIndex); inventory.Amount += inventory.ConsumableType == m_ConsumableType ? 1 : 0; state.SetTraitOnObjectAtIndex(inventory, domainObjectIndex); } domainObjects.Dispose(); base.EndExecution(state, action, actor); }
public override void BeginExecution(Entity stateEntity, ActionContext action, Otto actor) { base.BeginExecution(stateEntity, action, actor); var ecsAction = action; var inventory = ecsAction.GetTrait <Inventory>(1); m_ConsumableType = inventory.ConsumableType; m_NeedType = inventory.SatisfiesNeed; m_NeedReduction = inventory.NeedReduction; m_Animator.SetTrigger(k_Consumables); m_Animator.SetTrigger(m_ConsumableType == ConsumableType.Apple ? k_EatFromPocket : k_DrinkFromPocket); }
public void Awake() { m_Otto = GetComponent <Otto>(); // Make instances of these, so the asset on disk doesn't get modified UIBarFood.material = Instantiate(UIBarFood.material); UIBarRest.material = Instantiate(UIBarRest.material); UIBarJoy.material = Instantiate(UIBarJoy.material); m_HungerMat = UIBarFood.material; m_FatigueMat = UIBarRest.material; m_ThirstMat = UIBarJoy.material; m_HungerMat.SetFloat(s_Amount, 1); m_ThirstMat.SetFloat(s_Amount, 1); m_FatigueMat.SetFloat(s_Amount, 1); }
public override void ContinueExecution(Entity stateEntity, ActionContext action, Otto actor) { base.ContinueExecution(stateEntity, action, actor); // Delay the execution of this animation until we've reached the Navigation state in the animator. if (m_Animator.GetCurrentAnimatorStateInfo(0).IsName("Navigation")) { var position = m_OttoTransform.position; m_MotionController.TargetOrientation = m_NavMeshAgent.nextPosition - position; SetAnimationParams(); // Check for arrival m_Arrived = Vector3.Distance(position, m_TargetPosition) <= 0.1; } }
public override void EndExecution(Entity stateEntity, ActionContext action, Otto actor) { base.EndExecution(stateEntity, action, actor); foreach (var domainObjectEntity in actor.GetObjectEntities(stateEntity, typeof(Inventory))) { var inventory = actor.GetObjectTrait <Inventory>(domainObjectEntity); inventory.Amount -= inventory.ConsumableType == m_ConsumableType ? 1 : 0; actor.SetObjectTrait(domainObjectEntity, inventory); } foreach (var domainObjectEntity in actor.GetObjectEntities(stateEntity, typeof(Need))) { var need = actor.GetObjectTrait <Need>(domainObjectEntity); need.Urgency -= need.NeedType == m_NeedType ? m_NeedReduction : 0; actor.SetObjectTrait(domainObjectEntity, need); } }
public override void BeginExecution(Entity stateEntity, ActionContext action, Otto actor) { base.BeginExecution(stateEntity, action, actor); m_Animator = actor.GetComponentInParent <Animator>(); m_Animator.SetTrigger(Animator.StringToHash("Sleep")); // Reset fatigue. foreach (var domainObjectEntity in actor.GetObjectEntities(stateEntity, typeof(Need))) { var need = actor.GetObjectTrait <Need>(domainObjectEntity); if (need.NeedType == NeedType.Fatigue) { need.Urgency = 0; actor.SetObjectTrait(domainObjectEntity, need); break; } } }
public override void EndExecution(StateData state, ActionKey action, Otto actor) { base.EndExecution(state, action, actor); var domainObjects = new NativeList <(DomainObject, int)>(4, Allocator.TempJob); foreach (var(_, domainObjectIndex) in state.GetDomainObjects(domainObjects, typeof(Inventory))) { var inventory = state.GetTraitOnObjectAtIndex <Inventory>(domainObjectIndex); inventory.Amount -= inventory.ConsumableType == m_ConsumableType ? 1 : 0; state.SetTraitOnObjectAtIndex(inventory, domainObjectIndex); } domainObjects.Clear(); foreach (var(_, domainObjectIndex) in state.GetDomainObjects(domainObjects, typeof(Need))) { var need = state.GetTraitOnObjectAtIndex <Need>(domainObjectIndex); need.Urgency -= need.NeedType == m_NeedType ? m_NeedReduction : 0; state.SetTraitOnObjectAtIndex(need, domainObjectIndex); } domainObjects.Dispose(); }
public override void BeginExecution(StateData state, ActionKey action, Otto actor) { base.BeginExecution(state, action, actor); m_Animator = actor.GetComponentInParent <Animator>(); m_Animator.SetTrigger(Animator.StringToHash("Sleep")); // Reset fatigue var domainObjects = new NativeList <(DomainObject, int)>(4, Allocator.TempJob); foreach (var(_, domainObjectIndex) in state.GetDomainObjects(domainObjects, new ComponentType[] { typeof(Need) })) { var need = state.GetTraitOnObjectAtIndex <Need>(domainObjectIndex); if (need.NeedType == NeedType.Fatigue) { need.Urgency = 0; state.SetTraitOnObjectAtIndex(need, domainObjectIndex); break; } } domainObjects.Dispose(); }
public override void EndExecution(StateData state, ActionKey action, Otto actor) { base.EndExecution(state, action, actor); // Set target orientation based on location orientation var forward = state.GetTraitOnObjectAtIndex <Location>(action[1]).Forward; m_MotionController.StopMoving(forward); // Effects // Update Otto position var agentDomainObjectIndex = action[0]; var destinationLocation = state.GetTraitOnObjectAtIndex <Location>(action[1]); var loc = state.GetTraitOnObjectAtIndex <Location>(agentDomainObjectIndex); loc.Position = destinationLocation.Position; state.SetTraitOnObjectAtIndex(loc, agentDomainObjectIndex); // Trigger ending of walk animation. m_Animator.SetBool(k_Walk, false); SetAnimationParams(true); }
public override OperationalActionStatus Status(StateData state, ActionKey action, Otto actor) { return(m_Arrived && Time.time - m_StartTime >= m_PredictedDeltaTime ? OperationalActionStatus.Completed : OperationalActionStatus.InProgress); }
public override OperationalActionStatus Status(StateData state, ActionKey action, Otto actor) { return(Time.time - m_StartTime >= m_Duration ? OperationalActionStatus.Completed : OperationalActionStatus.InProgress); }
public override OperationalActionStatus Status(Entity stateEntity, ActionContext action, Otto actor) { return(Time.time - m_StartTime >= m_Duration ? OperationalActionStatus.Completed : OperationalActionStatus.InProgress); }
public override OperationalActionStatus Status(Entity stateEntity, ActionContext action, Otto actor) { return(m_Arrived && Time.time - m_StartTime >= m_PredictedDeltaTime ? OperationalActionStatus.Completed : OperationalActionStatus.InProgress); }