eq2go/internal/object/interfaces.go
2025-08-29 18:25:57 -05:00

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
}