using Unity.Mathematics; namespace DanieleMarotta.RiversongCodeShowcase { public interface IAgentCommonLogic { bool MoveAgent(Agent agent, float3 targetPosition, float dt); bool UpdateHeading(Agent agent, in float3 targetHeading, float dt); bool TryFetchProductFromStorage(AgentDefinition agentDefinition, Building source, int productHandle, int neededAmount, int maxAgentCount = int.MaxValue, AgentJob job = AgentJob.None); bool TryFetchProductFromProvider(AgentDefinition agentDefinition, Building source, int productHandle, int neededAmount, int maxAgentCount = int.MaxValue, AgentJob job = AgentJob.None); bool TryFetchProduct(AgentDefinition agentDefinition, Building source, Building fetchBuilding, int productHandle, int amount, int maxAgentCount = int.MaxValue, AgentJob job = AgentJob.None); bool TryDeliverProduct(AgentDefinition agentDefinition, Building source, int productHandle, int maxAgentCount = int.MaxValue, AgentJob job = AgentJob.None); } }