merge master
This commit is contained in:
@ -3,7 +3,7 @@ package gamemap
|
||||
import (
|
||||
"lab.zaar.be/thefish/alchemyst-go/engine/ecs"
|
||||
"lab.zaar.be/thefish/alchemyst-go/engine/types"
|
||||
"lab.zaar.be/thefish/alchemyst-go/util"
|
||||
"lab.zaar.be/thefish/alchemyst-go/util/appctx"
|
||||
)
|
||||
|
||||
//fixme move to config
|
||||
@ -13,12 +13,12 @@ var mapHeight = 90
|
||||
|
||||
type Level struct {
|
||||
types.Rect
|
||||
ctx util.ClientCtx
|
||||
Name string
|
||||
Branch string
|
||||
Depth int
|
||||
Objects *[]ecs.Entity
|
||||
Tiles []*Tile
|
||||
ctx appctx.ClientCtx
|
||||
Name string
|
||||
Branch string
|
||||
Depth int
|
||||
Objects *[]ecs.Entity
|
||||
Tiles []*Tile
|
||||
}
|
||||
|
||||
func (l *Level) GetTile (coords types.Coords) *Tile {
|
||||
@ -63,7 +63,7 @@ func (l *Level) Put (x, y int, tileFunc interface{}) {
|
||||
}
|
||||
}
|
||||
|
||||
func NewLevel(ctx util.ClientCtx, branch string, depth int) *Level {
|
||||
func NewLevel(ctx appctx.ClientCtx, branch string, depth int) *Level {
|
||||
l := &Level{
|
||||
ctx: ctx,
|
||||
Name: branch + string(depth),
|
||||
|
@ -5,12 +5,13 @@ import (
|
||||
"lab.zaar.be/thefish/alchemyst-go/engine/gamemap"
|
||||
"lab.zaar.be/thefish/alchemyst-go/engine/types"
|
||||
"lab.zaar.be/thefish/alchemyst-go/util"
|
||||
"lab.zaar.be/thefish/alchemyst-go/util/appctx"
|
||||
)
|
||||
|
||||
//fixme move to config
|
||||
var minRoomSize = 3
|
||||
var maxRoomSize = 22
|
||||
var maxrooms = 20
|
||||
var maxRoomSize = 15
|
||||
var maxrooms = 50
|
||||
|
||||
var fges = map[int]types.RectFill{
|
||||
1: types.RectFill{
|
||||
@ -38,7 +39,7 @@ var fges = map[int]types.RectFill{
|
||||
},
|
||||
}
|
||||
|
||||
func DefaultGen(ctx util.ClientCtx,l *gamemap.Level) (*gamemap.Level, []gamemap.Room) {
|
||||
func DefaultGen(ctx appctx.ClientCtx,l *gamemap.Level) (*gamemap.Level, []gamemap.Room) {
|
||||
|
||||
rng := util.NewRNG()
|
||||
|
||||
|
@ -6,7 +6,7 @@ import (
|
||||
"lab.zaar.be/thefish/alchemyst-go/engine/items"
|
||||
"lab.zaar.be/thefish/alchemyst-go/engine/mob"
|
||||
"lab.zaar.be/thefish/alchemyst-go/engine/types"
|
||||
"lab.zaar.be/thefish/alchemyst-go/util"
|
||||
"lab.zaar.be/thefish/alchemyst-go/util/appctx"
|
||||
)
|
||||
|
||||
type PrefabFile struct {
|
||||
@ -30,7 +30,7 @@ type PrefabRecord struct {
|
||||
|
||||
func LoadPrefabFile(filename string) (*PrefabFile, error) {
|
||||
data, err := ioutil.ReadFile(filename)
|
||||
if err != nil {
|
||||
if err!= nil {
|
||||
return nil, err
|
||||
}
|
||||
instance := &PrefabFile{}
|
||||
@ -42,10 +42,10 @@ func LoadPrefabFile(filename string) (*PrefabFile, error) {
|
||||
}
|
||||
|
||||
type PrefabLoader struct {
|
||||
ctx util.ClientCtx
|
||||
ctx appctx.ClientCtx
|
||||
}
|
||||
|
||||
func NewPrefabLoader(ctx util.ClientCtx) PrefabLoader {
|
||||
func NewPrefabLoader(ctx appctx.ClientCtx) PrefabLoader {
|
||||
return PrefabLoader{ctx: ctx}
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ func (pfbl PrefabLoader) PrefabRoomsList() []Room {
|
||||
|
||||
rooms := make([]Room, 0)
|
||||
file, err := LoadPrefabFile("./assets/prefabs/test.json")
|
||||
if err != nil {
|
||||
if err !=nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
@ -63,23 +63,23 @@ func (pfbl PrefabLoader) PrefabRoomsList() []Room {
|
||||
currentMobsLegend := file.DefaultMobsLegend
|
||||
currentItemLegend := file.DefaultItemLegend
|
||||
|
||||
for k, v := range rawPrefab.TileLegend {
|
||||
for k,v := range rawPrefab.TileLegend {
|
||||
currentTileLegend[k] = v
|
||||
}
|
||||
for k, v := range rawPrefab.MobsLegend {
|
||||
for k,v := range rawPrefab.MobsLegend {
|
||||
currentMobsLegend[k] = v
|
||||
}
|
||||
for k, v := range rawPrefab.ItemLegend {
|
||||
for k,v := range rawPrefab.ItemLegend {
|
||||
currentItemLegend[k] = v
|
||||
}
|
||||
|
||||
room := Room{
|
||||
Rect: types.Rect{0, 0, rawPrefab.Size.X, rawPrefab.Size.Y},
|
||||
Center: types.Coords{rawPrefab.Size.X / 2, rawPrefab.Size.Y / 2}, //fixme
|
||||
Geometry: make([]func() *Tile, rawPrefab.Size.X*rawPrefab.Size.Y),
|
||||
Mobs: make([]mob.Mob, rawPrefab.Size.X*rawPrefab.Size.Y),
|
||||
Items: make([]items.Carried, rawPrefab.Size.X*rawPrefab.Size.Y),
|
||||
Connectors: make([]types.Coords, 0),
|
||||
Rect:types.Rect{0, 0, rawPrefab.Size.X, rawPrefab.Size.Y},
|
||||
Center: types.Coords{rawPrefab.Size.X / 2, rawPrefab.Size.Y / 2}, //fixme
|
||||
Geometry: make([]func()*Tile, rawPrefab.Size.X*rawPrefab.Size.Y),
|
||||
Mobs: make([]mob.Mob, rawPrefab.Size.X*rawPrefab.Size.Y),
|
||||
Items: make([]items.Carried, rawPrefab.Size.X*rawPrefab.Size.Y),
|
||||
Connectors: make([]types.Coords, 0),
|
||||
}
|
||||
//make geometry
|
||||
var f func() *Tile
|
||||
@ -89,7 +89,7 @@ func (pfbl PrefabLoader) PrefabRoomsList() []Room {
|
||||
if len(str) != room.W {
|
||||
continue;
|
||||
}
|
||||
for i := 0; i < room.W; i++ {
|
||||
for i:=0; i < room.W; i++ {
|
||||
ok := false
|
||||
shortName := currentTileLegend[string(str[i])]
|
||||
if shortName == "" {
|
||||
@ -100,15 +100,14 @@ func (pfbl PrefabLoader) PrefabRoomsList() []Room {
|
||||
}
|
||||
if shortName == "connector" {
|
||||
f = NewFloor
|
||||
room.Connectors = append(room.Connectors, types.Coords{i, j})
|
||||
room.Connectors = append(room.Connectors, types.Coords{i,j})
|
||||
} else {
|
||||
f, ok = TileTypeMap[shortName]
|
||||
|
||||
if (!ok) {
|
||||
pfbl.ctx.Logger().Warn().Msgf("Unknown tile: %s", shortName)
|
||||
}
|
||||
}
|
||||
room.Geometry[i+j*room.W] = f
|
||||
room.Geometry[i+ j*room.W] = f
|
||||
}
|
||||
}
|
||||
//add room to list
|
||||
@ -117,10 +116,10 @@ func (pfbl PrefabLoader) PrefabRoomsList() []Room {
|
||||
return rooms
|
||||
}
|
||||
|
||||
var TileTypeMap = map[string]func() *Tile{
|
||||
"wall": NewWall,
|
||||
"floor": NewFloor,
|
||||
var TileTypeMap = map[string]func()*Tile{
|
||||
"wall": NewWall,
|
||||
"floor": NewFloor,
|
||||
"decorated_wall": NewDecoratedWall,
|
||||
"water": NewWaterTile,
|
||||
"deep_water": NewDeepWaterTile,
|
||||
"water": NewWaterTile,
|
||||
"deep_water": NewDeepWaterTile,
|
||||
}
|
||||
|
Reference in New Issue
Block a user