Noark入门之策划配置

Stella981
• 阅读 576

游戏开发中,策划就是导演,策划为了掌控游戏世界的规则,从而引入了策划配置文件.

Noark内置了CSV文件到JavaBean映射,由Excel到CSV文件请参考导表工具的实现

编码模板类文件ItemTemplate.java

@TplFile("Item.tpl")
public class ItemTemplate {
    /** 道具编号 */
    @TplAttr(name = "Id")
    private String id;
    /** 道具名称 */
    @TplAttr(name = "Name")
    private String name;
    /** 品质 */
    @TplAttr(name = "Quality")
    private int quality;
    /** 道具图标 */
    @TplAttr(name = "ICON")
    private String icon;
    
    ...省略GetSet方法
}

道具模板管理类ItemTemplateManager.java

@Service
public class ItemTemplateManager extends AbstractTemplateManager {

    private Map<String, ItemTemplate> itemTemplates;

    @Override
    public String getModuleName() {
        return "道具系统";
    }

    @Override
    public void loadData() {
        this.itemTemplates = templateLoader.loadAll(ItemTemplate.class, ItemTemplate::getId);
    }

    public ItemTemplate getItemTemplate(String id) {
        return itemTemplates.get(id);
    }
}

是不是很简单...

使用场景1:道具表被策划分为多个Sheet来存放,比如普通道具一个Sheet,宝石一个Sheet,装备一个Sheet,如何来写模板呢...

建筑策划同学道具共有配置把名称搞一致,方便抽象.

先来一个抽象类AbsItemTemplate,共有属性放这里,其他每一个功能实现一个子类...

如果策划作死,两个表中同一功能的配置名称不一,那就定义一个接口子类实现,只是日后维护有点蛋疼,祝你性福...

结论:Noark是支持父类中编写属性配置的

使用场景2:策划把XX属性配置给删了,但又想在日后加回来了...

直接参考编码

@TplAttr(name = "Level", required=false)
private int level = 1;

配置字段默认是必选项,但可以手工设置为false

结论:Noark是支持属性为非必选,在没有配置的情况下使用属性的默认值

使用场景3:策划想配置一个数组,比如 1,2,3,5,6,7

@TplAttr(name = "UnlockList")
private IntList unlockList;

IntList为Noark提供的int[]接口,具体由IntArrayList类实现,用法参考JDK的ArrayList

使用场景4:除了int, long, boolean, String, IntList还能使用哪些类型

目前默认支持JDK的基本数据类型和相关数组类型,自定义类型请参考转化器介绍

理论上支持所有数据类型的映射...

点赞
收藏
评论区
推荐文章
Easter79 Easter79
2年前
vue+iview中的table表格导出excel表格
一、iveiw框架中table中有exportCsv()方法可以导出.csv后缀文件,类似于excel文件,但是并不是excel文件。二、实现table表格导出excel文件利用Blob.js和Export2Excel.js两个文件实现  1.Blob.js和Export2Excel.js文件    链接:https://pan.baid
Souleigh ✨ Souleigh ✨
3年前
震惊!!Flutter 2 来了!
{{{width300}}}作者|Flutter官方博客译者|核子可乐策划
Stella981 Stella981
2年前
2021 最顶级 React 组件库推荐
点上方蓝字关注公众号「前端从进阶到入院」作者丨MaxRozen译者丨王强策划丨小智AntDesign!(https://oscimg.oschina.net/oscnet/a85c35f23bd04e5da6a1e5e68a24119b.png)项目链接:AntDesignh
Easter79 Easter79
2年前
TypeScript 4.0正式发布!现在是开始使用它的最佳时机
!(https://oscimg.oschina.net/oscnet/9d5dde21c00d49b6b148bfabfc93db57.jpg)作者|DanielRosenwasser译者|王强策划|李俊辰稿源|前端之巅微软宣布TypeScript4.0正式版上线了!这一新版本深入改进了表现力、生产力
Stella981 Stella981
2年前
Python之CSV模块
1\.CSV简介CSV(CommaSeparatedValues)是逗号分隔符文本格式,常用于Excel和数据库的导入和导出,Python标准库的CSV模块提供了读取和写入CSV格式文件的对象。1.1csv.reader对象和csv文件的读取
Wesley13 Wesley13
2年前
UTF
  最近工作中需要将一些数据写入CSV文件中,并要使用Excel打开进行查看。测试时发现,导出的CSV文件用Excel打开后,中文字符全部是乱码。写入CSV文件的是UTF8编码的数据,文件在Linux中查看是没有问题的,在Windows上用Excel打开却有乱码。在查阅资料后发现,windows系统中文本文档的编码格式用BOM来指定,在文件的开头要写入字符
Stella981 Stella981
2年前
Python3编写网络爬虫10
3.CSV文件存储CSV全称CommaSeparatedValues中文叫做逗号分隔值或者字符分隔值,文件以纯文本形式存储表格数据。文件是一个字符序列可以由任意数目的记录组成相当于一个结构化表的纯文本形式,它比Excel更加简洁,XLS文本是电子表格,包含文本,数值,公式和格式等内容,CSV都没有就是特定的字符分隔纯文本,结构简
可莉 可莉
2年前
2021 最顶级 React 组件库推荐
点上方蓝字关注公众号「前端从进阶到入院」作者丨MaxRozen译者丨王强策划丨小智AntDesign!(https://oscimg.oschina.net/oscnet/a85c35f23bd04e5da6a1e5e68a24119b.png)项目链接:AntDesignh
万界星空科技 万界星空科技
6个月前
MES系统实施的几大关键步骤
MES系统实施的几大关键步骤​ 在制造业中,MES管理系统成为了提升生产效率、优化资源配置和确保产品质量的关键工具。然而,由于MES管理系统的复杂性,成功实施并发挥其最大效益需要一系列精心策划的步骤。