aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock17
-rw-r--r--data/recipes/default.ts58
-rw-r--r--server/Cargo.toml1
-rw-r--r--server/src/customer/mod.rs3
4 files changed, 50 insertions, 29 deletions
diff --git a/Cargo.lock b/Cargo.lock
index c5f45322..256e5864 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -213,6 +213,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
[[package]]
+name = "deunicode"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "339544cc9e2c4dc3fc7149fd630c5f22263a4fdf18a98afd0075784968b5cf00"
+
+[[package]]
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -252,6 +258,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
+name = "fake"
+version = "2.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c25829bde82205da46e1823b2259db6273379f626fc211f126f65654a2669be"
+dependencies = [
+ "deunicode",
+ "rand 0.8.5",
+]
+
+[[package]]
name = "fnv"
version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -848,6 +864,7 @@ dependencies = [
"anyhow",
"clap",
"env_logger",
+ "fake",
"futures-util",
"glam",
"log",
diff --git a/data/recipes/default.ts b/data/recipes/default.ts
index 4efdb16a..f0a9ef6b 100644
--- a/data/recipes/default.ts
+++ b/data/recipes/default.ts
@@ -18,7 +18,7 @@
//? Is is a good idea? Probably not.
-interface Recipe {
+export interface Recipe {
tile?: string,
inputs: (string | null)[],
outputs: (string | null)[],
@@ -28,8 +28,8 @@ interface Recipe {
warn?: boolean
}
-const all_items = new Set<string>()
-function auto_trash() {
+export const all_items = new Set<string>()
+export function auto_trash() {
for (const ifull of all_items) {
let [i, ic] = get_container(ifull)
if (i == "plate") continue
@@ -46,7 +46,7 @@ function auto_trash() {
}
}
-function out(r: Recipe) {
+export function out(r: Recipe) {
r.inputs.forEach(i => i ? all_items.add(i) : void 0)
r.outputs.forEach(i => i ? all_items.add(i) : void 0)
r.inputs = r.inputs.filter(e => e)
@@ -54,39 +54,39 @@ function out(r: Recipe) {
console.log(`- ${JSON.stringify(r).replaceAll("\"active\"", "!active").replaceAll("\"passive\"", "!passive").replaceAll("\"instant\"", "!instant")}`);
}
-function cut(from: string, to?: string, to2?: string) {
+export function cut(from: string, to?: string, to2?: string) {
out({ action: "active", duration: 2, tile: "cuttingboard", inputs: [from], outputs: [to ?? ("sliced-" + from), to2 ?? null] })
}
-function cook(from: string, to?: string) {
+export function cook(from: string, to?: string) {
const i = from.endsWith("-pot") ? from : from + "-pot"
const o = (to ?? ("cooked-" + from)) + "-pot"
if (!from.endsWith("-pot")) out({ action: "instant", inputs: ["pot", from], outputs: [i] })
out({ action: "passive", duration: 20, revert_duration: 40, tile: "stove", inputs: [i], outputs: [o] })
out({ action: "passive", duration: 5, revert_duration: 10, tile: "stove", inputs: [o], outputs: ["burned-pot"], warn: true })
}
-function process(from: string, to?: string) {
+export function process(from: string, to?: string) {
const i = from + "-foodprocessor"
const o = (to ?? (from + "-juice")) + "-foodprocessor"
out({ action: "instant", inputs: ["foodprocessor", from], outputs: [i] })
out({ action: "active", duration: 3, inputs: [i], outputs: [o] })
}
-function bake(from: string, to?: string) {
+export function bake(from: string, to?: string) {
const o = (to ?? ("cooked-" + from))
out({ action: "passive", duration: 25, tile: "oven", inputs: [from], outputs: [o] })
out({ action: "passive", duration: 15, revert_duration: 20, tile: "oven", inputs: [o], outputs: ["burned"], warn: true })
}
-function crate(item: string) {
+export function crate(item: string) {
out({ action: "instant", tile: item + "-crate", inputs: [], outputs: [item], })
}
-function get_container(ifull: string): [string, string | null] {
+export function get_container(ifull: string): [string, string | null] {
const iparts = ifull.split("-")
const ic = iparts.pop()
if (ic && iparts.length && ["pot", "plate", "foodprocessor"].includes(ic)) return [iparts.join("-"), ic]
return [ifull, null]
}
-function combine(container: string, ...inputs: string[]) {
+export function combine(container: string, ...inputs: string[]) {
const open = inputs.map(ifull => {
const [i, ic] = get_container(ifull)
out({ action: "instant", inputs: [container, ifull], outputs: [i + "-" + container, ic] })
@@ -117,27 +117,29 @@ function combine(container: string, ...inputs: string[]) {
}
}
-out({ action: "active", duration: 2, tile: "sink", inputs: ["dirty-plate"], outputs: ["plate"] })
+if (import.meta.main) {
+ out({ action: "active", duration: 2, tile: "sink", inputs: ["dirty-plate"], outputs: ["plate"] })
-crate("tomato")
-crate("raw-steak")
-crate("flour")
-crate("leek")
+ crate("tomato")
+ crate("raw-steak")
+ crate("flour")
+ crate("leek")
-cut("tomato")
+ cut("tomato")
-cook("raw-steak", "steak")
+ cook("raw-steak", "steak")
-process("flour", "dough")
-out({ action: "instant", inputs: ["dough-foodprocessor"], outputs: ["foodprocessor", "dough"] })
-bake("dough", "bread")
-cut("bread", "bread-slice", "bread-slice")
+ process("flour", "dough")
+ out({ action: "instant", inputs: ["dough-foodprocessor"], outputs: ["foodprocessor", "dough"] })
+ bake("dough", "bread")
+ cut("bread", "bread-slice", "bread-slice")
-process("tomato")
-combine("pot", "leek", "tomato-juice-foodprocessor")
-cook("leek-tomato-juice-pot", "tomato-soup")
-out({ action: "instant", inputs: ["tomato-soup-pot", "plate"], outputs: ["pot", "tomato-soup-plate"] })
+ process("tomato")
+ combine("pot", "leek", "tomato-juice-foodprocessor")
+ cook("leek-tomato-juice-pot", "tomato-soup")
+ out({ action: "instant", inputs: ["tomato-soup-pot", "plate"], outputs: ["pot", "tomato-soup-plate"] })
-combine("plate", "steak-pot", "sliced-tomato", "bread-slice")
+ combine("plate", "steak-pot", "sliced-tomato", "bread-slice")
-auto_trash()
+ auto_trash()
+}
diff --git a/server/Cargo.toml b/server/Cargo.toml
index 9b954908..f09bdf4e 100644
--- a/server/Cargo.toml
+++ b/server/Cargo.toml
@@ -18,3 +18,4 @@ serde_yaml = "0.9.34+deprecated"
rand = "0.9.0-alpha.1"
shlex = "1.3.0"
clap = { version = "4.5.7", features = ["derive"] }
+fake = "2.9.2"
diff --git a/server/src/customer/mod.rs b/server/src/customer/mod.rs
index 0b300b6e..7f32b094 100644
--- a/server/src/customer/mod.rs
+++ b/server/src/customer/mod.rs
@@ -25,6 +25,7 @@ use crate::{
state::State,
};
use anyhow::{anyhow, Result};
+use fake::{faker, Fake};
use glam::{IVec2, Vec2};
use log::{debug, error, warn};
use movement::MovementBase;
@@ -193,7 +194,7 @@ impl CustomerManager {
packets_out.push((
id,
PacketS::Join {
- name: "George".to_string(),
+ name: faker::name::fr_fr::Name().fake(),
character: -2,
},
));