Added tons of WIP game data.

This commit is contained in:
2024-12-14 04:58:12 -05:00
parent 96417bf66d
commit 232aed317a
9 changed files with 468 additions and 2 deletions

View File

@@ -21,6 +21,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(cmake/CPM.cmake)
CPMAddPackage(
NAME mcolor
URL https://git.redacted.cc/maxine/mcolor/archive/Prerelease-5.zip
)
CPMAddPackage(
NAME J3ML
URL https://git.redacted.cc/josh/j3ml/archive/3.4.3.zip

View File

@@ -15,7 +15,7 @@ target_include_directories(CaveCore PUBLIC "include")
set_target_properties(CaveCore PROPERTIES LINKER_LANGUAGE CXX)
target_include_directories(CaveCore PUBLIC ${J3ML_SOURCE_DIR}/include)
target_include_directories(CaveCore PUBLIC ${mcolor}/include)
target_include_directories(CaveCore PUBLIC ${jjx_SOURCE_DIR}/include)
target_link_libraries(CaveCore PUBLIC J3ML jjx)
target_link_libraries(CaveCore PUBLIC J3ML jjx mcolor)

View File

@@ -0,0 +1,57 @@
#pragma once
namespace CaveGame::Core
{
/// A biome defines a region in the world with distinct characteristics, such as:
// Background textures / effects
// Terrain Generation
// Entity Spawns
// Generated Structures / Dungeons
// Music / Ambiance
// Weather
// Physics Modifiers
// Multiple biomes may be occur in a place at a time.
class Biome { };
#define BIOME static const Biome
/// List of biomes.
namespace Biomes {
// The world is split into horizontal slices, each controlled by a higher-level "Elevation Biome"
#pragma region Elevation Biomes
BIOME Space;
BIOME Surface;
BIOME Subsurface;
BIOME Underground;
BIOME Deep;
BIOME Mantle;
#pragma endregion
#pragma region Environmental Biomes
BIOME Grassland;
BIOME Forest;
BIOME DenseForest;
BIOME Tundra;
BIOME Taiga;
BIOME RedwoodForest;
BIOME WinterWonderland;
BIOME AshForest;
BIOME Desert;
BIOME Badlands;
BIOME BloodForest;
BIOME BlackForest;
BIOME Mountains;
BIOME SuperMountains;
BIOME Marsh;
BIOME Lake;
BIOME ContaminationZome;
BIOME Jungle;
BIOME FungusForest;
#pragma endregion
}
}

View File

@@ -0,0 +1,53 @@
#pragma once
namespace CaveGame::Core
{
class Furniture {
};
/// Furniture objects are multi-tile structures that aren't **necessarily** furniture in the normal sense, many are.
/// Furniture can be considered the CaveGame Engine's term for a contiguous structure that is larger than one tile.
/// This is differentiated from a generated structure in that each pixel of a Furniture object is bound to the whole, and cannot be broken in isolation.
namespace Furnitures {
static const Furniture Door;
static const Furniture TrapDoor;
static const Furniture Chair;
static const Furniture Table;
static const Furniture Workbench;
static const Furniture Campfire;
static const Furniture Barrel;
static const Furniture Safe;
static const Furniture Chest;
static const Furniture Furnace;
static const Furniture Fireplace;
static const Furniture Anvil;
static const Furniture HeavyWorkbench;
static const Furniture Grindstone;
static const Furniture BlastFurnace;
static const Furniture Printer3D;
static const Furniture CookingPot;
static const Furniture AlchemyStation;
static const Furniture ChemistrySet;
static const Furniture Bed;
static const Furniture PiggyBank;
static const Furniture Shelf;
static const Furniture Ladder;
static const Furniture Painting;
static const Furniture Signpost;
static const Furniture Blackboard;
static const Furniture Fridge;
static const Furniture Cooler;
static const Furniture Torch;
static const Furniture Lantern;
static const Furniture Candle;
static const Furniture Bottle;
static const Furniture CoffeeMug;
static const Furniture BeerMug;
static const Furniture Book;
static const Furniture
}
}

View File

@@ -68,6 +68,135 @@ namespace CaveGame::Core
std::set<std::string> BannedItems;
};
namespace StatusEffects {
}
namespace Items {
static const Item Straw;
static const Item Gel;
static const Item Glowstick;
static const Item RoastChicken;
static const Item PumpkinPie;
static const Item ShepherdsPie;
static const Item CopperBar;
static const Item IronBar;
static const Item SilverBar;
static const Item TungstenBar;
static const Item PlatinumBar;
static const Item GoldBar;
static const Item LeadBar;
static const Item ZiggyStardust;
static const Item Nimdoc;
static const Item OccupiedDwellinator;
static const Item SawnoffShotty;
#pragma region Tools
#pragma endregion
#pragma region Weapons
static const Item GutsyBlade;
#pragma region Daggers
static const Item CopperDagger;
static const Item IronDagger;
static const Item TinDagger;
static const Item SilverDagger;
#pragma endregion
#pragma endregion
#pragma region SciFi
static const Item Shrinkray;
static const Item PortalGun;
static const Item GravityGun;
static const Item TauCannon;
static const Item PhotonSabre;
#pragma endregion
#pragma region Armor
#pragma endregion
#pragma region Accessories
static const Item KittenEars;
static const Item WolfEars;
#pragma region
#pragma region Accessories
#pragma endregion
#pragma endregion
#pragma region Foodstuff
static const Item Wheat;
static const Item Rice;
#pragma region Fruit
static const Item Apple;
static const Item Orange;
static const Item Lemon;
static const Item Carrot;
static const Item Potato;
static const Item Onion;
static const Item Banana;
static const Item MelonSlice;
static const Item Tomato;
#pragma endregion
#pragma region Vegetables
#pragma endregion
#pragma region Cooked Dishes
#pragma endregion
#pragma region Soups
#pragma region Drinks
static const Item HotCocoa;
static const Item AppleCider;
static const Item MelonJuice;
#pragma endregion
#pragma region Potions
static const Item FeatherfallPotion;
static const Item HP100Potion;
static const Item HP250Potion;
static const Item HP500Potion;
static const Item HP2XPotion;
static const Item HP5XPotion;
static const Item HP10XPotion;
#pragma endregion
#pragma region Bottles
static const Item EmptyBottle;
static const Item WaterBottle;
static const Item HoneyBottle;
static const Item IceBottle;
static const Item OilBottle;
static const Item MilkBottle;
static const Item SludgeBottle;
static const Item EctoplasmBottle;
#pragma endregion
#pragma region Buckets
static const Item EmptyBucket;
static const Item WaterBucket;
static const Item IceBucket;
static const Item LavaBucket;
static const Item MilkBucket;
static const Item OilBucket;
static const Item SludgeBucket;
static const Item EctoplasmBucket;
#pragma endregion
}
}

View File

@@ -0,0 +1,33 @@
#pragma once
namespace CaveGame::Core
{
class StatusEffect {};
namespace Effects {
static const StatusEffect Comfy;
static const StatusEffect Hungry;
static const StatusEffect Thirsty;
static const StatusEffect Starving;
static const StatusEffect Dehydrated;
static const StatusEffect WellFed;
static const StatusEffect Bleeding;
static const StatusEffect Healing;
static const StatusEffect Poisoned;
static const StatusEffect Irradiated;
static const StatusEffect Glowing;
static const StatusEffect Burning;
static const StatusEffect Frozen;
static const StatusEffect Hot;
static const StatusEffect Cold;
static const StatusEffect Frostbite;
static const StatusEffect HeatStroke;
static const StatusEffect BrokenBone;
static const StatusEffect Dizzy;
static const StatusEffect Drunk;
static const StatusEffect Stoned;
static const StatusEffect Blind;
};
}

View File

@@ -0,0 +1,38 @@
#pragma once
namespace CaveGame::Core
{
/// A structure is a multi-tile object that is usually generated into the terrain.
// TODO: Structure Designer
class Structure {};
#define STRUCTURE static const Structure
/// List of structures in-game.
namespace Structures
{
STRUCTURE TreeGrove;
STRUCTURE LargeTree;
STRUCTURE MegaTree;
STRUCTURE Meadow;
STRUCTURE Pyramid;
STRUCTURE SkyIsland;
STRUCTURE UndergroundCabin;
STRUCTURE RuinedHouse;
STRUCTURE Shrine;
STRUCTURE Castle;
STRUCTURE SandCastle;
STRUCTURE IceFortress;
STRUCTURE Campsite;
STRUCTURE Settlement;
STRUCTURE Village;
STRUCTURE Mineshaft;
STRUCTURE SatanicTemple;
STRUCTURE LavaTube;
STRUCTURE
};
}

View File

@@ -116,6 +116,8 @@ namespace CaveGame::Core
bool does_random_ticc;
public:
constexpr Tile() = default;
Tile(TileID numeric, const std::string& name, Color4 color)
: numeric_id(numeric), mnemonic_id(name), base_color(color)
{}
@@ -195,10 +197,158 @@ namespace CaveGame::Core
};
#define TILE constexpr Tile
// TODO: Constexpr-qualify Color4
namespace Tiles {
using Core::TileID;
TILE Void {TileID::VOID, "Void", Colors::Transparent};
TILE Air {TileID::AIR, "Air", Colors::Transparent};
TILE Stone;
TILE Dirt;
TILE Mud;
TILE Limestone;
TILE Basalt;
TILE Cobblestone;
TILE MossyStone;
TILE RedMossyStone;
TILE BrownMossyStone;
TILE GreenMossyStone;
TILE LavaMossyStone;
TILE Granite;
TILE Marble;
TILE Grass;
TILE Bluegrass;
TILE Sand;
TILE WhiteSand;
TILE RedSand;
TILE BlackSand;
TILE Sandstone;
TILE WhiteSandstone;
TILE RedSandstone;
TILE BlackSandstone;
TILE Ash;
TILE Clay;
TILE Silt;
TILE Snow;
TILE Ice;
TILE Slush;
TILE Cactus;
TILE CactusFlower;
TILE CactusFruit;
TILE Bamboo;
TILE Sugarcane;
TILE Vine;
TILE VineFlower;
TILE FlowerStem;
TILE RedFlowerPetal;
TILE BlueFlowerPetal;
TILE YellowFlowerPetal;
TILE WhiteFlowerPetal;
TILE CopperWire;
TILE RedWire;
TILE GreenWire;
TILE YellowWire;
TILE BlueWire;
TILE LED;
TILE TNT;
TILE Cloud;
TILE ThinIce;
TILE RainCloud;
TILE Cobweb;
TILE Coal;
TILE CopperOre;
TILE TinOre;
TILE IronOre;
TILE LeadOre;
TILE SilverOre;
TILE TungstenOre;
TILE GoldOre;
TILE PlatinumOre;
TILE CobaltOre;
TILE TitaniumOre;
TILE UraniumOre;
TILE Diamond;
TILE Emerald;
TILE Amethyst;
TILE Topaz;
TILE Sapphire;
TILE Ruby;
TILE Amber;
TILE Obsidian;
TILE OakLog;
TILE OakPlank;
TILE OakPlatform;
TILE OakLeaf;
TILE AshLog;
TILE AshLeaf;
TILE AshPlank;
TILE PalmLog;
TILE PalmLeaf;
TILE PalmPlank;
TILE PineLog;
TILE PinePlank;
TILE PinePlatform;
TILE PineLeaf;
TILE RedwoodLog;
TILE RedwoodPlank;
TILE RedwoodPlatform;
TILE RedwoodLeaf;
TILE EbonyLog;
TILE EbonyPlank;
TILE EbonyPlatform;
TILE EbonyLeaf;
TILE MapleLog;
TILE MapleLeaf;
TILE MaplePlank;
TILE BirchLog;
TILE BirchLeaf;
TILE BirchPlank;
TILE Water;
TILE Blood;
TILE Sludge;
TILE Lava;
TILE MuddyWater;
TILE Ectoplasm;
TILE Oil;
TILE Honey;
TILE Milk;
TILE Rope;
}
void RegisterTile(Tile* data);

1
Core/src/Core/Biome.cpp Normal file
View File

@@ -0,0 +1 @@
#include <Core/Biomes.hpp>