Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ColOfFunc = func(tiles map[string]jumble.Tile) function.Function { return function.New(&function.Spec{ Params: []function.Parameter{ { Name: "origin", Type: cty.String, }, }, Type: function.StaticReturnType(cty.Number), Impl: func(args []cty.Value, retType cty.Type) (ret cty.Value, err error) { var origin string if err := gocty.FromCtyValue(args[0], &origin); err != nil { return cty.NumberIntVal(-1), err } t, ok := tiles[origin] if !ok { return cty.NumberIntVal(-1), fmt.Errorf("tile (ID: %s) not found", origin) } _, col := t.Location() return cty.NumberIntVal(int64(col)), nil }, }) }
View Source
var MakeURIFunc = function.New(&function.Spec{ Params: []function.Parameter{ { Name: "elem1", Type: cty.String, }, { Name: "elem2", Type: cty.String, }, }, Type: function.StaticReturnType(cty.String), Impl: func(args []cty.Value, retType cty.Type) (ret cty.Value, err error) { var elem1, elem2 string if err := gocty.FromCtyValue(args[0], &elem1); err != nil { return cty.UnknownVal(cty.String), err } if err := gocty.FromCtyValue(args[1], &elem2); err != nil { return cty.UnknownVal(cty.String), err } if strings.HasPrefix(elem1, "http") { u, err := url.Parse(elem1) if err != nil { return cty.UnknownVal(cty.String), err } u.Path = path.Join(u.Path, elem2) return cty.StringVal(u.String()), nil } return cty.StringVal(filepath.Join(elem1, elem2)), nil }, })
MakeURIFunc constructs a function that joins a baseUri with a path.
View Source
var MoveFunc = func(tiles map[string]jumble.Tile) function.Function { return function.New(&function.Spec{ Params: []function.Parameter{ { Name: "origin", Type: cty.String, }, { Name: "steps", Type: cty.Number, }, { Name: "dir", Type: cty.String, }, }, Type: function.StaticReturnType(cty.Number), Impl: func(args []cty.Value, retType cty.Type) (ret cty.Value, err error) { var origin string if err := gocty.FromCtyValue(args[0], &origin); err != nil { return cty.NumberIntVal(-1), err } var steps int64 if err := gocty.FromCtyValue(args[1], &steps); err != nil { return cty.NumberIntVal(-1), err } var dir string if err := gocty.FromCtyValue(args[2], &dir); err != nil { return cty.NumberIntVal(-1), err } t, ok := tiles[origin] if !ok { return cty.NumberIntVal(-1), fmt.Errorf("tile (ID: %s) not found", origin) } row, col := t.Location() switch dir = strings.ToLower(dir); dir { case "north": return cty.NumberIntVal(int64(row) - steps), nil case "east": return cty.NumberIntVal(int64(col) + steps), nil case "south": return cty.NumberIntVal(int64(row) + steps), nil case "west": return cty.NumberIntVal(int64(col) - steps), nil } return cty.NumberIntVal(1), fmt.Errorf("unknow direction: %s", dir) }, }) }
View Source
var RowOfFunc = func(tiles map[string]jumble.Tile) function.Function { return function.New(&function.Spec{ Params: []function.Parameter{ { Name: "origin", Type: cty.String, }, }, Type: function.StaticReturnType(cty.Number), Impl: func(args []cty.Value, retType cty.Type) (ret cty.Value, err error) { var origin string if err := gocty.FromCtyValue(args[0], &origin); err != nil { return cty.NumberIntVal(-1), err } t, ok := tiles[origin] if !ok { return cty.NumberIntVal(-1), fmt.Errorf("tile (ID: %s) not found", origin) } row, _ := t.Location() return cty.NumberIntVal(int64(row)), nil }, }) }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.