From 1f2273c0287f4ccb81d0935df74f823ca923751e Mon Sep 17 00:00:00 2001 From: Kolby Nottingham Date: Wed, 24 Apr 2024 15:34:08 -0700 Subject: [PATCH] more buildings --- andy_npc.json | 9 +- .../{hole.json => dirt_shelter.json} | 2 +- src/agent/npc/construction/large_house.json | 230 ++++++++++++++++++ .../npc/construction/small_stone_house.json | 42 ++++ .../{house.json => small_wood_house.json} | 2 +- src/agent/npc/controller.js | 3 + 6 files changed, 280 insertions(+), 8 deletions(-) rename src/agent/npc/construction/{hole.json => dirt_shelter.json} (97%) create mode 100644 src/agent/npc/construction/large_house.json create mode 100644 src/agent/npc/construction/small_stone_house.json rename src/agent/npc/construction/{house.json => small_wood_house.json} (98%) diff --git a/andy_npc.json b/andy_npc.json index 4a13ea7..561f302 100644 --- a/andy_npc.json +++ b/andy_npc.json @@ -16,16 +16,13 @@ "do_set_goal": true, "goals": [ "wooden_pickaxe", - "hole", - "stone_axe", + "dirt_shelter", "stone_pickaxe", "stone_axe", - "house", + "small_wood_house", "furnace", "iron_pickaxe", - "iron_axe", - "iron_sword", - "iron_armor" + "iron_sword" ] }, diff --git a/src/agent/npc/construction/hole.json b/src/agent/npc/construction/dirt_shelter.json similarity index 97% rename from src/agent/npc/construction/hole.json rename to src/agent/npc/construction/dirt_shelter.json index 7a2c1f2..d5e8b28 100644 --- a/src/agent/npc/construction/hole.json +++ b/src/agent/npc/construction/dirt_shelter.json @@ -1,5 +1,5 @@ { - "name": "hole", + "name": "dirt_shelter", "offset": -2, "blocks": [ [ diff --git a/src/agent/npc/construction/large_house.json b/src/agent/npc/construction/large_house.json new file mode 100644 index 0000000..f40e0dd --- /dev/null +++ b/src/agent/npc/construction/large_house.json @@ -0,0 +1,230 @@ +{ + "name": "large_house", + "offset": -4, + "blocks": [ + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "air", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "air", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "air", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "planks", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "planks", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "cobblestone", "air", "torch", "air", "air", "air", "torch", "air", "cobblestone", ""], + ["", "cobblestone", "air", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "air", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "air", "air", "air", "air", "air", "air", "air", "cobblestone", ""], + ["", "cobblestone", "planks", "torch", "air", "air", "air", "torch", "air", "cobblestone", ""], + ["", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "", "", ""], + ["", "", "", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "", "", ""], + ["", "", "", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "", "", ""], + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["cobblestone", "cobblestone", "air", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "dirt"], + ["cobblestone", "cobblestone", "air", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["cobblestone", "cobblestone", "air", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "", "", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "", "", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "", "", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""], + ["", "", "", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone", ""] + ], + [ + ["", "", "", "log", "planks", "planks", "planks", "log", "", "", ""], + ["", "", "", "planks", "furnace", "air", "crafting_table", "planks", "", "", ""], + ["", "", "", "planks", "air", "air", "air", "planks", "", "", ""], + ["log", "planks", "planks", "log", "planks", "air", "planks", "log", "planks", "log", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "door", "air"], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["log", "planks", "planks", "log", "planks", "planks", "air", "planks", "planks", "log", ""], + ["", "", "", "planks", "air", "air", "air", "", "air", "planks", ""], + ["", "", "", "planks", "chest", "air", "air", "bed", "", "planks", ""], + ["", "", "", "planks", "chest", "air", "air", "", "air", "planks", ""], + ["", "", "", "log", "planks", "planks", "planks", "planks", "planks", "log", ""] + ], + [ + ["", "", "", "log", "planks", "planks", "planks", "log", "", "", ""], + ["", "", "", "planks", "air", "air", "air", "glass", "", "", ""], + ["", "", "", "planks", "air", "air", "air", "glass", "", "", ""], + ["log", "planks", "planks", "log", "planks", "air", "planks", "log", "planks", "log", ""], + ["planks", "air", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "door", "air"], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["log", "planks", "planks", "log", "planks", "planks", "air", "planks", "planks", "log", ""], + ["", "", "", "planks", "air", "air", "air", "air", "air", "planks", ""], + ["", "", "", "planks", "air", "air", "air", "air", "air", "planks", ""], + ["", "", "", "planks", "air", "air", "air", "air", "air", "planks", ""], + ["", "", "", "log", "planks", "glass", "glass", "glass", "planks", "log", ""] + ], + [ + ["", "", "", "log", "planks", "planks", "planks", "log", "", "", ""], + ["", "", "", "planks", "air", "air", "air", "glass", "", "", ""], + ["", "", "", "planks", "torch", "air", "torch", "glass", "", "", ""], + ["log", "planks", "planks", "log", "planks", "air", "planks", "log", "planks", "log", ""], + ["planks", "air", "air", "torch", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "air", "air", "air", "air", "air", "air", "air", "torch", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "planks", "air", "air", "air", "air", "air", "air", "torch", "planks", ""], + ["planks", "planks", "air", "torch", "air", "air", "air", "air", "air", "planks", ""], + ["log", "planks", "planks", "log", "planks", "planks", "air", "planks", "planks", "log", ""], + ["", "", "", "planks", "air", "torch", "air", "torch", "air", "planks", ""], + ["", "", "", "planks", "air", "air", "air", "air", "air", "planks", ""], + ["", "", "", "planks", "air", "air", "air", "air", "air", "planks", ""], + ["", "", "", "log", "planks", "glass", "glass", "glass", "planks", "log", ""] + ], + [ + ["", "", "", "log", "log", "log", "log", "log", "", "", ""], + ["", "", "", "log", "planks", "planks", "planks", "log", "", "", ""], + ["", "", "", "log", "planks", "planks", "planks", "log", "", "", ""], + ["log", "log", "log", "log", "log", "log", "log", "log", "log", "log", ""], + ["log", "air", "planks", "planks", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "air", "planks", "planks", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "air", "planks", "planks", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "planks", "planks", "planks", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "planks", "planks", "planks", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "log", "log", "log", "log", "log", "log", "log", "log", "log", ""], + ["", "", "", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["", "", "", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["", "", "", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["", "", "", "log", "log", "log", "log", "log", "log", "log", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "planks", "planks", "planks", "", "", "", ""], + ["", "", "", "", "planks", "planks", "planks", "", "", "", ""], + ["log", "planks", "planks", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["planks", "air", "bookshelf", "bookshelf", "air", "air", "air", "air", "torch", "planks", ""], + ["planks", "air", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "air", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "air", "air", "air", "air", "air", "air", "air", "air", "planks", ""], + ["planks", "air", "air", "air", "air", "air", "air", "air", "torch", "planks", ""], + ["log", "planks", "planks", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["log", "planks", "planks", "log", "glass", "glass", "glass", "glass", "glass", "log", ""], + ["glass", "air", "bookshelf", "bookshelf", "air", "air", "air", "air", "air", "planks", ""], + ["glass", "air", "air", "air", "air", "air", "air", "air", "air", "glass", ""], + ["glass", "air", "air", "air", "air", "air", "air", "air", "air", "glass", ""], + ["glass", "air", "air", "air", "air", "air", "air", "air", "air", "glass", ""], + ["glass", "air", "air", "air", "air", "air", "air", "air", "air", "glass", ""], + ["log", "planks", "planks", "log", "glass", "glass", "glass", "glass", "glass", "log", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["log", "planks", "planks", "log", "glass", "glass", "glass", "glass", "glass", "log", ""], + ["glass", "air", "air", "torch", "air", "air", "air", "air", "air", "glass", ""], + ["glass", "air", "air", "air", "air", "air", "air", "air", "air", "glass", ""], + ["glass", "air", "air", "air", "air", "air", "air", "air", "air", "glass", ""], + ["glass", "air", "air", "air", "air", "air", "air", "air", "air", "glass", ""], + ["glass", "air", "air", "torch", "air", "air", "air", "air", "air", "glass", ""], + ["log", "planks", "planks", "log", "glass", "glass", "glass", "glass", "glass", "log", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["log", "log", "log", "log", "log", "log", "log", "log", "log", "log", ""], + ["log", "planks", "planks", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "planks", "planks", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "planks", "planks", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "planks", "planks", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "planks", "planks", "log", "planks", "planks", "planks", "planks", "planks", "log", ""], + ["log", "log", "log", "log", "log", "log", "log", "log", "log", "log", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "planks", "planks", "planks", "planks", "planks", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ], + [ + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "planks", "planks", "planks", "", "", ""], + ["", "", "", "", "", "planks", "planks", "planks", "", "", ""], + ["", "", "", "", "", "planks", "planks", "planks", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""], + ["", "", "", "", "", "", "", "", "", "", ""] + ] + ] +} \ No newline at end of file diff --git a/src/agent/npc/construction/small_stone_house.json b/src/agent/npc/construction/small_stone_house.json new file mode 100644 index 0000000..baf4f65 --- /dev/null +++ b/src/agent/npc/construction/small_stone_house.json @@ -0,0 +1,42 @@ +{ + "name": "small_stone_house", + "offset": -1, + "blocks": [ + [ + ["", "", "", "", ""], + ["", "planks", "planks", "planks", ""], + ["", "planks", "planks", "planks", ""], + ["", "planks", "planks", "planks", ""], + ["", "planks", "planks", "planks", ""], + ["", "", "planks", "", ""], + ["", "", "", "", ""] + ], + [ + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone"], + ["cobblestone", "chest", "bed", "air", "cobblestone"], + ["cobblestone", "air", "bed", "air", "cobblestone"], + ["cobblestone", "air", "air", "air", "cobblestone"], + ["cobblestone", "air", "air", "air", "cobblestone"], + ["cobblestone", "cobblestone", "door", "cobblestone", "cobblestone"], + ["", "air", "air", "air", ""] + ], + [ + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone"], + ["cobblestone", "torch", "air", "torch", "cobblestone"], + ["cobblestone", "air", "air", "air", "cobblestone"], + ["cobblestone", "air", "air", "air", "cobblestone"], + ["cobblestone", "torch", "air", "torch", "cobblestone"], + ["cobblestone", "cobblestone", "door", "cobblestone", "cobblestone"], + ["", "air", "air", "air", ""] + ], + [ + ["air", "air", "air", "air", "air"], + ["air", "cobblestone", "cobblestone", "cobblestone", "air"], + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone"], + ["cobblestone", "cobblestone", "cobblestone", "cobblestone", "cobblestone"], + ["air", "cobblestone", "cobblestone", "cobblestone", "air"], + ["air", "air", "air", "air", "air"], + ["", "air", "air", "air", ""] + ] + ] +} \ No newline at end of file diff --git a/src/agent/npc/construction/house.json b/src/agent/npc/construction/small_wood_house.json similarity index 98% rename from src/agent/npc/construction/house.json rename to src/agent/npc/construction/small_wood_house.json index 0a3677d..9661ae5 100644 --- a/src/agent/npc/construction/house.json +++ b/src/agent/npc/construction/small_wood_house.json @@ -1,5 +1,5 @@ { - "name": "shelter", + "name": "small_wood_house", "offset": -1, "blocks": [ [ diff --git a/src/agent/npc/controller.js b/src/agent/npc/controller.js index bb650ea..7636dcc 100644 --- a/src/agent/npc/controller.js +++ b/src/agent/npc/controller.js @@ -123,6 +123,9 @@ export class NPCContoller { await this.executeGoal(); } else { + // Reset goal at the end of the day + this.data.curr_goal = null; + // Return to home let building = this.currentBuilding(); if (this.data.home !== null && (building === null || building != this.data.home)) {