Add item DataComponent implements (part 1)
This commit is contained in:
22
level/component/attributemodifiers.go
Normal file
22
level/component/attributemodifiers.go
Normal file
@ -0,0 +1,22 @@
|
||||
package component
|
||||
|
||||
import "io"
|
||||
|
||||
var _ DataComponent = (*AttributeModifiers)(nil)
|
||||
|
||||
type AttributeModifiers struct{}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (AttributeModifiers) ID() string {
|
||||
return "minecraft:attribute_modifiers"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (a *AttributeModifiers) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (a *AttributeModifiers) WriteTo(w io.Writer) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
22
level/component/canbreak.go
Normal file
22
level/component/canbreak.go
Normal file
@ -0,0 +1,22 @@
|
||||
package component
|
||||
|
||||
import "io"
|
||||
|
||||
var _ DataComponent = (*CanBreak)(nil)
|
||||
|
||||
type CanBreak struct{}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (CanBreak) ID() string {
|
||||
return "minecraft:can_break"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (c *CanBreak) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (c *CanBreak) WriteTo(w io.Writer) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
22
level/component/canplaceon.go
Normal file
22
level/component/canplaceon.go
Normal file
@ -0,0 +1,22 @@
|
||||
package component
|
||||
|
||||
import "io"
|
||||
|
||||
var _ DataComponent = (*CanPlaceOn)(nil)
|
||||
|
||||
type CanPlaceOn struct{}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (CanPlaceOn) ID() string {
|
||||
return "minecraft:can_place_on"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (c *CanPlaceOn) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (c *CanPlaceOn) WriteTo(w io.Writer) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
90
level/component/components.go
Normal file
90
level/component/components.go
Normal file
@ -0,0 +1,90 @@
|
||||
package component
|
||||
|
||||
import pk "github.com/Tnze/go-mc/net/packet"
|
||||
|
||||
type DataComponent interface {
|
||||
pk.Field
|
||||
ID() string
|
||||
}
|
||||
|
||||
func NewComponent(id int32) DataComponent {
|
||||
switch id {
|
||||
case 0:
|
||||
return new(CustomData)
|
||||
case 1:
|
||||
return new(MaxStackSize)
|
||||
case 2:
|
||||
return new(MaxDamage)
|
||||
case 3:
|
||||
return new(Damage)
|
||||
case 4:
|
||||
return new(Unbreakable)
|
||||
case 5:
|
||||
return new(CustomName)
|
||||
case 6:
|
||||
return new(ItemName)
|
||||
case 7:
|
||||
return new(Lore)
|
||||
case 8:
|
||||
return new(Rarity)
|
||||
case 9:
|
||||
return new(Enchantments)
|
||||
case 10:
|
||||
return new(CanPlaceOn)
|
||||
case 11:
|
||||
return new(CanBreak)
|
||||
case 12:
|
||||
return new(AttributeModifiers)
|
||||
case 13:
|
||||
return new(CustomModelData)
|
||||
case 14:
|
||||
return new(HideAdditionalTooptip)
|
||||
case 15:
|
||||
return new(HideTooptip)
|
||||
case 16:
|
||||
return new(RepairCost)
|
||||
case 17:
|
||||
return new(CreativeSlotLock)
|
||||
case 18:
|
||||
case 19:
|
||||
case 20:
|
||||
case 21:
|
||||
case 22:
|
||||
case 23:
|
||||
case 24:
|
||||
case 25:
|
||||
case 26:
|
||||
case 27:
|
||||
case 28:
|
||||
case 29:
|
||||
case 30:
|
||||
case 31:
|
||||
case 32:
|
||||
case 33:
|
||||
case 34:
|
||||
case 35:
|
||||
case 36:
|
||||
case 37:
|
||||
case 38:
|
||||
case 39:
|
||||
case 40:
|
||||
case 41:
|
||||
case 42:
|
||||
case 43:
|
||||
return new(Recipes)
|
||||
case 44:
|
||||
case 45:
|
||||
case 46:
|
||||
case 47:
|
||||
case 48:
|
||||
case 49:
|
||||
case 50:
|
||||
case 51:
|
||||
case 52:
|
||||
case 53:
|
||||
case 54:
|
||||
case 55:
|
||||
case 56:
|
||||
}
|
||||
return nil
|
||||
}
|
10
level/component/components_test.go
Normal file
10
level/component/components_test.go
Normal file
@ -0,0 +1,10 @@
|
||||
package component_test
|
||||
|
||||
// func TestNewComponent(t *testing.T) {
|
||||
// for i, want := range registryid.DataComponentType {
|
||||
// comp := component.NewComponent(int32(i))
|
||||
// if got := comp.ID(); got != want {
|
||||
// t.Errorf("DataComponent type mismatched: %s != %s", got, want)
|
||||
// }
|
||||
// }
|
||||
// }
|
24
level/component/creativeslotlock.go
Normal file
24
level/component/creativeslotlock.go
Normal file
@ -0,0 +1,24 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*CreativeSlotLock)(nil)
|
||||
|
||||
type CreativeSlotLock struct{}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (c *CreativeSlotLock) ID() string {
|
||||
return "minecraft:creative_slot_lock"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (c *CreativeSlotLock) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (c *CreativeSlotLock) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return 0, nil
|
||||
}
|
29
level/component/customdata.go
Normal file
29
level/component/customdata.go
Normal file
@ -0,0 +1,29 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/Tnze/go-mc/nbt/dynbt"
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*CustomData)(nil)
|
||||
|
||||
type CustomData struct {
|
||||
dynbt.Value
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (CustomData) ID() string {
|
||||
return "minecraft:custom_data"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (c *CustomData) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return pk.NBT(c).ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (c *CustomData) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return pk.NBT(c).WriteTo(w)
|
||||
}
|
28
level/component/custommodeldata.go
Normal file
28
level/component/custommodeldata.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*CustomModelData)(nil)
|
||||
|
||||
type CustomModelData struct {
|
||||
Value pk.VarInt
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (CustomModelData) ID() string {
|
||||
return "minecraft:custom_model_data"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (c *CustomModelData) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return c.Value.ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (c *CustomModelData) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return c.Value.WriteTo(w)
|
||||
}
|
28
level/component/customname.go
Normal file
28
level/component/customname.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/Tnze/go-mc/chat"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*CustomName)(nil)
|
||||
|
||||
type CustomName struct {
|
||||
Name chat.Message
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (CustomName) ID() string {
|
||||
return "minecraft:custom_name"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (c *CustomName) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return c.Name.ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (c *CustomName) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return c.Name.WriteTo(w)
|
||||
}
|
28
level/component/damage.go
Normal file
28
level/component/damage.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*Damage)(nil)
|
||||
|
||||
type Damage struct {
|
||||
Damage pk.VarInt
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (Damage) ID() string {
|
||||
return "minecraft:damage"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (d *Damage) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return d.Damage.ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (d *Damage) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return d.Damage.WriteTo(w)
|
||||
}
|
22
level/component/enchantments.go
Normal file
22
level/component/enchantments.go
Normal file
@ -0,0 +1,22 @@
|
||||
package component
|
||||
|
||||
import "io"
|
||||
|
||||
var _ DataComponent = (*Enchantments)(nil)
|
||||
|
||||
type Enchantments struct{}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (Enchantments) ID() string {
|
||||
return "minecraft:enchantments"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (r *Enchantments) ReadFrom(reader io.Reader) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (r *Enchantments) WriteTo(writer io.Writer) (n int64, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
24
level/component/hideadditionaltooltio.go
Normal file
24
level/component/hideadditionaltooltio.go
Normal file
@ -0,0 +1,24 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*HideAdditionalTooptip)(nil)
|
||||
|
||||
type HideAdditionalTooptip struct{}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (HideAdditionalTooptip) ID() string {
|
||||
return "minecraft:hide_additional_tooltip"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (h *HideAdditionalTooptip) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (h *HideAdditionalTooptip) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return 0, nil
|
||||
}
|
24
level/component/hidetooltip.go
Normal file
24
level/component/hidetooltip.go
Normal file
@ -0,0 +1,24 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*HideTooptip)(nil)
|
||||
|
||||
type HideTooptip struct{}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (HideTooptip) ID() string {
|
||||
return "minecraft:hide_tooltip"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (h *HideTooptip) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (h *HideTooptip) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return 0, nil
|
||||
}
|
28
level/component/itemname.go
Normal file
28
level/component/itemname.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/Tnze/go-mc/chat"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*ItemName)(nil)
|
||||
|
||||
type ItemName struct {
|
||||
Name chat.Message
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (ItemName) ID() string {
|
||||
return "minecraft:item_name"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (i *ItemName) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return i.Name.ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (i *ItemName) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return i.Name.WriteTo(w)
|
||||
}
|
29
level/component/lore.go
Normal file
29
level/component/lore.go
Normal file
@ -0,0 +1,29 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/Tnze/go-mc/chat"
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*Lore)(nil)
|
||||
|
||||
type Lore struct {
|
||||
Lines []chat.Message
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (Lore) ID() string {
|
||||
return "minecraft:lore"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (l *Lore) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return pk.Array(&l.Lines).ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (l *Lore) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return pk.Array(&l.Lines).WriteTo(w)
|
||||
}
|
28
level/component/maxdamage.go
Normal file
28
level/component/maxdamage.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*MaxDamage)(nil)
|
||||
|
||||
type MaxDamage struct {
|
||||
MaxDamage pk.VarInt
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (MaxDamage) ID() string {
|
||||
return "minecraft:max_damage"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (m *MaxDamage) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return m.MaxDamage.ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (m *MaxDamage) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return m.MaxDamage.WriteTo(w)
|
||||
}
|
28
level/component/maxstacksize.go
Normal file
28
level/component/maxstacksize.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*MaxStackSize)(nil)
|
||||
|
||||
type MaxStackSize struct {
|
||||
MaxStackSize pk.VarInt
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (MaxStackSize) ID() string {
|
||||
return "minecraft:max_stack_size"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (m *MaxStackSize) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return m.MaxStackSize.ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (m *MaxStackSize) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return m.MaxStackSize.WriteTo(w)
|
||||
}
|
33
level/component/rarity.go
Normal file
33
level/component/rarity.go
Normal file
@ -0,0 +1,33 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*Rarity)(nil)
|
||||
|
||||
type Rarity int32
|
||||
|
||||
const (
|
||||
Common Rarity = iota
|
||||
Uncommon
|
||||
Rare
|
||||
Epic
|
||||
)
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (Rarity) ID() string {
|
||||
return "minecraft:rarity"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (r *Rarity) ReadFrom(reader io.Reader) (n int64, err error) {
|
||||
return (*pk.VarInt)(r).ReadFrom(reader)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (r *Rarity) WriteTo(writer io.Writer) (n int64, err error) {
|
||||
return (*pk.VarInt)(r).WriteTo(writer)
|
||||
}
|
29
level/component/recipes.go
Normal file
29
level/component/recipes.go
Normal file
@ -0,0 +1,29 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/Tnze/go-mc/nbt/dynbt"
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*Recipes)(nil)
|
||||
|
||||
type Recipes struct {
|
||||
Data dynbt.Value
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (Recipes) ID() string {
|
||||
return "minecraft:recipes"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (r *Recipes) ReadFrom(reader io.Reader) (n int64, err error) {
|
||||
return pk.NBT(&r.Data).ReadFrom(reader)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (r *Recipes) WriteTo(writer io.Writer) (n int64, err error) {
|
||||
return pk.NBT(&r.Data).WriteTo(writer)
|
||||
}
|
28
level/component/repaircost.go
Normal file
28
level/component/repaircost.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*RepairCost)(nil)
|
||||
|
||||
type RepairCost struct {
|
||||
Cost pk.VarInt
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (RepairCost) ID() string {
|
||||
return "minecraft:repair_cost"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (r *RepairCost) ReadFrom(reader io.Reader) (n int64, err error) {
|
||||
return r.Cost.ReadFrom(reader)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (r *RepairCost) WriteTo(writer io.Writer) (n int64, err error) {
|
||||
return r.Cost.WriteTo(writer)
|
||||
}
|
28
level/component/unbreakable.go
Normal file
28
level/component/unbreakable.go
Normal file
@ -0,0 +1,28 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
pk "github.com/Tnze/go-mc/net/packet"
|
||||
)
|
||||
|
||||
var _ DataComponent = (*Unbreakable)(nil)
|
||||
|
||||
type Unbreakable struct {
|
||||
ShowInTooltip pk.Boolean
|
||||
}
|
||||
|
||||
// ID implements DataComponent.
|
||||
func (Unbreakable) ID() string {
|
||||
return "minecraft:unbreakable"
|
||||
}
|
||||
|
||||
// ReadFrom implements DataComponent.
|
||||
func (u *Unbreakable) ReadFrom(r io.Reader) (n int64, err error) {
|
||||
return u.ShowInTooltip.ReadFrom(r)
|
||||
}
|
||||
|
||||
// WriteTo implements DataComponent.
|
||||
func (u *Unbreakable) WriteTo(w io.Writer) (n int64, err error) {
|
||||
return u.ShowInTooltip.WriteTo(w)
|
||||
}
|
Reference in New Issue
Block a user