53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package object
|
|
|
|
// ObjectInterface defines the core interface for interactive objects
|
|
type ObjectInterface interface {
|
|
// Object identification
|
|
IsObject() bool
|
|
GetObjectType() string
|
|
|
|
// Interaction capabilities
|
|
IsClickable() bool
|
|
SetClickable(bool)
|
|
CanInteract() bool
|
|
GetInteractionType() int
|
|
|
|
// Device functionality
|
|
GetDeviceID() int8
|
|
SetDeviceID(int8)
|
|
|
|
// Merchant functionality
|
|
IsMerchant() bool
|
|
GetMerchantID() int32
|
|
SetMerchantID(int32)
|
|
GetMerchantType() int8
|
|
SetMerchantType(int8)
|
|
|
|
// Transport functionality
|
|
IsTransporter() bool
|
|
GetTransporterID() int32
|
|
SetTransporterID(int32)
|
|
|
|
// Collector functionality
|
|
IsCollector() bool
|
|
SetCollector(bool)
|
|
|
|
// Validation
|
|
Validate() error
|
|
}
|
|
|
|
// ObjectManager interface for dependency injection
|
|
type ObjectManagerInterface interface {
|
|
AddObject(*Object) error
|
|
RemoveObject(int32) error
|
|
GetObject(int32) *Object
|
|
GetObjectsByZone(string) []*Object
|
|
GetObjectsByType(string) []*Object
|
|
GetInteractiveObjects() []*Object
|
|
GetMerchantObjects() []*Object
|
|
GetTransportObjects() []*Object
|
|
GetCollectorObjects() []*Object
|
|
GetObjectCount() int
|
|
Clear()
|
|
GetObjectStatistics() ObjectStatistics
|
|
} |