focus-creative-games / luban

luban是一个强大、易用、优雅、稳定的游戏配置解决方案。luban is a powerful, easy-to-use, elegant and stable game configuration solution.
https://code-philosophy.com/
MIT License
3.41k stars 543 forks source link

导出表数据时如何额外生成一个存储常量值的C#类 #133

Closed zhaige95 closed 6 months ago

zhaige95 commented 6 months ago

表格结构:

----------------------------------------------------------------------
##var   id  desc    attr_name   default_val
##type  int string  string  float
##  id  属性名 字段名 默认值
----------------------------------------------------------------------
    1   生命值 hp  0
    2       hp_base 0
    3       hp_add  0
    4       hp_rate 0
----------------------------------------------------------------------

我想在导表的时候额外生成一个C#类,存储字段名内容作为字符串常量,像这样:

public class GameAttrName() { public const string hp = "hp", public const string hp_base = "hp_base", public const string hp_add = "hp_add", public const string hp_rate = "hp_rate", }

请问要怎么做?

pirunxi commented 6 months ago

在luban中,数据不能影响生成的代码,所以试图在数据表格中定义这些并且生成代码,并没有直接可行的办法。

一个解决办法是,修改SchemaLoader,新增const常量类型的支持,让它支持像bean或枚举一样支持常量定义。然后再修改代码,支持生成const类型的代码。