66 lines
1.6 KiB
Go

package appearances
// Appearance represents a single appearance with ID, name, and client version requirements
type Appearance struct {
id int32 // Appearance ID
name string // Appearance name
minClient int16 // Minimum client version required
}
// NewAppearance creates a new appearance with the given parameters
func NewAppearance(id int32, name string, minClientVersion int16) *Appearance {
if len(name) == 0 {
return nil
}
return &Appearance{
id: id,
name: name,
minClient: minClientVersion,
}
}
// GetID returns the appearance ID
func (a *Appearance) GetID() int32 {
return a.id
}
// GetName returns the appearance name
func (a *Appearance) GetName() string {
return a.name
}
// GetMinClientVersion returns the minimum client version required
func (a *Appearance) GetMinClientVersion() int16 {
return a.minClient
}
// GetNameString returns the name as a string (alias for GetName for C++ compatibility)
func (a *Appearance) GetNameString() string {
return a.name
}
// SetName sets the appearance name
func (a *Appearance) SetName(name string) {
a.name = name
}
// SetMinClientVersion sets the minimum client version
func (a *Appearance) SetMinClientVersion(version int16) {
a.minClient = version
}
// IsCompatibleWithClient returns true if the appearance is compatible with the given client version
func (a *Appearance) IsCompatibleWithClient(clientVersion int16) bool {
return clientVersion >= a.minClient
}
// Clone creates a copy of the appearance
func (a *Appearance) Clone() *Appearance {
return &Appearance{
id: a.id,
name: a.name,
minClient: a.minClient,
}
}