Skip to main content

nil_payload/request/cheat/
resources.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use bon::Builder;
5use nil_core::resources::{Food, Iron, Resources, Stone, Wood};
6use nil_core::ruler::Ruler;
7use nil_core::world::config::WorldId;
8use serde::{Deserialize, Serialize};
9
10#[cfg(feature = "typescript")]
11use ts_rs::TS;
12
13#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
14#[serde(rename_all = "camelCase")]
15#[cfg_attr(feature = "typescript", derive(TS))]
16#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
17pub struct CheatGetResourcesRequest {
18  #[builder(start_fn, into)]
19  pub world: WorldId,
20  #[serde(default)]
21  #[builder(into)]
22  pub ruler: Option<Ruler>,
23}
24
25#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
26#[serde(rename_all = "camelCase")]
27#[cfg_attr(feature = "typescript", derive(TS))]
28#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
29pub struct CheatSetFoodRequest {
30  #[builder(start_fn, into)]
31  pub world: WorldId,
32  #[serde(default)]
33  #[builder(into)]
34  pub ruler: Option<Ruler>,
35  #[serde(default)]
36  #[builder(default, into)]
37  pub food: Food,
38}
39
40#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
41#[serde(rename_all = "camelCase")]
42#[cfg_attr(feature = "typescript", derive(TS))]
43#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
44pub struct CheatSetIronRequest {
45  #[builder(start_fn, into)]
46  pub world: WorldId,
47  #[serde(default)]
48  #[builder(into)]
49  pub ruler: Option<Ruler>,
50  #[serde(default)]
51  #[builder(default, into)]
52  pub iron: Iron,
53}
54
55#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
56#[serde(rename_all = "camelCase")]
57#[cfg_attr(feature = "typescript", derive(TS))]
58#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
59pub struct CheatSetMaxFoodRequest {
60  pub world: WorldId,
61  #[serde(default)]
62  #[builder(into)]
63  pub ruler: Option<Ruler>,
64}
65
66#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
67#[serde(rename_all = "camelCase")]
68#[cfg_attr(feature = "typescript", derive(TS))]
69#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
70pub struct CheatSetMaxIronRequest {
71  #[builder(start_fn, into)]
72  pub world: WorldId,
73  #[serde(default)]
74  #[builder(into)]
75  pub ruler: Option<Ruler>,
76}
77
78#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
79#[serde(rename_all = "camelCase")]
80#[cfg_attr(feature = "typescript", derive(TS))]
81#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
82pub struct CheatSetMaxResourcesRequest {
83  #[builder(start_fn, into)]
84  pub world: WorldId,
85  #[serde(default)]
86  #[builder(into)]
87  pub ruler: Option<Ruler>,
88}
89
90#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
91#[serde(rename_all = "camelCase")]
92#[cfg_attr(feature = "typescript", derive(TS))]
93#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
94pub struct CheatSetMaxSiloResourcesRequest {
95  #[builder(start_fn, into)]
96  pub world: WorldId,
97  #[serde(default)]
98  #[builder(into)]
99  pub ruler: Option<Ruler>,
100}
101
102#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
103#[serde(rename_all = "camelCase")]
104#[cfg_attr(feature = "typescript", derive(TS))]
105#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
106pub struct CheatSetMaxStoneRequest {
107  #[builder(start_fn, into)]
108  pub world: WorldId,
109  #[serde(default)]
110  #[builder(into)]
111  pub ruler: Option<Ruler>,
112}
113
114#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
115#[serde(rename_all = "camelCase")]
116#[cfg_attr(feature = "typescript", derive(TS))]
117#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
118pub struct CheatSetMaxWarehouseResourcesRequest {
119  #[builder(start_fn, into)]
120  pub world: WorldId,
121  #[serde(default)]
122  #[builder(into)]
123  pub ruler: Option<Ruler>,
124}
125
126#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
127#[serde(rename_all = "camelCase")]
128#[cfg_attr(feature = "typescript", derive(TS))]
129#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
130pub struct CheatSetMaxWoodRequest {
131  #[builder(start_fn, into)]
132  pub world: WorldId,
133  #[serde(default)]
134  #[builder(into)]
135  pub ruler: Option<Ruler>,
136}
137
138#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
139#[serde(rename_all = "camelCase")]
140#[cfg_attr(feature = "typescript", derive(TS))]
141#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
142pub struct CheatSetResourcesRequest {
143  #[builder(start_fn, into)]
144  pub world: WorldId,
145  #[serde(default)]
146  #[builder(into)]
147  pub ruler: Option<Ruler>,
148  #[serde(default)]
149  #[builder(default)]
150  pub resources: Resources,
151}
152
153#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
154#[serde(rename_all = "camelCase")]
155#[cfg_attr(feature = "typescript", derive(TS))]
156#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
157pub struct CheatSetStoneRequest {
158  #[builder(start_fn, into)]
159  pub world: WorldId,
160  #[serde(default)]
161  #[builder(into)]
162  pub ruler: Option<Ruler>,
163  #[serde(default)]
164  #[builder(default, into)]
165  pub stone: Stone,
166}
167
168#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
169#[serde(rename_all = "camelCase")]
170#[cfg_attr(feature = "typescript", derive(TS))]
171#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
172pub struct CheatSetWoodRequest {
173  #[builder(start_fn, into)]
174  pub world: WorldId,
175  #[serde(default)]
176  #[builder(into)]
177  pub ruler: Option<Ruler>,
178  #[serde(default)]
179  #[builder(default, into)]
180  pub wood: Wood,
181}