66 lines
1.6 KiB
Go
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,
|
|
}
|
|
}
|