merge master

This commit is contained in:
anton.gurov
2019-11-13 11:00:33 +03:00
21 changed files with 611 additions and 90 deletions

View File

@ -202,7 +202,7 @@ func (ps *precomputedShade) recalc(level *gamemap.Level, initCoords types.Coords
ps.originCoords = initCoords
if radius > ps.MaxTorchRadius {
radius = ps.MaxTorchRadius //fixme
radius = ps.MaxTorchRadius
}
level.GetTile(initCoords).Visible = true

View File

@ -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),

View File

@ -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()

View File

@ -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,
}

6
engine/types/egde.go Normal file
View File

@ -0,0 +1,6 @@
package types
type Edge struct {
From Coords
To Coords
}

View File

@ -1,7 +1,7 @@
package types
import (
"lab.zaar.be/thefish/alchemyst-go/util"
"lab.zaar.be/thefish/alchemyst-go/util/appctx"
)
type Screen interface {
@ -13,14 +13,14 @@ type Screen interface {
}
type ScreenManager struct {
ctx util.ClientCtx
Screens map[string]Screen
CurrentScreen Screen
ctx appctx.ClientCtx
Screens map[string]Screen
CurrentScreen Screen
PreviousScreen Screen
}
// NewScreenManager is a convenience/constructor method to properly initialize a new ScreenManager
func NewScreenManager(ctx util.ClientCtx) *ScreenManager {
func NewScreenManager(ctx appctx.ClientCtx) *ScreenManager {
manager := ScreenManager{
ctx:ctx,
Screens: make(map[string]Screen),