Title here
Summary here
1package main
2
3import (
4 "embed"
5 "log"
6
7 "github.com/TheBitDrifter/bappa/blueprint"
8 "github.com/TheBitDrifter/bappa/blueprint/client"
9 "github.com/TheBitDrifter/bappa/coldbrew"
10 "github.com/TheBitDrifter/bappa/coldbrew/coldbrew_rendersystems"
11 "github.com/TheBitDrifter/bappa/tteokbokki/spatial"
12 "github.com/TheBitDrifter/bappa/warehouse"
13)
14
15//go:embed assets/*
16var assets embed.FS
17
18func main() {
19 client := coldbrew.NewClient(
20 640,
21 360,
22 10,
23 10,
24 10,
25 assets,
26 )
27
28 client.SetTitle("Rendering a Sprite")
29
30 err := client.RegisterScene(
31 "Example Scene",
32 640,
33 360,
34 exampleScenePlan,
35 []coldbrew.RenderSystem{},
36 []coldbrew.ClientSystem{},
37 []blueprint.CoreSystem{},
38 )
39 if err != nil {
40 log.Fatal(err)
41 }
42
43 client.RegisterGlobalRenderSystem(coldbrew_rendersystems.GlobalRenderer{})
44
45 client.ActivateCamera()
46
47 if err := client.Start(); err != nil {
48 log.Fatal(err)
49 }
50}
51
52func exampleScenePlan(height, width int, sto warehouse.Storage) error {
53 spriteArchetype, err := sto.NewOrExistingArchetype(
54 spatial.Components.Position,
55 client.Components.SpriteBundle,
56 )
57 if err != nil {
58 return err
59 }
60
61 err = spriteArchetype.Generate(1,
62 spatial.NewPosition(255, 20),
63 client.NewSpriteBundle().
64 AddSprite("sprite.png", true),
65 )
66 if err != nil {
67 return err
68 }
69 return nil
70}