| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | package main | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2024-02-26 12:56:12 +01:00
										 |  |  | 	"fmt" | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | 	"log" | 
					
						
							| 
									
										
										
										
											2024-02-13 18:42:13 +01:00
										 |  |  | 	"log/slog" | 
					
						
							| 
									
										
										
										
											2024-02-26 12:56:12 +01:00
										 |  |  | 	"openquell/config" | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | 	"openquell/game" | 
					
						
							| 
									
										
										
										
											2024-02-13 18:42:13 +01:00
										 |  |  | 	"os" | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-26 12:56:12 +01:00
										 |  |  | 	"github.com/alecthomas/repr" | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | 	"github.com/hajimehoshi/ebiten/v2" | 
					
						
							| 
									
										
										
										
											2024-02-13 18:42:13 +01:00
										 |  |  | 	"github.com/tlinden/yadu" | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const ( | 
					
						
							| 
									
										
										
										
											2024-02-11 14:24:30 +01:00
										 |  |  | 	width    int = 640 | 
					
						
							|  |  |  | 	height   int = 480 | 
					
						
							|  |  |  | 	cellsize int = 32 | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func main() { | 
					
						
							|  |  |  | 	ebiten.SetWindowSize(width, height) | 
					
						
							|  |  |  | 	ebiten.SetWindowTitle("openquell") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-26 12:56:12 +01:00
										 |  |  | 	config, err := config.InitConfig() | 
					
						
							|  |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		log.Fatal(err) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	repr.Print(config) | 
					
						
							|  |  |  | 	if config.TPS > 0 { | 
					
						
							|  |  |  | 		fmt.Printf("Setting TPS to %d\n", config.TPS) | 
					
						
							|  |  |  | 		ebiten.SetMaxTPS(config.TPS) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-13 18:42:13 +01:00
										 |  |  | 	logLevel := &slog.LevelVar{} | 
					
						
							|  |  |  | 	opts := &yadu.Options{ | 
					
						
							|  |  |  | 		Level:     logLevel, | 
					
						
							|  |  |  | 		AddSource: true, | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-26 12:56:12 +01:00
										 |  |  | 	if config.Debug { | 
					
						
							|  |  |  | 		logLevel.Set(slog.LevelDebug) | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2024-02-13 18:42:13 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	handler := yadu.NewHandler(os.Stdout, opts) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	debuglogger := slog.New(handler) | 
					
						
							|  |  |  | 	slog.SetDefault(debuglogger) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-26 12:56:12 +01:00
										 |  |  | 	g := game.NewGame(width, height, cellsize, config, game.Welcome) | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-26 12:56:12 +01:00
										 |  |  | 	err = ebiten.RunGame(g) | 
					
						
							| 
									
										
										
										
											2024-02-06 15:26:20 +01:00
										 |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		log.Fatalf("unable to run game: %s", err) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |