An unofficial collection of APIs used in FreeJam games and mods
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

factory_json.rs 7.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. use serde::{Deserialize, Serialize};
  2. #[derive(Deserialize, Serialize, Debug, Clone)]
  3. pub struct ErrorPayload {
  4. #[serde(rename = "error")]
  5. pub error: isize,
  6. #[serde(rename = "errorMessage")]
  7. pub error_message: String,
  8. }
  9. // search endpoint
  10. #[derive(Deserialize, Serialize, Clone)]
  11. pub struct SearchPayload {
  12. #[serde(rename = "text")]
  13. pub text: Option<String>,
  14. #[serde(rename = "baseCpuMinimum")]
  15. pub base_minimum_cpu: Option<isize>,
  16. #[serde(rename = "baseCpuMaximum")]
  17. pub base_maximum_cpu: Option<isize>,
  18. #[serde(rename = "weaponCpuMinimum")]
  19. pub weapon_minimum_cpu: Option<isize>,
  20. #[serde(rename = "weaponCpuMaximum")]
  21. pub weapon_maximum_cpu: Option<isize>,
  22. #[serde(rename = "cosmeticCpuMinimum")]
  23. pub cosmetic_minimum_cpu: Option<isize>,
  24. #[serde(rename = "cosmeticCpuMaximum")]
  25. pub cosmetic_maximum_cpu: Option<isize>,
  26. #[serde(rename = "clusterMinimum")]
  27. pub cluster_minimum: Option<isize>,
  28. #[serde(rename = "clusterMaximum")]
  29. pub cluster_maximum: Option<isize>,
  30. #[serde(rename = "dateMinimum")]
  31. pub date_minimum: Option<String>,
  32. #[serde(rename = "dateMaximum")]
  33. pub date_maximum: Option<String>,
  34. #[serde(rename = "creatorId")]
  35. pub creator_id: Option<String>, // GUID
  36. #[serde(rename = "page")]
  37. pub page: Option<isize>,
  38. #[serde(rename = "count")]
  39. pub count: Option<isize>,
  40. #[serde(rename = "sortBy")]
  41. pub sort_by: String,
  42. #[serde(rename = "orderBy")]
  43. pub order_by: String,
  44. }
  45. impl Default for SearchPayload {
  46. fn default() -> Self {
  47. Self {
  48. text: None,
  49. base_minimum_cpu: None,
  50. base_maximum_cpu: None,
  51. weapon_minimum_cpu: None,
  52. weapon_maximum_cpu: None,
  53. cosmetic_minimum_cpu: None,
  54. cosmetic_maximum_cpu: None,
  55. cluster_minimum: None,
  56. cluster_maximum: None,
  57. date_minimum: None,
  58. date_maximum: None,
  59. creator_id: None,
  60. page: None,
  61. count: None,
  62. sort_by: "default".to_owned(),
  63. order_by: "ascending".to_owned(),
  64. }
  65. }
  66. }
  67. #[derive(Deserialize, Serialize, Clone, Debug)]
  68. pub struct SearchResponse {
  69. #[serde(rename = "results")]
  70. pub results: Vec<SearchResponseItem>,
  71. }
  72. #[derive(Deserialize, Serialize, Clone, Debug)]
  73. pub struct SearchResponseItem {
  74. #[serde(rename = "robot")]
  75. pub robot: RobotInfo,
  76. #[serde(rename = "prices")]
  77. pub prices: Vec<RobotPrice>,
  78. #[serde(rename = "purchased")]
  79. pub purchased: bool,
  80. }
  81. #[derive(Deserialize, Serialize, Clone, Debug)]
  82. pub struct RobotInfo {
  83. #[serde(rename = "id")]
  84. pub id: String, // GUID
  85. #[serde(rename = "name")]
  86. pub name: String,
  87. #[serde(rename = "creatorId")]
  88. pub creator_id: String, // GUID
  89. #[serde(rename = "creatorName")]
  90. pub creator_name: String,
  91. #[serde(rename = "created")]
  92. pub created: String, // date
  93. #[serde(rename = "image")]
  94. pub image: String, // base64??
  95. #[serde(rename = "baseCpu")]
  96. pub base_cpu: isize,
  97. #[serde(rename = "weaponCpu")]
  98. pub weapon_cpu: isize,
  99. #[serde(rename = "cosmeticCpu")]
  100. pub cosmetic_cpu: isize,
  101. #[serde(rename = "clusterCount")]
  102. pub cluster_count: isize,
  103. #[serde(rename = "blockCounts")]
  104. pub block_counts: std::collections::HashMap<usize, usize>,
  105. #[serde(rename = "materialsUsed")]
  106. pub materials_used: std::collections::HashSet<isize>,
  107. #[serde(rename = "minimumOffsetX")]
  108. pub minimum_offset_x: f64,
  109. #[serde(rename = "minimumOffsetY")]
  110. pub minimum_offset_y: f64,
  111. #[serde(rename = "minimumOffsetZ")]
  112. pub minimum_offset_z: f64,
  113. #[serde(rename = "maximumOffsetX")]
  114. pub maximum_offset_x: f64,
  115. #[serde(rename = "maximumOffsetY")]
  116. pub maximum_offset_y: f64,
  117. #[serde(rename = "maximumOffsetZ")]
  118. pub maximum_offset_z: f64,
  119. }
  120. impl std::string::ToString for RobotInfo {
  121. fn to_string(&self) -> String {
  122. format!("{} ({}) by {} ({})", &self.name, &self.id, &self.creator_name, &self.creator_id)
  123. }
  124. }
  125. #[derive(Deserialize, Serialize, Clone, Debug)]
  126. pub struct RobotPrice {
  127. #[serde(rename = "currency")]
  128. pub currency: isize,
  129. #[serde(rename = "amount")]
  130. pub amount: isize,
  131. }
  132. // create robot endpoint
  133. #[derive(Deserialize, Serialize, Clone, Debug)]
  134. pub struct CreateRobotPayload {
  135. #[serde(rename = "name")]
  136. pub name: String,
  137. #[serde(rename = "data")]
  138. pub data: String, // base64
  139. #[serde(rename = "image")]
  140. pub image: String, // base64??
  141. #[serde(rename = "baseCpu")]
  142. pub base_cpu: isize,
  143. #[serde(rename = "weaponCpu")]
  144. pub weapon_cpu: isize,
  145. #[serde(rename = "cosmeticCpu")]
  146. pub cosmetic_cpu: isize,
  147. #[serde(rename = "clusterCount")]
  148. pub cluster_count: isize,
  149. #[serde(rename = "blockCounts")]
  150. pub block_counts: std::collections::HashMap<usize, usize>,
  151. #[serde(rename = "materialsUsed")]
  152. pub materials_used: std::collections::HashSet<isize>,
  153. #[serde(rename = "minimumOffsetX")]
  154. pub minimum_offset_x: f64,
  155. #[serde(rename = "minimumOffsetY")]
  156. pub minimum_offset_y: f64,
  157. #[serde(rename = "minimumOffsetZ")]
  158. pub minimum_offset_z: f64,
  159. #[serde(rename = "maximumOffsetX")]
  160. pub maximum_offset_x: f64,
  161. #[serde(rename = "maximumOffsetY")]
  162. pub maximum_offset_y: f64,
  163. #[serde(rename = "maximumOffsetZ")]
  164. pub maximum_offset_z: f64,
  165. }
  166. #[derive(Deserialize, Serialize, Clone, Debug)]
  167. pub struct CreateRobotResponse {
  168. #[serde(rename = "header")]
  169. pub header: RobotInfo,
  170. }
  171. // factory info endpoint
  172. // (no payload -- this is a GET request)
  173. #[derive(Deserialize, Serialize, Clone, Debug)]
  174. pub struct FactoryInfoResponse {
  175. #[serde(rename = "robotCount")]
  176. pub robot_count: isize,
  177. #[serde(rename = "robotLimit")]
  178. pub robot_limit: isize,
  179. #[serde(rename = "publishedRobotCount")]
  180. pub published_robot_count: isize,
  181. #[serde(rename = "publishedRobotLimit")]
  182. pub published_robot_limit: isize,
  183. }
  184. // publish robot endpoint
  185. #[derive(Deserialize, Serialize, Clone, Debug)]
  186. pub struct PublishRobotPayload {
  187. #[serde(rename = "name")]
  188. pub name: String,
  189. #[serde(rename = "description")]
  190. pub description: String,
  191. #[serde(rename = "techPoints")]
  192. pub techpoints: isize,
  193. #[serde(rename = "bloxCoin")]
  194. pub bloxcoin: isize,
  195. }
  196. #[derive(Deserialize, Serialize, Clone, Debug)]
  197. pub struct PublishRobotResponse {
  198. #[serde(rename = "header")]
  199. pub header: RobotInfo,
  200. #[serde(rename = "data")]
  201. pub data: String, // base64
  202. }
  203. // get my robots endpoint
  204. // (no payload -- this is a GET request)
  205. #[derive(Deserialize, Serialize, Clone, Debug)]
  206. pub struct MyRobotsResponse {
  207. #[serde(rename = "vehicles")]
  208. pub vehicles: Vec<RobotInfo>,
  209. }
  210. // get robot endpoint
  211. // (no payload -- this is a GET request)
  212. #[derive(Deserialize, Serialize, Clone, Debug)]
  213. pub struct GetRobotResponse {
  214. #[serde(rename = "header")]
  215. pub header: RobotInfo,
  216. #[serde(rename = "data")]
  217. pub data: String, // base64
  218. #[serde(rename = "description")]
  219. pub description: String,
  220. #[serde(rename = "created")]
  221. pub created: String, // date
  222. }