@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
73 lines (72 loc) • 2.31 kB
JavaScript
;
// 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;