Giter Club home page Giter Club logo

normaconstructor's People

Contributors

callstackexceed avatar dzx-dzx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

normaconstructor's Issues

Compreesion method

In the current practice, all blocks are independent from each other. This has simplified the implementation in the past, but at the cost of redundant information.
One compression method is to group the blocks based on their blocktypes.
{ blockTypes:[{...},{...}], coordinates:[{x:0,y:0,z:0,blockTypeIndex:0},...] }

Alter the basic data

For example:
Remove tickingArea from Position.
Add dimension to Position.
Add tiledata to blockType (to be discussed).

Reverting optimization for getting tileData

blockStateToTileDataTable.has(JSON.stringify(blockType.blockState))
It seems wrong to assume that blockState is unique, and will be troublesome when two blocks with different blockTypes have the same blockstate, but different tileData. (Very unlikely though...)
Anyway it shall be treated...

DrZaoFu's request

新坐标算法;
向前移动3格;
前往顶点;
只填充指定方块

直线生成加一个垂直斜率

在直线生成器上加一个垂直斜率选项,表示每个直线的Y轴方向的斜率,斜率由用户输入
斜率默认为0,即标准的平面上的生成直线
设计原理类似一个带斜率的板/楼梯
考虑到是用来做楼梯和高架辅道的,因此斜率一般都小于1

另外有一个地下隧道选项
地下隧道选项为每生成一个直线上方会进行夷平(填空气),夷平的高度由用户输入
在建隧道很有用

Separation of Framework

  • Framework will be uploaded as an independent github repository and npm package.
    • “norma-core”
  • Create another repository managing a yeoman&gulp-based toolchain.
    • Basic featurs:
    1. Create the “plugin” folder and its subdirectory, inside which developers can start their projects.
    2. Deploy and maintain framework and platforms that developers can test, run & package.
    3. “Watch”: Automatically deploy plugins and, if possible, refresh the platform(realizable on jsrunner) on the fly.
    4. “Package”: Package plugins as distributable platform-specified extension.(Compare it to released executables.)

添加城验二区马路风格

InnovatorNZ 下午 6:24:04
如图,左侧铁块作为人行道,中间从左往右依次是2黑色羊毛、1白色羊毛、4黑色羊毛、1黄色羊毛、5*黑色羊毛,右侧也是铁块作为人行道

InnovatorNZ 下午 6:24:08
可变参数为人行道宽度

Muti-backend toolchain

draft version 3

Muti-backend toolchain issue

Introduction

We need a muti-backend toolchain, managing plugins and backends for an average developer (and maybe, core developers like callstackexceed). It should handle different kinds of plugins and backends, providing easy-to-use cli (made by gulp and/or yargs).

Plugins

A plugin can be from a inside folder (npm package or git rep is planed).
A plugin.json store all information necessary.

npx gulp addplugin --npm <npm-package>
# npm install <plugin> --save
npm run addplugin -- --git <git-rep>
npm run addplugin -- --direct <folder>
npm run updateplugin -- -p <plugin>
npm run removeplugin -- -p <plugin>
npm run checkplugin -- [-p <plugin>]
  • norma-toolchain/
    • plugin/
      • plugins.json
      • hello/
        • index.js

A simple problem

There is a suggestion that we use plugin as its side effect. To make that possible, we must remove system.js.
The suggestion is allready implemented, see NorthernOceanS/norma-core#32 and #73.

Another simple problem

With current toolchain, we can only use CJS style in npm package plugin, which is very uncomfortable. Using webpack or other packing tool with ESM to replace it can remove this problem.
The suggestion is still in consideration, it have its own issue in https://github.com/NorthernOceanS/NormaConstructor.

Backends

A backend can be from a git rep (npm package or git rep is planed).

npm run addbackend -- --git <git-rep>
npm run installbackend -- -p <backend>
npm run updatebackend -- -p <backend>
npm run removebackend -- -p <backend>
npm run setinstallposition -- -p <backend> --pos <path>

A backend should implement such script:

npm run build
npm run watch
npm run packageaddon
npm run deploy -- --pos <pos>
npm run test

build:
plugin folder -> one or more .js file

  • scripting: one or two .js file
  • lxl: one .js file

packageaddon:
plugin folder -> mcaddon file
only for scripting platform (may have a few backends)

  • scripting: mcaddon file

deploy:
plugin folder -> one or more .js file -> place them in correct place

  • scripting: deploy them into offical dir
  • lxl: .js file, deploy them into correct dir

更强大的UI

现在的UI只能用来设置option内容,而且各项控件几乎相互独立,试着,譬如,切换音乐时显示名称都难。也很难做到按生成器本身情况初始化UI。

remove using of tileData

tileData is now useless in this version of MC.
translator-data.json and translator.js can be removed now.

地铁站功能

样式位于诺玛服务器内
可以使用硬编码+一键生成,鉴于对脑袋的友好

造地铁功能

横截面:
空气 石砖 石砖 石砖 石砖 石砖 空气
石砖 空气 空气 空气 空气 空气 石砖
石砖/海晶灯 空气 空气 空气 空气 空气 海晶灯
石砖 空气 空气 空气 空气 空气 石砖
石砖 空气 红石铁轨 空气/红石火把 红石铁轨 空气 石砖
石砖 石砖 石砖 石砖 石砖 石砖 石砖

海晶灯每隔四个石砖放置一个
红石火把每隔15个放置一个
石砖会有小概率变成裂石砖或苔石砖
地铁隧道样品可在服务器的-624 69 982找到
另外空气方块可能是需要放置两次的,鉴于会有砂砾掉落;或者放置的时候从最上面开始放置(即先放置天花板)以防止砂砾掉落

蓝冰高铁

横截面:
玻璃板 空气 空气 玻璃板
铁块 蓝冰 蓝冰 铁块

中间蓝冰的宽度可调,作为可变参数,示例横截面为宽度=2

加一个全局取新坐标的选项

在UI最左栏加一个按钮,功能是启用全局取新坐标而不是保留旧坐标,应用于所有生成器
这个功能添加以后原直线生成的取新坐标按钮可以移除了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.