project/Environment

From OpenKore Wiki
Jump to navigation Jump to search

Regarding OpenKore 2.x.

Environment is a wall between real network stuff and everything other (AI, user, AI-level and user-level plugins).

Environment should have common not-RO binded concepts with common interfaces, such as Actor, ActorList, Field; and network-dependent implementations.

Overview of current situation

Pattern Actor::You Actor::Slave Actor::Player Actor::Item Skill
Controllable->move sendMove sendHomunculusMove
Actor->use ActorList->merge sendArrowCraft sendCardMergeRequest sendCardMerge sendProduceMix sendIdentify sendItemUse sendPetHatch sendCooking sendWeaponRefine sendAutoSpell sendSkillUse
Controllable->attack sendAction sendHomunculusAttack
Controllable->action sendAction sendChat sendEmotion sendHomunculusCommand sendHomunculusStandBy [sendPetMenu] sendMercenaryCommand sendEquip sendAddSkillPoint
Actor->moveToList ActorList->moveToList sendFriendRequest sendGuildJoinRequest sendPartyJoinRequest sendBuyBulk sendBuyBulkVender sendCartAdd/Get sendSell sendStorageAdd/FromCart/Get/ToCart sendDrop sendTake
Actor->delete ActorList->remove sendHomunculusCommand sendMercenaryCommand sendFriendRemove sendGuildLeave sendGuildMemberKick sendGuildBreak sendPartyKick
ActorList->delete sendCompanionRelease sendStorageClose