UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

73 lines (72 loc) 2.31 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.TraitRegistry = exports.ItemContentTrait = exports.BlockContentTrait = exports.EntityContentTrait = void 0; /** * Abstract base class for entity content traits. */ class EntityContentTrait { } exports.EntityContentTrait = EntityContentTrait; /** * Abstract base class for block content traits. */ class BlockContentTrait { } exports.BlockContentTrait = BlockContentTrait; /** * Abstract base class for item content traits. */ class ItemContentTrait { } exports.ItemContentTrait = ItemContentTrait; // ============================================================================ // TRAIT REGISTRY // ============================================================================ /** * Registry for all trait implementations. * Allows lookup by trait ID. */ class TraitRegistry { static entityTraits = new Map(); static blockTraits = new Map(); static itemTraits = new Map(); static registerEntityTrait(trait) { this.entityTraits.set(trait.id, trait); } static registerBlockTrait(trait) { this.blockTraits.set(trait.id, trait); } static registerItemTrait(trait) { this.itemTraits.set(trait.id, trait); } static getEntityTrait(id) { return this.entityTraits.get(id); } static getBlockTrait(id) { return this.blockTraits.get(id); } static getItemTrait(id) { return this.itemTraits.get(id); } static getAllEntityTraits() { return Array.from(this.entityTraits.values()); } static getAllBlockTraits() { return Array.from(this.blockTraits.values()); } static getAllItemTraits() { return Array.from(this.itemTraits.values()); } static getEntityTraitsByCategory(category) { return this.getAllEntityTraits().filter((t) => t.getData().category === category); } static getBlockTraitsByCategory(category) { return this.getAllBlockTraits().filter((t) => t.getData().category === category); } static getItemTraitsByCategory(category) { return this.getAllItemTraits().filter((t) => t.getData().category === category); } } exports.TraitRegistry = TraitRegistry;