Skip to content

metasheet: change container type from map to list #333

@wenchy

Description

@wenchy

Previously, we have talked deeply about:

Hoewever, if we change map<string, Metasheet> metasheet_map to repeated Metasheet sheet_list

message Metabook {
option (tableau.worksheet) = {name:"@TABLEAU" namerow:1 datarow:2};
map<string, Metasheet> metasheet_map = 1 [(tableau.field).key = "Sheet"];
}

It has following benefits:

  • Configure and generate multiple messages for the same sheet in the same metasheet
  • More stable (controlled by game developers) and ordered generated messages by the metasheet list container but not native sheet order (controlled by game designers) in workbook

But it will introduce following breaking changes:

After prototyping, it will break the XML/YAML metatsheet forms which are currently unacceptable!

For yaml format example:

# define metasheet: generate all sheets
"@sheet": "@TABLEAU"
"YamlMergerConf":
Merger: "Merger*.yaml"

will be changed to

# define metasheet: generate all sheets 
"@sheet": "@TABLEAU" 
"SheetList":
  - Name: "YamlMergerConf"
    Merger: "Merger*.yaml" 

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions