mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-23 07:10:41 +00:00
133 lines
3.8 KiB
TypeScript
133 lines
3.8 KiB
TypeScript
import { ObjectNode } from '../nodes/ObjectNode';
|
|
import { ResourceNode } from '../nodes/custom/ResourceNode';
|
|
import { EnumNode } from '../nodes/EnumNode';
|
|
import { ListNode } from '../nodes/ListNode';
|
|
import { RangeNode } from '../nodes/custom/RangeNode';
|
|
import { StringNode } from '../nodes/StringNode';
|
|
import { ReferenceNode } from '../nodes/ReferenceNode';
|
|
import { BooleanNode } from '../nodes/BooleanNode';
|
|
import { MapNode } from '../nodes/MapNode';
|
|
import { SCHEMAS, COLLECTIONS } from './Registries';
|
|
|
|
import './Collections'
|
|
|
|
SCHEMAS.register('item-predicate', new ObjectNode({
|
|
item: new ResourceNode(COLLECTIONS.get('items')),
|
|
tag: new StringNode(),
|
|
count: new RangeNode(),
|
|
durability: new RangeNode(),
|
|
potion: new StringNode(),
|
|
nbt: new StringNode(),
|
|
enchantments: new ListNode(
|
|
new ReferenceNode('enchantment-predicate')
|
|
)
|
|
}))
|
|
|
|
SCHEMAS.register('enchantment-predicate', new ObjectNode({
|
|
enchantment: new ResourceNode(COLLECTIONS.get('enchantments')),
|
|
levels: new RangeNode()
|
|
}))
|
|
|
|
SCHEMAS.register('block-predicate', new ObjectNode({
|
|
block: new ResourceNode(COLLECTIONS.get('blocks')),
|
|
tag: new StringNode(),
|
|
nbt: new StringNode(),
|
|
state: new MapNode(
|
|
new StringNode(),
|
|
new StringNode()
|
|
)
|
|
}))
|
|
|
|
SCHEMAS.register('fluid-predicate', new ObjectNode({
|
|
fluid: new ResourceNode(COLLECTIONS.get('fluids')),
|
|
tag: new StringNode(),
|
|
nbt: new StringNode(),
|
|
state: new MapNode(
|
|
new StringNode(),
|
|
new StringNode()
|
|
)
|
|
}))
|
|
|
|
SCHEMAS.register('location-predicate', new ObjectNode({
|
|
position: new ObjectNode({
|
|
x: new RangeNode(),
|
|
y: new RangeNode(),
|
|
z: new RangeNode()
|
|
}),
|
|
biome: new ResourceNode(COLLECTIONS.get('biomes')),
|
|
feature: new EnumNode(COLLECTIONS.get('structures')),
|
|
dimension: new ResourceNode(COLLECTIONS.get('dimensions'), {additional: true}),
|
|
light: new ObjectNode({
|
|
light: new RangeNode()
|
|
}),
|
|
smokey: new BooleanNode(),
|
|
block: new ReferenceNode('block-predicate'),
|
|
fluid: new ReferenceNode('fluid-predicate')
|
|
}))
|
|
|
|
SCHEMAS.register('statistic-predicate', new ObjectNode({
|
|
type: new EnumNode(COLLECTIONS.get('statistic-types')),
|
|
stat: new StringNode(),
|
|
value: new RangeNode()
|
|
}))
|
|
|
|
SCHEMAS.register('player-predicate', new ObjectNode({
|
|
gamemode: new EnumNode(COLLECTIONS.get('gamemodes')),
|
|
level: new RangeNode(),
|
|
advancements: new MapNode(
|
|
new StringNode(),
|
|
new BooleanNode()
|
|
),
|
|
recipes: new MapNode(
|
|
new StringNode(),
|
|
new BooleanNode()
|
|
),
|
|
stats: new ListNode(
|
|
new ReferenceNode('statistic-predicate')
|
|
)
|
|
}))
|
|
|
|
SCHEMAS.register('status-effect', new ObjectNode({
|
|
amplifier: new RangeNode(),
|
|
duration: new RangeNode(),
|
|
ambient: new BooleanNode(),
|
|
visible: new BooleanNode()
|
|
}))
|
|
|
|
SCHEMAS.register('distance-predicate', new ObjectNode({
|
|
x: new RangeNode(),
|
|
y: new RangeNode(),
|
|
z: new RangeNode(),
|
|
absolute: new RangeNode(),
|
|
horizontal: new RangeNode()
|
|
}))
|
|
|
|
SCHEMAS.register('entity-predicate', new ObjectNode({
|
|
type: new StringNode(),
|
|
nbt: new StringNode(),
|
|
team: new StringNode(),
|
|
location: new ReferenceNode('location-predicate'),
|
|
distance: new ReferenceNode('distance-predicate'),
|
|
flags: new ObjectNode({
|
|
is_on_fire: new BooleanNode(),
|
|
is_sneaking: new BooleanNode(),
|
|
is_sprinting: new BooleanNode(),
|
|
is_swimming: new BooleanNode(),
|
|
is_baby: new BooleanNode()
|
|
}),
|
|
equipment: new MapNode(
|
|
new EnumNode(COLLECTIONS.get('slots')),
|
|
new ReferenceNode('item-predicate')
|
|
),
|
|
// vehicle: new ReferenceNode('entity-predicate'),
|
|
// targeted_entity: new ReferenceNode('entity-predicate'),
|
|
player: new ReferenceNode('player-predicate'),
|
|
fishing_hook: new ObjectNode({
|
|
in_open_water: new BooleanNode()
|
|
}),
|
|
effects: new MapNode(
|
|
new ResourceNode(COLLECTIONS.get('status-effects')),
|
|
new ReferenceNode('status-effect-predicate')
|
|
)
|
|
}))
|