Restructure project

This commit is contained in:
Misode
2020-05-28 03:34:55 +02:00
parent 3aa134c544
commit 06734760f3
9 changed files with 30 additions and 30 deletions

55
src/app/Sandbox.ts Normal file
View File

@@ -0,0 +1,55 @@
import { ObjectNode } from '../nodes/ObjectNode';
import { EnumNode } from '../nodes/EnumNode';
import { NumberNode } from '../nodes/NumberNode';
import { BooleanNode } from '../nodes/BooleanNode';
import { RangeNode } from '../minecraft/nodes/RangeNode';
import { MapNode } from '../nodes/MapNode';
import { StringNode } from '../nodes/StringNode';
import { ListNode } from '../nodes/ListNode';
const EntityCollection = ['sheep', 'pig']
export const SandboxSchema = new ObjectNode({
condition: new EnumNode(['foo', 'bar'], {
default: () => 'bar'
}),
number: new NumberNode({integer: false, min: 0}),
range: new RangeNode({
enable: (path) => path.push('condition').get() === 'foo'
}),
predicate: new ObjectNode({
type: new EnumNode(EntityCollection),
nbt: new StringNode({
default: (v) => 'hahaha'
}),
test: new BooleanNode({force: () => true}),
recipes: new MapNode(
new StringNode(),
new RangeNode({
default: (v) => RangeNode.isExact(v) ? 2 : v,
transform: (v: any) => RangeNode.isRange(v) ? ({
min: v?.min ?? -2147483648,
max: v?.max ?? 2147483647
}) : v
})
)
}),
effects: new ListNode(
new ObjectNode({
type: new EnumNode(EntityCollection),
nbt: new StringNode()
}, {
default: () => ({
type: 'sheep'
})
})
)
}, {
default: () => ({
condition: 'foo',
predicate: {
nbt: 'hi'
}
}),
transform: (v) => v?.condition === 'foo' ? ({...v, test: 'hello'}) : v
});

View File

@@ -1,8 +1,8 @@
import { DataModel } from '../model/DataModel'
import { TreeView } from '../view/TreeView'
import { SourceView } from '../view/SourceView'
import { ConditionSchema } from '../schemas/Condition'
import { SandboxSchema } from '../schemas/Sandbox'
import { ConditionSchema } from '../minecraft/schemas/Condition'
import { SandboxSchema } from './Sandbox'
const predicateModel = new DataModel(ConditionSchema)
const sandboxModel = new DataModel(SandboxSchema)