mirror of
https://github.com/tobspr/shapez.io.git
synced 2024-10-27 20:34:29 +00:00
Steam China improvements
This commit is contained in:
parent
728c8118e1
commit
b50ec8e3b8
@ -24,17 +24,12 @@ const roamingFolder =
|
|||||||
: process.env.HOME + "/.local/share");
|
: process.env.HOME + "/.local/share");
|
||||||
|
|
||||||
let storePath = path.join(roamingFolder, "shapez-china", "saves");
|
let storePath = path.join(roamingFolder, "shapez-china", "saves");
|
||||||
let modsPath = path.join(roamingFolder, "shapez-china", "mods");
|
|
||||||
|
|
||||||
if (!fs.existsSync(storePath)) {
|
if (!fs.existsSync(storePath)) {
|
||||||
// No try-catch by design
|
// No try-catch by design
|
||||||
fs.mkdirSync(storePath, { recursive: true });
|
fs.mkdirSync(storePath, { recursive: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fs.existsSync(modsPath)) {
|
|
||||||
fs.mkdirSync(modsPath, { recursive: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @type {BrowserWindow} */
|
/** @type {BrowserWindow} */
|
||||||
let win = null;
|
let win = null;
|
||||||
let menu = null;
|
let menu = null;
|
||||||
@ -341,49 +336,9 @@ ipcMain.handle("fs-job", async (event, job) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.handle("open-mods-folder", async () => {
|
|
||||||
shell.openPath(modsPath);
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log("Loading mods ...");
|
|
||||||
|
|
||||||
function loadMods() {
|
|
||||||
if (safeMode) {
|
|
||||||
console.log("Safe Mode enabled for mods, skipping mod search");
|
|
||||||
}
|
|
||||||
console.log("Loading mods from", modsPath);
|
|
||||||
let modFiles = safeMode
|
|
||||||
? []
|
|
||||||
: fs
|
|
||||||
.readdirSync(modsPath)
|
|
||||||
.filter(filename => filename.endsWith(".js"))
|
|
||||||
.map(filename => path.join(modsPath, filename));
|
|
||||||
|
|
||||||
if (externalMod) {
|
|
||||||
console.log("Adding external mod source:", externalMod);
|
|
||||||
const externalModPaths = externalMod.split(",");
|
|
||||||
modFiles = modFiles.concat(externalModPaths);
|
|
||||||
}
|
|
||||||
|
|
||||||
return modFiles.map(filename => fs.readFileSync(filename, "utf8"));
|
|
||||||
}
|
|
||||||
|
|
||||||
let mods = [];
|
|
||||||
try {
|
|
||||||
mods = loadMods();
|
|
||||||
console.log("Loaded", mods.length, "mods");
|
|
||||||
} catch (ex) {
|
|
||||||
console.error("Failed to load mods");
|
|
||||||
dialog.showErrorBox("Failed to load mods:", ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
ipcMain.handle("get-mods", async () => {
|
ipcMain.handle("get-mods", async () => {
|
||||||
return mods;
|
return [];
|
||||||
});
|
});
|
||||||
|
|
||||||
steam.init(isDev);
|
steam.init(isDev);
|
||||||
|
steam.listen();
|
||||||
// Only allow achievements and puzzle DLC if no mods are loaded
|
|
||||||
if (mods.length === 0) {
|
|
||||||
steam.listen();
|
|
||||||
}
|
|
||||||
|
@ -66,6 +66,7 @@ const BUILD_VARIANTS = {
|
|||||||
},
|
},
|
||||||
"standalone-steam-isbn": {
|
"standalone-steam-isbn": {
|
||||||
standalone: true,
|
standalone: true,
|
||||||
|
steamAppId: 1318690,
|
||||||
electronBaseDir: "electron_steam_isbn",
|
electronBaseDir: "electron_steam_isbn",
|
||||||
buildArgs: {
|
buildArgs: {
|
||||||
steamIsbnVersion: true,
|
steamIsbnVersion: true,
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 5.8 KiB |
BIN
res/ui/wegame_isbn_rating.png
Normal file
BIN
res/ui/wegame_isbn_rating.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
@ -1191,11 +1191,9 @@
|
|||||||
background: green;
|
background: green;
|
||||||
cursor: pointer !important;
|
cursor: pointer !important;
|
||||||
pointer-events: all;
|
pointer-events: all;
|
||||||
@include S(border-radius, 4px);
|
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
& {
|
& {
|
||||||
background: #fff uiResource("wegame_isbn_rating.jpg") center center / contain no-repeat;
|
background: uiResource("wegame_isbn_rating.png") center center / contain no-repeat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -262,6 +262,7 @@ export class MainMenuState extends GameState {
|
|||||||
抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。<br>
|
抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。<br>
|
||||||
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。
|
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。
|
||||||
</div>
|
</div>
|
||||||
|
<div class="rating"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
@ -536,10 +537,12 @@ export class MainMenuState extends GameState {
|
|||||||
.setAttribute("data-savegames", String(this.savedGames.length));
|
.setAttribute("data-savegames", String(this.savedGames.length));
|
||||||
|
|
||||||
// Mods
|
// Mods
|
||||||
this.trackClicks(
|
if (!G_STEAM_ISBN_VERSION) {
|
||||||
makeButton(outerDiv, ["modsButton", "styledButton"], T.mods.title),
|
this.trackClicks(
|
||||||
this.onModsClicked
|
makeButton(outerDiv, ["modsButton", "styledButton"], T.mods.title),
|
||||||
);
|
this.onModsClicked
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
buttonContainer.appendChild(outerDiv);
|
buttonContainer.appendChild(outerDiv);
|
||||||
}
|
}
|
||||||
|
@ -30,9 +30,15 @@ export class SettingsState extends TextualGameState {
|
|||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
${
|
||||||
|
// Disable mods for steam china
|
||||||
|
G_STEAM_ISBN_VERSION
|
||||||
|
? ""
|
||||||
|
: `
|
||||||
<button class="styledButton categoryButton manageMods">${T.mods.title}
|
<button class="styledButton categoryButton manageMods">${T.mods.title}
|
||||||
<span class="newBadge">${T.settings.newBadge}</span>
|
<span class="newBadge">${T.settings.newBadge}</span>
|
||||||
</button>
|
</button>`
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
<div class="other ${G_CHINA_VERSION || G_ISBN_VERSION ? "noabout" : ""}">
|
<div class="other ${G_CHINA_VERSION || G_ISBN_VERSION ? "noabout" : ""}">
|
||||||
|
@ -152,13 +152,15 @@ dialogs:
|
|||||||
desc: 您还没有解锁蓝图功能!通过第12关的挑战后可解锁蓝图。
|
desc: 您还没有解锁蓝图功能!通过第12关的挑战后可解锁蓝图。
|
||||||
keybindingsIntroduction:
|
keybindingsIntroduction:
|
||||||
title: 实用快捷键
|
title: 实用快捷键
|
||||||
desc: "这个游戏有很多有用的快捷键设定。 以下是其中的一些介绍,记得在<strong>按键设置</strong>中查看其他按键设定!<br><br>
|
desc:
|
||||||
|
"这个游戏有很多有用的快捷键设定。 以下是其中的一些介绍,记得在<strong>按键设置</strong>中查看其他按键设定!<br><br>
|
||||||
<code class='keybinding'>CTRL键</code> + 拖动:选择区域以复制或删除。<br> <code
|
<code class='keybinding'>CTRL键</code> + 拖动:选择区域以复制或删除。<br> <code
|
||||||
class='keybinding'>SHIFT键</code>: 按住以放置多个同一种设施。<br> <code
|
class='keybinding'>SHIFT键</code>: 按住以放置多个同一种设施。<br> <code
|
||||||
class='keybinding'>ALT键</code>: 反向放置传送带。<br>"
|
class='keybinding'>ALT键</code>: 反向放置传送带。<br>"
|
||||||
createMarker:
|
createMarker:
|
||||||
title: 创建地图标记
|
title: 创建地图标记
|
||||||
desc: 填写一个有意义的名称, 还可以同时包含一个形状的 <strong>短代码</strong> (您可以 <link>点击这里</link>
|
desc:
|
||||||
|
填写一个有意义的名称, 还可以同时包含一个形状的 <strong>短代码</strong> (您可以 <link>点击这里</link>
|
||||||
生成短代码)
|
生成短代码)
|
||||||
titleEdit: 编辑地图标记
|
titleEdit: 编辑地图标记
|
||||||
markerDemoLimit:
|
markerDemoLimit:
|
||||||
@ -248,8 +250,9 @@ dialogs:
|
|||||||
resourceLoadFailed:
|
resourceLoadFailed:
|
||||||
title: 资源加载错误
|
title: 资源加载错误
|
||||||
demoLinkText: DEMO
|
demoLinkText: DEMO
|
||||||
descWeb: "一个或更多资源无法加载。请确保您的网络处于正常连接状态。如果仍旧出现问题,请确保已关闭所有浏览器插件(包括屏蔽广告插件)。<br><br>
|
descWeb:
|
||||||
作为一种选择,您也可以玩<demoOnSteamLinkText>。 <br><br>错误信息:"
|
"一个或更多资源无法加载。请确保您的网络处于正常连接状态。如果仍旧出现问题,请确保已关闭所有浏览器插件(包括屏蔽广告插件)。<br><br>
|
||||||
|
作为一种选择,您也可以玩<demoOnSteamLinkText>。 <br><br>错误信息:"
|
||||||
descSteamDemo: "一个或更多资源无法加载。可以试着重启游戏 - 如果依旧不行,请试下重新安装或验证完整性。 <br><br>错误信息:"
|
descSteamDemo: "一个或更多资源无法加载。可以试着重启游戏 - 如果依旧不行,请试下重新安装或验证完整性。 <br><br>错误信息:"
|
||||||
steamSsoError:
|
steamSsoError:
|
||||||
title: 登出完成版本
|
title: 登出完成版本
|
||||||
@ -347,18 +350,22 @@ ingame:
|
|||||||
interactiveTutorial:
|
interactiveTutorial:
|
||||||
title: 新手教程
|
title: 新手教程
|
||||||
hints:
|
hints:
|
||||||
1_1_extractor: 亲爱的玩家,欢迎来到<strong>《图形工厂》<strong>!在这里你可以通过创造各种图形设施与传送带模拟流水线生产,尽情发挥创造力,创办属于自己的工厂!<br><br>
|
1_1_extractor:
|
||||||
|
亲爱的玩家,欢迎来到<strong>《图形工厂》<strong>!在这里你可以通过创造各种图形设施与传送带模拟流水线生产,尽情发挥创造力,创办属于自己的工厂!<br><br>
|
||||||
在<strong>圆形<strong>上放置一个<strong>开采器</strong>来获取圆形!<br><br>提示:<strong>按下鼠标左键</strong>选中<strong>开采器</strong>
|
在<strong>圆形<strong>上放置一个<strong>开采器</strong>来获取圆形!<br><br>提示:<strong>按下鼠标左键</strong>选中<strong>开采器</strong>
|
||||||
1_2_conveyor: 用<strong>传送带</strong>将您的开采器连接到中心基地上!<br><br>提示:选中<strong>传送带</strong>后<strong>按下鼠标左键可拖动</strong>布置传送带!
|
1_2_conveyor: 用<strong>传送带</strong>将您的开采器连接到中心基地上!<br><br>提示:选中<strong>传送带</strong>后<strong>按下鼠标左键可拖动</strong>布置传送带!
|
||||||
1_3_expand: 您可以放置更多的<strong>开采器</strong>和<strong>传送带</strong>来更有效率地完成关卡目标。<br><br>
|
1_3_expand:
|
||||||
|
您可以放置更多的<strong>开采器</strong>和<strong>传送带</strong>来更有效率地完成关卡目标。<br><br>
|
||||||
提示:按住 <strong>SHIFT</strong>
|
提示:按住 <strong>SHIFT</strong>
|
||||||
键可放置多个<strong>开采器</strong>,注意用<strong>R</strong>
|
键可放置多个<strong>开采器</strong>,注意用<strong>R</strong>
|
||||||
键可旋转<strong>开采器</strong>的出口方向,确保开采的图形可以顺利传送。
|
键可旋转<strong>开采器</strong>的出口方向,确保开采的图形可以顺利传送。
|
||||||
2_1_place_cutter: 现在放置一个<strong>切割器</strong>,这个设施可把<strong>圆形</strong>切成两半!<br><br>注意:无论如何放置,切割机总是<strong>从上到下</strong>切割。
|
2_1_place_cutter: 现在放置一个<strong>切割器</strong>,这个设施可把<strong>圆形</strong>切成两半!<br><br>注意:无论如何放置,切割机总是<strong>从上到下</strong>切割。
|
||||||
2_2_place_trash: 使用切割机后产生的废弃图形会导致<strong>堵塞</strong>。<br><br>注意使用<strong>垃圾桶</strong>清除当前
|
2_2_place_trash:
|
||||||
|
使用切割机后产生的废弃图形会导致<strong>堵塞</strong>。<br><br>注意使用<strong>垃圾桶</strong>清除当前
|
||||||
(!) 不需要的废物。
|
(!) 不需要的废物。
|
||||||
2_3_more_cutters: 干的好!现在放置<strong>2个以上的切割机</strong>来加快当前缓慢的过程!<br><br>提示:用<strong>快捷键0-9</strong>可以快速选择各项设施!
|
2_3_more_cutters: 干的好!现在放置<strong>2个以上的切割机</strong>来加快当前缓慢的过程!<br><br>提示:用<strong>快捷键0-9</strong>可以快速选择各项设施!
|
||||||
3_1_rectangles: 现在让我们开采一些矩形!找到<strong>矩形地带</strong>并<strong>放置4个开采器</strong>并将它们用<strong>传送带</strong>连接到中心基地。<br><br>
|
3_1_rectangles:
|
||||||
|
现在让我们开采一些矩形!找到<strong>矩形地带</strong>并<strong>放置4个开采器</strong>并将它们用<strong>传送带</strong>连接到中心基地。<br><br>
|
||||||
提示:选中<strong>传送带</strong>后按住<strong>SHIFT键</strong>可快速准确地规划<strong>传送带路线!</strong>
|
提示:选中<strong>传送带</strong>后按住<strong>SHIFT键</strong>可快速准确地规划<strong>传送带路线!</strong>
|
||||||
21_1_place_quad_painter: 放置<strong>四口上色器</strong>并且获取一些<strong>圆形</strong>,<strong>白色</strong>和<strong>红色</strong>!
|
21_1_place_quad_painter: 放置<strong>四口上色器</strong>并且获取一些<strong>圆形</strong>,<strong>白色</strong>和<strong>红色</strong>!
|
||||||
21_2_switch_to_wires: 按 <strong>E</strong> 键选择<strong>电线层</strong>!<br><br>
|
21_2_switch_to_wires: 按 <strong>E</strong> 键选择<strong>电线层</strong>!<br><br>
|
||||||
@ -655,7 +662,8 @@ storyRewards:
|
|||||||
desc: 恭喜!您解锁了<strong>旋转机</strong>。它会顺时针将输入的<strong>图形旋转90度</strong>。
|
desc: 恭喜!您解锁了<strong>旋转机</strong>。它会顺时针将输入的<strong>图形旋转90度</strong>。
|
||||||
reward_painter:
|
reward_painter:
|
||||||
title: 上色
|
title: 上色
|
||||||
desc: 恭喜!您解锁了<strong>上色器</strong>。开采一些颜色 (就像您开采图形一样),将其在上色器中与图形结合来将图形上色!
|
desc:
|
||||||
|
恭喜!您解锁了<strong>上色器</strong>。开采一些颜色 (就像您开采图形一样),将其在上色器中与图形结合来将图形上色!
|
||||||
<br>注意:如果您不幸患有色盲,可以在设置中启用<strong>色盲模式</strong>
|
<br>注意:如果您不幸患有色盲,可以在设置中启用<strong>色盲模式</strong>
|
||||||
reward_mixer:
|
reward_mixer:
|
||||||
title: 混合颜色
|
title: 混合颜色
|
||||||
@ -672,11 +680,13 @@ storyRewards:
|
|||||||
desc: 恭喜!您解锁了<strong>隧道</strong>。它可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。
|
desc: 恭喜!您解锁了<strong>隧道</strong>。它可放置在<strong>传送带</strong>或<strong>设施</strong>下方以运送物品。
|
||||||
reward_rotater_ccw:
|
reward_rotater_ccw:
|
||||||
title: 逆时针旋转
|
title: 逆时针旋转
|
||||||
desc: 恭喜!您解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。它可以逆时针旋转<strong>图形</strong>。
|
desc:
|
||||||
|
恭喜!您解锁了<strong>旋转机</strong>的<strong>逆时针</strong>变体。它可以逆时针旋转<strong>图形</strong>。
|
||||||
<br>选择<strong>旋转机</strong>然后按"T"键来选取这个变体。
|
<br>选择<strong>旋转机</strong>然后按"T"键来选取这个变体。
|
||||||
reward_miner_chainable:
|
reward_miner_chainable:
|
||||||
title: 链式开采器
|
title: 链式开采器
|
||||||
desc: 您已经解锁了<strong>链式开采器</strong>!它能<strong>转发资源</strong>给其他的开采器,这样您就能更有效率的开采各类资源了!<br><br>
|
desc:
|
||||||
|
您已经解锁了<strong>链式开采器</strong>!它能<strong>转发资源</strong>给其他的开采器,这样您就能更有效率的开采各类资源了!<br><br>
|
||||||
注意:新的开采器已替换了工具栏里旧的开采器!
|
注意:新的开采器已替换了工具栏里旧的开采器!
|
||||||
reward_underground_belt_tier_2:
|
reward_underground_belt_tier_2:
|
||||||
title: 二级隧道
|
title: 二级隧道
|
||||||
@ -693,12 +703,14 @@ storyRewards:
|
|||||||
<br>它<strong>优先从左边</strong>输出,这样您就可以用它做一个<strong>溢流门</strong>了!
|
<br>它<strong>优先从左边</strong>输出,这样您就可以用它做一个<strong>溢流门</strong>了!
|
||||||
reward_freeplay:
|
reward_freeplay:
|
||||||
title: 自由模式
|
title: 自由模式
|
||||||
desc: 成功了!您解锁了<strong>自由模式</strong>!挑战升级!这意味着现在将<strong>随机</strong>生成图形!
|
desc:
|
||||||
|
成功了!您解锁了<strong>自由模式</strong>!挑战升级!这意味着现在将<strong>随机</strong>生成图形!
|
||||||
从现在起,中心基地最为需要的是<strong>产量</strong>,我强烈建议您去制造一台能够自动交付所需图形的机器!<br><br>
|
从现在起,中心基地最为需要的是<strong>产量</strong>,我强烈建议您去制造一台能够自动交付所需图形的机器!<br><br>
|
||||||
基地会在<strong>电线层</strong>输出需要的图形,您需要去分析图形并在此基础上自动配置您的工厂。
|
基地会在<strong>电线层</strong>输出需要的图形,您需要去分析图形并在此基础上自动配置您的工厂。
|
||||||
reward_blueprints:
|
reward_blueprints:
|
||||||
title: 蓝图
|
title: 蓝图
|
||||||
desc: 您现在可以<strong>复制粘贴</strong>您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域,然后按C键复制。
|
desc:
|
||||||
|
您现在可以<strong>复制粘贴</strong>您的工厂的一部分了!按住 CTRL键并拖动鼠标来选择一块区域,然后按C键复制。
|
||||||
<br><br>粘贴并<strong>不是免费的</strong>,您需要制造<strong>蓝图图形</strong>来负担。蓝图图形是您刚刚交付的图形。
|
<br><br>粘贴并<strong>不是免费的</strong>,您需要制造<strong>蓝图图形</strong>来负担。蓝图图形是您刚刚交付的图形。
|
||||||
no_reward:
|
no_reward:
|
||||||
title: 下一关
|
title: 下一关
|
||||||
@ -726,7 +738,8 @@ storyRewards:
|
|||||||
<br>注意:您注意到<strong>传送读取器</strong>和<strong>存储器</strong>输出的他们最后读取的物品了吗?试着在显示屏上展示一下!"
|
<br>注意:您注意到<strong>传送读取器</strong>和<strong>存储器</strong>输出的他们最后读取的物品了吗?试着在显示屏上展示一下!"
|
||||||
reward_constant_signal:
|
reward_constant_signal:
|
||||||
title: 恒定信号
|
title: 恒定信号
|
||||||
desc: 恭喜!您解锁了生成于电线层之上的<strong>恒定信号</strong>,把它连接到<strong>过滤器</strong>时非常有用。
|
desc:
|
||||||
|
恭喜!您解锁了生成于电线层之上的<strong>恒定信号</strong>,把它连接到<strong>过滤器</strong>时非常有用。
|
||||||
<br>比如,它能发出图形、颜色、开关值(1 / 0)的固定信号。
|
<br>比如,它能发出图形、颜色、开关值(1 / 0)的固定信号。
|
||||||
reward_logic_gates:
|
reward_logic_gates:
|
||||||
title: 逻辑门
|
title: 逻辑门
|
||||||
@ -745,7 +758,8 @@ storyRewards:
|
|||||||
<strong>提示</strong>:可在设置中打开电线层教程!"
|
<strong>提示</strong>:可在设置中打开电线层教程!"
|
||||||
reward_filter:
|
reward_filter:
|
||||||
title: 物品过滤器
|
title: 物品过滤器
|
||||||
desc: 恭喜!您解锁了<strong>物品过滤器</strong>!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。<br><br>
|
desc:
|
||||||
|
恭喜!您解锁了<strong>物品过滤器</strong>!它会根据在电线层上输入的信号决定是从上面还是右边输出物品。<br><br>
|
||||||
您也可以输入开关值(1 / 0)信号来激活或者禁用它。
|
您也可以输入开关值(1 / 0)信号来激活或者禁用它。
|
||||||
reward_demo_end:
|
reward_demo_end:
|
||||||
title: 试玩结束
|
title: 试玩结束
|
||||||
|
Loading…
Reference in New Issue
Block a user