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  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))]
27#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
28pub struct CheatSetFoodRequest {
29  pub world: WorldId,
30  #[serde(default)]
31  #[builder(into)]
32  pub ruler: Option<Ruler>,
33  #[serde(default)]
34  #[builder(default, into)]
35  pub food: Food,
36}
37
38#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
39#[serde(rename_all = "camelCase")]
40#[cfg_attr(feature = "typescript", derive(TS))]
41#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
42pub struct CheatSetIronRequest {
43  pub world: WorldId,
44  #[serde(default)]
45  #[builder(into)]
46  pub ruler: Option<Ruler>,
47  #[serde(default)]
48  #[builder(default, into)]
49  pub iron: Iron,
50}
51
52#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
53#[serde(rename_all = "camelCase")]
54#[cfg_attr(feature = "typescript", derive(TS))]
55#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
56pub struct CheatSetMaxFoodRequest {
57  pub world: WorldId,
58  #[serde(default)]
59  #[builder(into)]
60  pub ruler: Option<Ruler>,
61}
62
63#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
64#[serde(rename_all = "camelCase")]
65#[cfg_attr(feature = "typescript", derive(TS))]
66#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
67pub struct CheatSetMaxIronRequest {
68  pub world: WorldId,
69  #[serde(default)]
70  #[builder(into)]
71  pub ruler: Option<Ruler>,
72}
73
74#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
75#[serde(rename_all = "camelCase")]
76#[cfg_attr(feature = "typescript", derive(TS))]
77#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
78pub struct CheatSetMaxResourcesRequest {
79  pub world: WorldId,
80  #[serde(default)]
81  #[builder(into)]
82  pub ruler: Option<Ruler>,
83}
84
85#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
86#[serde(rename_all = "camelCase")]
87#[cfg_attr(feature = "typescript", derive(TS))]
88#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
89pub struct CheatSetMaxSiloResourcesRequest {
90  pub world: WorldId,
91  #[serde(default)]
92  #[builder(into)]
93  pub ruler: Option<Ruler>,
94}
95
96#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
97#[serde(rename_all = "camelCase")]
98#[cfg_attr(feature = "typescript", derive(TS))]
99#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
100pub struct CheatSetMaxStoneRequest {
101  pub world: WorldId,
102  #[serde(default)]
103  #[builder(into)]
104  pub ruler: Option<Ruler>,
105}
106
107#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
108#[serde(rename_all = "camelCase")]
109#[cfg_attr(feature = "typescript", derive(TS))]
110#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
111pub struct CheatSetMaxWarehouseResourcesRequest {
112  pub world: WorldId,
113  #[serde(default)]
114  #[builder(into)]
115  pub ruler: Option<Ruler>,
116}
117
118#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
119#[serde(rename_all = "camelCase")]
120#[cfg_attr(feature = "typescript", derive(TS))]
121#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
122pub struct CheatSetMaxWoodRequest {
123  pub world: WorldId,
124  #[serde(default)]
125  #[builder(into)]
126  pub ruler: Option<Ruler>,
127}
128
129#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
130#[serde(rename_all = "camelCase")]
131#[cfg_attr(feature = "typescript", derive(TS))]
132#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
133pub struct CheatSetResourcesRequest {
134  pub world: WorldId,
135  #[serde(default)]
136  #[builder(into)]
137  pub ruler: Option<Ruler>,
138  #[serde(default)]
139  #[builder(default)]
140  pub resources: Resources,
141}
142
143#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
144#[serde(rename_all = "camelCase")]
145#[cfg_attr(feature = "typescript", derive(TS))]
146#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
147pub struct CheatSetStoneRequest {
148  pub world: WorldId,
149  #[serde(default)]
150  #[builder(into)]
151  pub ruler: Option<Ruler>,
152  #[serde(default)]
153  #[builder(default, into)]
154  pub stone: Stone,
155}
156
157#[derive(Builder, Clone, Debug, Deserialize, Serialize)]
158#[serde(rename_all = "camelCase")]
159#[cfg_attr(feature = "typescript", derive(TS))]
160#[cfg_attr(feature = "typescript", ts(export, optional_fields = nullable))]
161pub struct CheatSetWoodRequest {
162  pub world: WorldId,
163  #[serde(default)]
164  #[builder(into)]
165  pub ruler: Option<Ruler>,
166  #[serde(default)]
167  #[builder(default, into)]
168  pub wood: Wood,
169}