From 40b09278af2388e525999ab48dadd475316808be Mon Sep 17 00:00:00 2001 From: Sky Johnson Date: Thu, 14 Aug 2025 12:44:56 -0500 Subject: [PATCH] finish explore page, fix coord display issue --- internal/routes/index.go | 24 ++++++++++++++++++------ internal/store/store.go | 9 +++------ templates/explore.html | 5 +++++ templates/leftside.html | 10 +++++----- 4 files changed, 31 insertions(+), 17 deletions(-) create mode 100644 templates/explore.html diff --git a/internal/routes/index.go b/internal/routes/index.go index 4bc1656..c5eb3a7 100644 --- a/internal/routes/index.go +++ b/internal/routes/index.go @@ -3,18 +3,26 @@ package routes import ( "dk/internal/actions" "dk/internal/middleware" + "dk/internal/models/users" "dk/internal/router" "dk/internal/template/components" "strconv" ) func Index(ctx router.Ctx, _ []string) { - user := middleware.GetCurrentUser(ctx) + user := ctx.UserValue("user").(*users.User) if user != nil { - if user.Currently == "In Town" { - ctx.Redirect("/town", 303) - return + redirectTo := "/explore" + switch user.Currently { + case "In Town": + redirectTo = "/town" + case "Exploring": + redirectTo = "/explore" + default: + redirectTo = "/explore" } + ctx.Redirect(redirectTo, 303) + return } components.RenderPage(ctx, "", "intro.html", nil) @@ -48,6 +56,10 @@ func Move(ctx router.Ctx, _ []string) { } func Explore(ctx router.Ctx, _ []string) { - ctx.SetContentType("text/plain") - ctx.SetBodyString("Exploring") + user := ctx.UserValue("user").(*users.User) + if user.Currently != "Exploring" { + ctx.Redirect("/", 303) + return + } + components.RenderPage(ctx, "", "explore.html", nil) } diff --git a/internal/store/store.go b/internal/store/store.go index 6b81e07..94230da 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -1,6 +1,7 @@ package store import ( + "maps" "encoding/json" "fmt" "os" @@ -65,9 +66,7 @@ func (bs *BaseStore[T]) RebuildIndices() { func (bs *BaseStore[T]) rebuildIndicesUnsafe() { allItems := make(map[int]*T, len(bs.items)) - for k, v := range bs.items { - allItems[k] = v - } + maps.Copy(allItems, bs.items) for name, builder := range bs.indexBuilders { bs.indices[name] = builder(allItems) @@ -354,9 +353,7 @@ func (bs *BaseStore[T]) GetAll() map[int]*T { bs.mu.RLock() defer bs.mu.RUnlock() result := make(map[int]*T, len(bs.items)) - for k, v := range bs.items { - result[k] = v - } + maps.Copy(result, bs.items) return result } diff --git a/templates/explore.html b/templates/explore.html new file mode 100644 index 0000000..065dc82 --- /dev/null +++ b/templates/explore.html @@ -0,0 +1,5 @@ +{include "layout.html"} + +{block "content"} +You are currently exploring. You've found nothing yet. +{/block} \ No newline at end of file diff --git a/templates/leftside.html b/templates/leftside.html index 756b8d6..b177973 100644 --- a/templates/leftside.html +++ b/templates/leftside.html @@ -8,18 +8,18 @@ {user.Currently} {/if} -
{user.X}{if user.X < 0}W{else}E{/if}, {user.Y}{if user.Y < 0}N{else}S{/if}
+
{user.X}{if user.X < 0}W{else}E{/if}, {user.Y}{if user.Y < 0}S{else}N{/if}
View Map
{csrf} - +
- - + +
- +