| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | export const IS_DEBUG = | 
					
						
							|  |  |  |     G_IS_DEV && | 
					
						
							|  |  |  |     typeof window !== "undefined" && | 
					
						
							|  |  |  |     window.location.port === "3005" && | 
					
						
							|  |  |  |     (window.location.host.indexOf("localhost:") >= 0 || window.location.host.indexOf("192.168.0.") >= 0) && | 
					
						
							|  |  |  |     window.location.search.indexOf("nodebug") < 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const SUPPORT_TOUCH = false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-07 13:02:27 +00:00
										 |  |  | export const IS_MAC = navigator.platform.toLowerCase().indexOf("mac") >= 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | const smoothCanvas = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const THIRDPARTY_URLS = { | 
					
						
							|  |  |  |     discord: "https://discord.gg/HN7EVzV", | 
					
						
							|  |  |  |     github: "https://github.com/tobspr/shapez.io", | 
					
						
							|  |  |  |     reddit: "https://www.reddit.com/r/shapezio", | 
					
						
							| 
									
										
										
										
											2020-09-28 10:17:13 +00:00
										 |  |  |     shapeViewer: "https://viewer.shapez.io", | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/", | 
					
						
							| 
									
										
										
										
											2020-10-09 06:33:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     levelTutorialVideos: { | 
					
						
							|  |  |  |         21: "https://www.youtube.com/watch?v=0nUfRLMCcgo&", | 
					
						
							|  |  |  |         25: "https://www.youtube.com/watch?v=7OCV1g40Iew&", | 
					
						
							|  |  |  |         26: "https://www.youtube.com/watch?v=gfm6dS1dCoY", | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 16:26:38 +00:00
										 |  |  | export const A_B_TESTING_LINK_TYPE = Math.random() > 0.5 ? "steam_1_pr" : "steam_2_npr"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | export const globalConfig = { | 
					
						
							|  |  |  |     // Size of a single tile in Pixels.
 | 
					
						
							|  |  |  |     // NOTICE: Update webpack.production.config too!
 | 
					
						
							|  |  |  |     tileSize: 32, | 
					
						
							|  |  |  |     halfTileSize: 16, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Which dpi the assets have
 | 
					
						
							|  |  |  |     assetsDpi: 192 / 32, | 
					
						
							|  |  |  |     assetsSharpness: 1.5, | 
					
						
							|  |  |  |     shapesSharpness: 1.4, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Production analytics
 | 
					
						
							|  |  |  |     statisticsGraphDpi: 2.5, | 
					
						
							|  |  |  |     statisticsGraphSlices: 100, | 
					
						
							|  |  |  |     analyticsSliceDurationSeconds: G_IS_DEV ? 1 : 10, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     minimumTickRate: 25, | 
					
						
							|  |  |  |     maximumTickRate: 500, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Map
 | 
					
						
							|  |  |  |     mapChunkSize: 16, | 
					
						
							|  |  |  |     mapChunkOverviewMinZoom: 0.9, | 
					
						
							|  |  |  |     mapChunkWorldSize: null, // COMPUTED
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Belt speeds
 | 
					
						
							|  |  |  |     // NOTICE: Update webpack.production.config too!
 | 
					
						
							|  |  |  |     beltSpeedItemsPerSecond: 2, | 
					
						
							|  |  |  |     minerSpeedItemsPerSecond: 0, // COMPUTED
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     defaultItemDiameter: 20, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     itemSpacingOnBelts: 0.63, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     wiresSpeedItemsPerSecond: 6, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-29 21:05:34 +00:00
										 |  |  |     undergroundBeltMaxTilesByTier: [5, 9], | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-07 17:31:11 +00:00
										 |  |  |     readerAnalyzeIntervalSeconds: 10, | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     buildingSpeeds: { | 
					
						
							|  |  |  |         cutter: 1 / 4, | 
					
						
							| 
									
										
										
										
											2020-09-24 12:59:15 +00:00
										 |  |  |         cutterQuad: 1 / 4, | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  |         rotater: 1 / 1, | 
					
						
							|  |  |  |         rotaterCCW: 1 / 1, | 
					
						
							| 
									
										
										
										
											2020-09-21 16:15:30 +00:00
										 |  |  |         rotater180: 1 / 1, | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  |         painter: 1 / 6, | 
					
						
							|  |  |  |         painterDouble: 1 / 8, | 
					
						
							| 
									
										
										
										
											2020-09-22 18:21:09 +00:00
										 |  |  |         painterQuad: 1 / 2, | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  |         mixer: 1 / 5, | 
					
						
							| 
									
										
										
										
											2020-09-24 12:59:15 +00:00
										 |  |  |         stacker: 1 / 8, | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Zooming
 | 
					
						
							|  |  |  |     initialZoom: 1.9, | 
					
						
							|  |  |  |     minZoomLevel: 0.1, | 
					
						
							|  |  |  |     maxZoomLevel: 3, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Global game speed
 | 
					
						
							|  |  |  |     gameSpeed: 1, | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-19 10:21:32 +00:00
										 |  |  |     warmupTimeSecondsFast: 0.5, | 
					
						
							|  |  |  |     warmupTimeSecondsRegular: 3, | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     smoothing: { | 
					
						
							|  |  |  |         smoothMainCanvas: smoothCanvas && true, | 
					
						
							|  |  |  |         quality: "low", // Low is CRUCIAL for mobile performance!
 | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     rendering: {}, | 
					
						
							|  |  |  |     debug: require("./config.local").default, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     // Secret vars
 | 
					
						
							|  |  |  |     info: { | 
					
						
							|  |  |  |         // Binary file salt
 | 
					
						
							|  |  |  |         file: "Ec'])@^+*9zMevK3uMV4432x9%iK'=", | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Savegame salt
 | 
					
						
							|  |  |  |         sgSalt: "}95Q3%8/.837Lqym_BJx%q7)pAHJbF", | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Analytics key
 | 
					
						
							|  |  |  |         analyticsApiKey: "baf6a50f0cc7dfdec5a0e21c88a1c69a4b34bc4a", | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const IS_MOBILE = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Automatic calculations
 | 
					
						
							|  |  |  | globalConfig.minerSpeedItemsPerSecond = globalConfig.beltSpeedItemsPerSecond / 5; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | globalConfig.mapChunkWorldSize = globalConfig.mapChunkSize * globalConfig.tileSize; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Dynamic calculations
 | 
					
						
							|  |  |  | if (globalConfig.debug.disableMapOverview) { | 
					
						
							|  |  |  |     globalConfig.mapChunkOverviewMinZoom = 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Stuff for making the trailer
 | 
					
						
							|  |  |  | if (G_IS_DEV && globalConfig.debug.renderForTrailer) { | 
					
						
							|  |  |  |     globalConfig.debug.framePausesBetweenTicks = 32; | 
					
						
							|  |  |  |     // globalConfig.mapChunkOverviewMinZoom = 0.0;
 | 
					
						
							|  |  |  |     // globalConfig.debug.instantBelts = true;
 | 
					
						
							|  |  |  |     // globalConfig.debug.instantProcessors = true;
 | 
					
						
							|  |  |  |     // globalConfig.debug.instantMiners = true;
 | 
					
						
							|  |  |  |     globalConfig.debug.disableSavegameWrite = true; | 
					
						
							|  |  |  |     // globalConfig.beltSpeedItemsPerSecond *= 2;
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if (globalConfig.debug.fastGameEnter) { | 
					
						
							| 
									
										
										
										
											2020-09-19 10:21:32 +00:00
										 |  |  |     globalConfig.debug.noArtificialDelays = true; | 
					
						
							| 
									
										
										
										
											2020-08-29 08:38:23 +00:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2020-10-08 17:01:12 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if (G_IS_DEV && globalConfig.debug.noArtificialDelays) { | 
					
						
							|  |  |  |     globalConfig.warmupTimeSecondsFast = 0; | 
					
						
							|  |  |  |     globalConfig.warmupTimeSecondsRegular = 0; | 
					
						
							|  |  |  | } |