Skip to content

feat: Phase 3 — sync remaining calc engine modules with upstream#12

Merged
kokagex merged 10 commits intopob2macos_stage2from
feat/upstream-module-sync
Feb 19, 2026
Merged

feat: Phase 3 — sync remaining calc engine modules with upstream#12
kokagex merged 10 commits intopob2macos_stage2from
feat/upstream-module-sync

Conversation

@kokagex
Copy link
Copy Markdown
Owner

@kokagex kokagex commented Feb 19, 2026

Summary

  • Sync 11 calculation engine / utility modules from upstream PathOfBuildingCommunity/PathOfBuilding-PoE2 dev branch
  • 6 wholesale replacements: CalcSections, Calcs, CalcTools, BuildDisplayStats, CalcBreakdown, BuildSiteTools
  • 5 manual merges preserving macOS-specific patches: Data.lua, Common.lua, ModTools.lua, StatDescriber.lua, BuildList.lua
  • Fix getGemStatRequirement argument order in SkillsTab.lua and GemSelectControl.lua to match upstream signature (level, multi, isSupport)

Local patches preserved

  • Data.lua: setmetatable guards for characterConstants/monsterConstants, weaponTypeInfo legacy aliases
  • Common.lua: UTF-8 multibyte validator (prevents Japanese text destruction), copyTable/pairsSortByKey nil guards
  • ModTools.lua: formatTag mixed key type sort comparator
  • BuildList.lua: screenScale * s HiDPI scaling, i18n.t() labels, textInputActive keyboard guard

Test plan

  • luajit -bl syntax check on all 13 files (passed)
  • App launch and main screen loads
  • Calcs tab displays correctly with DPS values
  • Gem requirements display correctly (getGemStatRequirement arg order)

🤖 Generated with Claude Code

kokagex and others added 10 commits February 20, 2026 06:21
Sync 11 calc/engine files from upstream/dev, plus 2 caller fixes:

Wholesale replacements (6):
- CalcSections, Calcs, CalcTools, BuildDisplayStats, CalcBreakdown, BuildSiteTools

Manual merges preserving local patches (5):
- Data.lua: metatable guards + weaponType aliases
- Common.lua: UTF-8 validator + nil guards
- ModTools.lua: formatTag mixed-key sort comparator
- StatDescriber.lua: upstream io.open (pcall no longer needed)
- BuildList.lua: screenScale, i18n.t(), textInputActive guard

Caller fixes:
- SkillsTab.lua, GemSelectControl.lua: getGemStatRequirement arg order
  (level, multi, isSupport)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Upstream sync accidentally removed:
- data.rebuildItemListLabels() for item/base name translation
- StatDescriber i18n.lookup() for stat description translation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…peList

Upstream changed itemBaseTypeList from table-of-tables to string array.
Promote string entries to {name, label} tables on i18n rebuild so
DropDownControl can display translated labels while consumers still
access .name for lookup keys.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Upstream's io.open uses relative path without src/ prefix, but
LoadModule prepends src/ while io.open resolves from CWD
(Contents/Resources/). Add src/ prefix so specific skill stat
description files are found correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ItemTools.formatModLine: translate item mod lines via translateModLine
- GemSelectControl: translate gem stat description lines as fallback
- PassiveTreeView: translate tree node stat lines when sd_display missing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Phase 3 sync details and document remaining i18n translation
dictionary work needed for ja_stat_descriptions and ja_mod_stat_lines.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… labels

Upstream CalcSections adds new label keys not yet in ja locale calcs
section. Fall back to English label when i18n.lookup returns nil.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Japanese translations for all new upstream CalcSections labels
including Spirit, Deflection, Freeze Buildup, Charm, Mark, and other
PoE2-specific stats.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- StatDescriber: add m_floor alias, fix undefined floor() call
- CalcSections: fix duplicate notFlag → notFlagList for Eff. Source Rate
- CalcSections: fix modName table syntax for MindOverMatter (Phys/Cold/Fire)
- CalcTools: restore nil guard for multi in getGemStatRequirement
- BuildSiteTools: add trailing newline

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kokagex kokagex merged commit 7a39e78 into pob2macos_stage2 Feb 19, 2026
1 check passed
@kokagex kokagex deleted the feat/upstream-module-sync branch February 21, 2026 04:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant