Open benloh opened 3 years ago
changed time estimate to 80h
Spend design 6/16 1h Spend production 6/16-6/167 7h
added 8h of time spent
marked the checklist item An inert/inactive agent releases the cursor as completed
marked the checklist item Cursors can pick up and inhabit an agent as completed
marked the checklist item Map inputs to cursors as completed
marked the checklist item Display cursor (target graphic?) as completed
See !111 for implementation.
Spend 0.25h jitter issue 6/22
added 15m of time spent
In order for input controllers (e.g. charcontrol, ptrack, or pozyx) to switch control from one agent to another, input controllers need to be treated as cursors.
Technical Design
Current data flow:
In order to support cursors, we need to introduce a new coupling.
uninhabited
agents.uninhabited
agents will not move, but may be preyed upon? They're not inert?uninhabited
agent, it becomes aninhabited
agent and updates its position value from the cursor agent.puppet
mechanism?agent.puppetMaster = cursor
?How would we define this?
Blueprint parameter?
UseNO!isPuppet
instead ofisInhabitable
?puppet
is input control of agent. e.g. a cursor would be a puppet.CharControl If CharControl sees a 'isInhabitable' type of Blueprint, then it needs to provide a 'cursor' agent selector?
Pozyx If Pozyx sees a 'isInhabitable' type of Blueprint, then it automatically creates cursor agents? This means that all Pozyx inputs would be mapped to a cursor? So you can't automatically map some Pozyx to a specific agent type and others to a cursor? This is probably a good thing as it keeps the system simpler?
Picking Up If a cursor center goes over an uninhabited agent center, then the uninhabited agent attaches itself to the cursor. Do we use Movement to do this testing? Does this mean Cursor agents always useMovement? And any blueprints that are inhabitable useMovement?
Dropping If the cursor agent drops out, what happens to the inhabited agent? Does it eventually mark itself uninhabited?
Instance Definition Should we allow predefined pozyx ids to be mapped to specific instances? e.g. in an instance script:
How are Cursor agents defined?
Do we hardcode GEMSCRIPT definition of the cursor agents? Or do we use a js class?
dc-inputs