Skip to main content

nil_payload/request/cheat/
city.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use bon::Builder;
5use nil_core::city::stability::Stability;
6use nil_core::continent::coord::Coord;
7use nil_core::ruler::Ruler;
8use nil_core::world::config::WorldId;
9use serde::{Deserialize, Serialize};
10use std::collections::HashSet;
11
12#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
13#[serde(rename_all = "camelCase")]
14#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
15#[cfg_attr(feature = "typescript", ts(export))]
16pub struct CheatFillWorldRequest {
17  #[builder(start_fn, into)]
18  pub world: WorldId,
19  #[serde(default)]
20  #[builder(into)]
21  pub ruler: Option<Ruler>,
22}
23
24#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
25#[serde(rename_all = "camelCase")]
26#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
27#[cfg_attr(feature = "typescript", ts(export))]
28pub struct CheatGetCitiesRequest {
29  #[builder(start_fn, into)]
30  pub world: WorldId,
31  #[serde(default)]
32  #[builder(default, with = FromIterator::from_iter)]
33  pub coords: HashSet<Coord>,
34  #[serde(default)]
35  #[builder(default)]
36  pub score: bool,
37  #[serde(default)]
38  #[builder(default)]
39  pub all: bool,
40}
41
42#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
43#[serde(rename_all = "camelCase")]
44#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
45#[cfg_attr(feature = "typescript", ts(export))]
46pub struct CheatGetCityRequest {
47  #[builder(start_fn, into)]
48  pub world: WorldId,
49  #[builder(into)]
50  pub coord: Coord,
51  #[serde(default)]
52  #[builder(default)]
53  pub score: bool,
54}
55
56#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
57#[serde(rename_all = "camelCase")]
58#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
59#[cfg_attr(feature = "typescript", ts(export))]
60pub struct CheatSetStabilityRequest {
61  #[builder(start_fn, into)]
62  pub world: WorldId,
63  #[builder(into)]
64  pub coord: Coord,
65  #[builder(into)]
66  pub stability: Stability,
67}
68
69#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
70#[serde(rename_all = "camelCase")]
71#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
72#[cfg_attr(feature = "typescript", ts(export))]
73pub struct CheatSpawnCityRequest {
74  #[builder(start_fn, into)]
75  pub world: WorldId,
76  #[serde(default)]
77  #[builder(into)]
78  pub ruler: Option<Ruler>,
79  #[builder(into)]
80  pub coord: Coord,
81}