Files
ngzz-mc/scripts/installer.nsi
NianGao Dev fc151e7c07 fix(render): 修复白屏/黑屏——视图矩阵、UI着色器、网格构建性能与安装目录
- 相机视图矩阵按 R_cam^T·T(-pos) 正确推导(旧布局非正交,非零视角下场景塌缩为灰屏)
- UI 片元着色器改为纹理×颜色(旧实现丢弃纹理 RGB,彩色纹理全白)
- UI 纹理与图集 mipmap:图集补齐 2 次幂、UI 上传不生成 mipmap(NPOT 不完整纹理采样纯白)
- 网格构建持一次读锁(旧实现每格邻居查询各加锁约 40 万次/区块,出生区块迟迟无网格,
  玩家透过脚下的洞看到地下横截面——进游戏黑屏主因);脏区块按距离排序优先构建
- 开启背面剔除(CW 正面):区块边界面向未加载邻居的内侧面不再以暗色出现在视野里
- 出生逻辑:等区块加载后定位地表出生,相机略微俯视
- dev 截图测试:-shot 等待玩家所在 5×5 区块网格就绪再拍(48s 兜底),先测试后打包
- 安装器改为按用户安装到 LOCALAPPDATA(Program Files 无写权限导致启动即崩)
- dev 截图工具独立成 devshot_gl.go
2026-08-16 08:33:08 +08:00

104 lines
3.7 KiB
NSIS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Unicode true
; 年糕历险记 —— Windows 安装脚本NSIS 3简体中文
; 用法makensis /DVERSION=1.0.0 scripts/installer.nsi
; 产物:年糕历险记-Setup-v1.0.0.exe构建与发布.md §8
!include "MUI2.nsh"
; ---- 产品信息(构建与发布.md §8名称统一为 年糕历险记)----
!ifndef VERSION
!define VERSION "0.1.0"
!endif
!define PRODUCT_NAME "年糕历险记"
!define PRODUCT_NAME_EN "NianGao Adventure"
!define PRODUCT_PUBLISHER "NianGao Studio"
!define PRODUCT_EXE "mc-client.exe"
!define INSTALLER_NAME "${PRODUCT_NAME}-Setup-v${VERSION}.exe"
!define UNINSTALL_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME_EN}"
Name "${PRODUCT_NAME}"
OutFile "..\dist\${INSTALLER_NAME}"
; 按用户安装(游戏需要往自身目录写日志/存档Program Files 无写入权限会导致启动崩溃)
InstallDir "$LOCALAPPDATA\Programs\${PRODUCT_NAME_EN}"
InstallDirRegKey HKCU "${UNINSTALL_KEY}" "InstallLocation"
RequestExecutionLevel user
SetCompressor /SOLID lzma
!define MUI_ABORTWARNING
!define MUI_FINISHPAGE_RUN "$INSTDIR\${PRODUCT_EXE}"
!define MUI_FINISHPAGE_RUN_TEXT "运行${PRODUCT_NAME}"
; ---- 页面(全中文)----
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "SimpChinese"
; ---- 安装内容(构建与发布.md §8----
Section "主程序" SEC01
SetOutPath "$INSTDIR"
File "..\bin\mc-client.exe"
File "..\bin\mc-server.exe"
; 配置与语言
SetOutPath "$INSTDIR\config"
File "..\config\client.yaml"
File "..\config\server.yaml"
; 游戏数据(方块/物品/配方注册表)
SetOutPath "$INSTDIR\assets"
File /r "..\assets\*.*"
; 默认素材包
SetOutPath "$INSTDIR\resourcepacks\texture-pack-default1.20.5-26.2"
File /r "..\resourcepacks\texture-pack-default1.20.5-26.2\*.*"
; 内容包投放目录与说明
SetOutPath "$INSTDIR\mods"
File "..\mods\README.md"
; 初始化:创建存档/日志目录与占位说明(安装与初始化)
CreateDirectory "$INSTDIR\worlds"
CreateDirectory "$INSTDIR\logs"
FileOpen $0 "$INSTDIR\worlds\说明.txt" w
FileWrite $0 "世界存档目录:游戏会自动把世界保存到这里。"
FileClose $0
; 注册卸载信息(按用户安装 → HKCU
WriteRegStr HKCU "${UNINSTALL_KEY}" "DisplayName" "${PRODUCT_NAME}"
WriteRegStr HKCU "${UNINSTALL_KEY}" "DisplayVersion" "${VERSION}"
WriteRegStr HKCU "${UNINSTALL_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
WriteRegStr HKCU "${UNINSTALL_KEY}" "DisplayIcon" "$INSTDIR\${PRODUCT_EXE}"
WriteRegStr HKCU "${UNINSTALL_KEY}" "InstallLocation" "$INSTDIR"
WriteRegStr HKCU "${UNINSTALL_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKCU "${UNINSTALL_KEY}" "NoModify" 1
WriteRegDWORD HKCU "${UNINSTALL_KEY}" "NoRepair" 1
WriteUninstaller "$INSTDIR\uninstall.exe"
; 快捷方式(桌面 + 开始菜单,中文名)
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_EXE}"
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_EXE}"
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\卸载${PRODUCT_NAME}.lnk" "$INSTDIR\uninstall.exe"
SectionEnd
; ---- 卸载 ----
Section "Uninstall"
Delete "$DESKTOP\${PRODUCT_NAME}.lnk"
RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}"
Delete "$INSTDIR\${PRODUCT_EXE}"
Delete "$INSTDIR\mc-server.exe"
Delete "$INSTDIR\uninstall.exe"
RMDir /r "$INSTDIR\config"
RMDir /r "$INSTDIR\resourcepacks"
RMDir /r "$INSTDIR\mods"
; 保留用户存档worlds/)与日志,不删除
DeleteRegKey HKCU "${UNINSTALL_KEY}"
SectionEnd