This commit is contained in:
2026-09-24 23:28:01 -03:00
parent 79faa556de
commit bb42dd662e
73 changed files with 2349 additions and 34 deletions
+82
View File
@@ -0,0 +1,82 @@
# bworld
Textures and sprites by Kenney, from these CC0 packs:
# Tiny town
https://kenney.nl/assets/tiny-town
license: [Creative Commons CC0](https://creativecommons.org/publicdomain/zero/1.0/)
# Roguelike
https://kenney.nl/assets/roguelike-rpg-pack
license: [Creative Commons CC0](https://creativecommons.org/publicdomain/zero/1.0/)
# UI
https://kenney.nl/assets/ui-pack-pixel-adventure
license: [Creative Commons CC0](https://creativecommons.org/publicdomain/zero/1.0/)
# m6x11.ttf
Font by Daniel Linssen (https://managore.itch.io)
https://managore.itch.io/m6x11 (https://web.archive.org/web/20260217032856/https://managore.itch.io/m6x11)
license: `free to use with attribution`
# Tiny wonder farm
https://butterymilk.itch.io/tiny-wonder-farm-asset-pack
(https://web.archive.org/web/20260204234306/https://butterymilk.itch.io/tiny-wonder-farm-asset-pack)
license:
```
There's two versions, free and paid (premium):
Free: It includes a limited number of items available for free.
You are free to use sprites included in the pack in any of your non-commercial projects as well as edit the sprites and
add something new!
Premium: It includes everything shown from the showcase, all tilemaps, sprites, characters and more!
You are free to use sprites included in the pack in any of your commercial or non-commercial projects as well as edit
the sprites and add something new!
You can't resell the sprites, even if changes were made. You cannot use it in any projects related to NFT."
```
# Farmer's delight
https://github.com/vectorwing/FarmersDelight
License:
```
MIT License
Copyright (c) 2020 vectorwing
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
+21
View File
@@ -0,0 +1,21 @@
# bworld
The base game as a mod, following "The base game as a mod" in `MODS.md`.
**The game doesn't load this yet.** Until the mod loader exists, the game still registers everything from
`common/blocks/`, `common/items/`, `server/game/crafting.ts` and `server/game/blocks.ts`. The `blocks/`, `items/` and
`recipes/` folders here are generated from those by:
```sh
deno task export-bworld
```
Run it after changing any of them. `tests/bworld_mod_test.ts` fails when this folder and the game disagree.
Still to move here, by phase:
| Phase | What |
| ----- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 1 | Textures from `assets/sprites/textures/` (the build still reads them from there). |
| 2 | Block behavior from `server/game/blocks.ts`: `bworld:hoeable`, `bworld:storage`, `bworld:furnace`, and the watering can's `bworld:watering_can` item component. |
| 3 | Terrain, biomes, trees and ores from `common/generation.ts`. |
+14
View File
@@ -0,0 +1,14 @@
{
"format_version": 1,
"block": {
"id": "bworld:chest",
"textures": "bworld:planks",
"collision": false,
"mining": {
"toughness": 8,
"tool": "axe"
},
"drops": "bworld:chest",
"interactive": true
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"format_version": 1,
"block": {
"id": "bworld:coal_ore",
"textures": "bworld:stone_coal",
"mining": {
"toughness": 5,
"tool": "pickaxe",
"requires_tool": true
},
"drops": "bworld:coal_ore"
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"format_version": 1,
"block": {
"id": "bworld:copper_ore",
"textures": "bworld:stone_copper",
"mining": {
"toughness": 5,
"tool": "pickaxe",
"requires_tool": true
},
"drops": "bworld:copper_ore"
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"format_version": 1,
"block": {
"id": "bworld:dirt",
"textures": "bworld:dirt",
"collision": false,
"mining": {
"toughness": 2,
"tool": "shovel"
},
"drops": "bworld:dirt"
}
}
+17
View File
@@ -0,0 +1,17 @@
{
"format_version": 1,
"block": {
"id": "bworld:furnace",
"textures": {
"front": "bworld:furnace",
"side": "bworld:stone"
},
"mining": {
"toughness": 5,
"tool": "pickaxe",
"requires_tool": true
},
"drops": "bworld:furnace",
"interactive": true
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"block": {
"id": "bworld:glass",
"textures": "bworld:glass",
"transparent": true,
"mining": {
"toughness": 3,
"tool": "pickaxe"
}
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"format_version": 1,
"block": {
"id": "bworld:gold_ore",
"textures": "bworld:stone_gold",
"mining": {
"toughness": 5,
"tool": "pickaxe",
"requires_tool": true
},
"drops": "bworld:gold_ore"
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"format_version": 1,
"block": {
"id": "bworld:grass",
"textures": {
"top": "bworld:grass_top",
"bottom": "bworld:dirt",
"side": "bworld:grass_side"
},
"collision": false,
"mining": {
"toughness": 2,
"tool": "shovel"
},
"drops": "bworld:dirt",
"item": false
}
}
+24
View File
@@ -0,0 +1,24 @@
{
"format_version": 1,
"block": {
"id": "bworld:hoed_dirt",
"textures": {
"side": "bworld:dirt",
"top": "bworld:hoed_dirt",
"bottom": "bworld:dirt"
},
"collision": false,
"mining": {
"toughness": 5,
"tool": "shovel"
},
"drops": "bworld:dirt",
"states": [
{
"name": "watered",
"bits": 1,
"default": 0
}
]
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"format_version": 1,
"block": {
"id": "bworld:iron_ore",
"textures": "bworld:stone_iron",
"mining": {
"toughness": 5,
"tool": "pickaxe",
"requires_tool": true
},
"drops": "bworld:iron_ore"
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"block": {
"id": "bworld:leaves",
"textures": "bworld:leaves",
"transparent": true,
"mining": {
"toughness": 3,
"tool": "hoe"
}
}
}
+16
View File
@@ -0,0 +1,16 @@
{
"format_version": 1,
"block": {
"id": "bworld:log",
"textures": {
"side": "bworld:log_side",
"top": "bworld:log_top",
"bottom": "bworld:log_top"
},
"mining": {
"toughness": 3,
"tool": "axe"
},
"drops": "bworld:log"
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"block": {
"id": "bworld:planks",
"textures": "bworld:planks",
"mining": {
"toughness": 3,
"tool": "axe"
},
"drops": "bworld:log"
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"block": {
"id": "bworld:sand",
"textures": "bworld:sand",
"mining": {
"toughness": 3,
"tool": "shovel"
},
"drops": "bworld:sand"
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"block": {
"id": "bworld:snow",
"textures": "bworld:snow",
"mining": {
"toughness": 2,
"tool": "shovel",
"requires_tool": true
}
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"format_version": 1,
"block": {
"id": "bworld:stone",
"textures": "bworld:stone",
"mining": {
"toughness": 3,
"tool": "pickaxe",
"requires_tool": true
},
"drops": "bworld:stone"
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"format_version": 1,
"block": {
"id": "bworld:tin_ore",
"textures": "bworld:stone_tin",
"mining": {
"toughness": 5,
"tool": "pickaxe",
"requires_tool": true
},
"drops": "bworld:tin_ore"
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"block": {
"id": "bworld:water",
"textures": "bworld:water",
"transparent": true,
"alpha": 0.8,
"collision": false,
"item": false,
"replaceable": true
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"format_version": 1,
"item": {
"id": "bworld:axe",
"texture": "bworld:axe",
"tool": "axe"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:coal",
"texture": "bworld:coal"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:copper_ingot",
"texture": "bworld:copper_ingot"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:gold_ingot",
"texture": "bworld:gold_ingot"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:hoe",
"texture": "bworld:hoe"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:iron_ingot",
"texture": "bworld:iron_ingot"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:pickaxe",
"texture": "bworld:pickaxe"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:stick",
"texture": "bworld:stick"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:tin_ingot",
"texture": "bworld:tin_ingot"
}
}
+7
View File
@@ -0,0 +1,7 @@
{
"format_version": 1,
"item": {
"id": "bworld:watering_can",
"texture": "bworld:watering_can"
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"format_version": 1,
"item": {
"id": "bworld:wood_pickaxe",
"texture": "bworld:wood_pickaxe",
"tool": "pickaxe"
}
}
+10
View File
@@ -0,0 +1,10 @@
{
"format_version": 1,
"id": "bworld",
"name": "bworld",
"description": "The base game: its blocks, items, recipes and world.",
"version": "0.1.0",
"authors": ["paula"],
"game_version": ">=0.1.0",
"credits": "CREDITS.md"
}
+18
View File
@@ -0,0 +1,18 @@
{
"format_version": 1,
"recipe": {
"type": "shaped",
"pattern": [
"PPP",
"P P",
"PPP"
],
"key": {
"P": "bworld:planks"
},
"result": {
"id": "bworld:chest",
"count": 1
}
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"format_version": 1,
"recipe": {
"type": "shaped",
"pattern": [
"SSS",
"S S",
"SSS"
],
"key": {
"S": "bworld:stone"
},
"result": {
"id": "bworld:furnace",
"count": 1
}
}
}
+16
View File
@@ -0,0 +1,16 @@
{
"format_version": 1,
"recipe": {
"type": "shaped",
"pattern": [
"L"
],
"key": {
"L": "bworld:log"
},
"result": {
"id": "bworld:planks",
"count": 2
}
}
}
+17
View File
@@ -0,0 +1,17 @@
{
"format_version": 1,
"recipe": {
"type": "shaped",
"pattern": [
"P",
"P"
],
"key": {
"P": "bworld:planks"
},
"result": {
"id": "bworld:stick",
"count": 2
}
}
}
@@ -0,0 +1,19 @@
{
"format_version": 1,
"recipe": {
"type": "shaped",
"pattern": [
"PPP",
" S ",
" S "
],
"key": {
"P": "bworld:planks",
"S": "bworld:stick"
},
"result": {
"id": "bworld:wood_pickaxe",
"count": 1
}
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"format_version": 1,
"recipe": {
"type": "fuel",
"item": "bworld:coal",
"burn_time": 1000
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"format_version": 1,
"recipe": {
"type": "fuel",
"item": "bworld:log",
"burn_time": 100
}
}
@@ -0,0 +1,12 @@
{
"format_version": 1,
"recipe": {
"type": "furnace",
"input": "bworld:coal_ore",
"output": {
"id": "bworld:coal",
"count": 1
},
"cook_time": 100
}
}
@@ -0,0 +1,12 @@
{
"format_version": 1,
"recipe": {
"type": "furnace",
"input": "bworld:copper_ore",
"output": {
"id": "bworld:copper_ingot",
"count": 1
},
"cook_time": 200
}
}
@@ -0,0 +1,12 @@
{
"format_version": 1,
"recipe": {
"type": "furnace",
"input": "bworld:gold_ore",
"output": {
"id": "bworld:gold_ingot",
"count": 1
},
"cook_time": 200
}
}
@@ -0,0 +1,12 @@
{
"format_version": 1,
"recipe": {
"type": "furnace",
"input": "bworld:iron_ore",
"output": {
"id": "bworld:iron_ingot",
"count": 1
},
"cook_time": 200
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"recipe": {
"type": "furnace",
"input": "bworld:log",
"output": {
"id": "bworld:coal",
"count": 1
},
"cook_time": 100
}
}
+12
View File
@@ -0,0 +1,12 @@
{
"format_version": 1,
"recipe": {
"type": "furnace",
"input": "bworld:tin_ore",
"output": {
"id": "bworld:tin_ingot",
"count": 1
},
"cook_time": 200
}
}