diff --git a/domain/domain.go b/domain/domain.go index ba941d1..03817a6 100644 --- a/domain/domain.go +++ b/domain/domain.go @@ -5,10 +5,11 @@ import ( ) type Domain struct { - Context Context - MenuMap konstructor.MenuMap - DialogMap konstructor.DialogMap - Levels []konstructor.Level + Context Context + MenuMap konstructor.MenuMap + DialogMap konstructor.DialogMap + Levels []konstructor.Level + ObjectTypeMap konstructor.ObjectTypeMap } func (d *Domain) Init() { diff --git a/domain/level.go b/domain/level.go index 2068fa6..7636b9e 100644 --- a/domain/level.go +++ b/domain/level.go @@ -20,14 +20,7 @@ func (d *Domain) InitLevel() { Y: 10, Z: 0, }, - Type: konstructor.ObjectType{ - ID: "test_object_type", - Render: konstructor.Render{ - Image: "assets/images/objects/test_object.png", - Width: 30, - Height: 30, - }, - }, + Type: d.GetObjectType("TestObjectType"), }, { ID: "test_object2", @@ -36,14 +29,7 @@ func (d *Domain) InitLevel() { Y: 50, Z: 0, }, - Type: konstructor.ObjectType{ - ID: "test_object_type", - Render: konstructor.Render{ - Image: "assets/images/objects/test_object.png", - Width: 30, - Height: 30, - }, - }, + Type: d.GetObjectType("TestObjectType"), }, }, }, diff --git a/domain/object_type.go b/domain/object_type.go new file mode 100644 index 0000000..6020ef0 --- /dev/null +++ b/domain/object_type.go @@ -0,0 +1,25 @@ +package domain + +import "game/konstructor" + +func (d *Domain) InitObjectType() { + d.ObjectTypeMap = konstructor.ObjectTypeMap{ + "TestObjectType": konstructor.ObjectType{ + ID: "test_object_type", + Render: konstructor.Render{ + Image: "assets/images/objects/test_object.png", + Width: 30, + Height: 30, + }, + }, + } +} + +func (d *Domain) GetObjectTypeMap() konstructor.ObjectTypeMap { + return d.ObjectTypeMap +} + +func (d *Domain) GetObjectType(name string) konstructor.ObjectType { + value, _ := d.ObjectTypeMap[name] + return value +} diff --git a/konstructor/entity.domain.go b/konstructor/entity.domain.go index 0633329..837efe1 100644 --- a/konstructor/entity.domain.go +++ b/konstructor/entity.domain.go @@ -14,6 +14,9 @@ type DomainInterface interface { GetLevels() []Level GetLevel(index int) Level + GetObjectTypeMap() ObjectTypeMap + GetObjectType(name string) ObjectType + AddToInventory(item *Item) bool RemoveFromInventory(item *Item) bool UseInventoryItem(item *Item) bool diff --git a/konstructor/entity.object.go b/konstructor/entity.object.go index 5733428..ca77de5 100644 --- a/konstructor/entity.object.go +++ b/konstructor/entity.object.go @@ -1,5 +1,7 @@ package konstructor +type ObjectTypeMap map[string]ObjectType + type ObjectType struct { ID string Render Render