player as object
This commit is contained in:
@@ -19,6 +19,7 @@ func (e *Engine) PlaygroundDraw(screen *ebiten.Image) {
|
||||
e.PlaygroundPlatformsDraw(screen)
|
||||
e.PlaygroundItemsDraw(screen)
|
||||
e.PlaygroundNPCsDraw(screen)
|
||||
e.PlaygroundDefaultPlayerDraw(screen)
|
||||
}
|
||||
|
||||
func (e *Engine) PlaygroundBackgroundDraw(screen *ebiten.Image) {
|
||||
@@ -66,6 +67,17 @@ func (e *Engine) PlaygroundNPCsDraw(screen *ebiten.Image) {
|
||||
}
|
||||
}
|
||||
|
||||
func (e *Engine) PlaygroundDefaultPlayerDraw(screen *ebiten.Image) {
|
||||
player := e.Domain.GetDefaultPlayer()
|
||||
geoM := ebiten.GeoM{}
|
||||
render := player.Type.Render
|
||||
geoM.Reset()
|
||||
geoM.Translate(float64(player.Position.X), float64(player.Position.Y))
|
||||
screen.DrawImage(e.GetImage(render), &ebiten.DrawImageOptions{
|
||||
GeoM: geoM,
|
||||
})
|
||||
}
|
||||
|
||||
func (e *Engine) GetPlayground() konstructor.Playground {
|
||||
level := e.Domain.GetLevel(e.KContext.CurrentLevel)
|
||||
return level.Playgrounds[e.KContext.CurrentPlayground]
|
||||
|
||||
@@ -4,6 +4,7 @@ type DomainBaseFields struct {
|
||||
MenuMap MenuMap
|
||||
DialogMap DialogMap
|
||||
Levels []Level
|
||||
Players []Player
|
||||
PlatformTypeMap PlatformTypeMap
|
||||
ItemTypeMap ItemTypeMap
|
||||
NPCTypeMap NPCTypeMap
|
||||
@@ -23,6 +24,10 @@ type DomainInterface interface {
|
||||
GetLevels() []Level
|
||||
GetLevel(index int) Level
|
||||
|
||||
GetPlayers() []Player
|
||||
GetPlayer(index int) Player
|
||||
GetDefaultPlayer() Player
|
||||
|
||||
GetPlatformTypeMap() PlatformTypeMap
|
||||
GetPlatformType(name PlatformTypeMapKey) PlatformType
|
||||
|
||||
|
||||
@@ -6,11 +6,7 @@ type KContext struct {
|
||||
ActiveDialog DialogMapKey
|
||||
CurrentLevel int
|
||||
CurrentPlayground int
|
||||
Players []Player
|
||||
}
|
||||
|
||||
func (c *KContext) getPrimaryPlayer() Player {
|
||||
return c.Players[0]
|
||||
Multiplayer bool
|
||||
}
|
||||
|
||||
func (c *KContext) ScreenTypeIs(name ScreenType) bool {
|
||||
|
||||
@@ -6,6 +6,7 @@ const (
|
||||
ItemObjectType ObjectType = "item"
|
||||
NPCObjectType ObjectType = "npc"
|
||||
PlatformObjectType ObjectType = "platform"
|
||||
PlayerObjectType ObjectType = "player"
|
||||
)
|
||||
|
||||
type ObjectDirectoryMap map[ObjectType]string
|
||||
@@ -14,6 +15,7 @@ var ObjectDirectories = ObjectDirectoryMap{
|
||||
ItemObjectType: "items",
|
||||
NPCObjectType: "npcs",
|
||||
PlatformObjectType: "platforms",
|
||||
PlayerObjectType: "players",
|
||||
}
|
||||
|
||||
func GetObjectDirectory(name ObjectType) string {
|
||||
|
||||
29
konstructor/object.player.go
Normal file
29
konstructor/object.player.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package konstructor
|
||||
|
||||
type PlayerTypeID string
|
||||
|
||||
type InventoryItem struct {
|
||||
Item Item
|
||||
Used bool
|
||||
Active bool
|
||||
}
|
||||
|
||||
type Inventory struct {
|
||||
Items []InventoryItem
|
||||
}
|
||||
|
||||
type PlayerType struct {
|
||||
ID PlayerTypeID
|
||||
Render Render
|
||||
}
|
||||
|
||||
type Player struct {
|
||||
ID string
|
||||
Type PlayerType
|
||||
Position Position
|
||||
Inventory Inventory
|
||||
}
|
||||
|
||||
func GetPlayerTypeImagePath(name PlayerTypeID) string {
|
||||
return GetObjectDirectory(PlayerObjectType) + string(name) + ".png"
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
package konstructor
|
||||
|
||||
type InventoryItem struct {
|
||||
Item Item
|
||||
Used bool
|
||||
Active bool
|
||||
}
|
||||
|
||||
type Inventory struct {
|
||||
Items []InventoryItem
|
||||
}
|
||||
|
||||
type Player struct {
|
||||
ID string
|
||||
Render Render
|
||||
Position Position
|
||||
Inventory Inventory
|
||||
}
|
||||
Reference in New Issue
Block a user