diff --git a/editor-samples.mceditoraddon b/editor-samples.mceditoraddon index 290a517..58b0111 100644 Binary files a/editor-samples.mceditoraddon and b/editor-samples.mceditoraddon differ diff --git a/portal-generator/portal-generator.ts b/portal-generator/portal-generator.ts index e1509bc..7470a6b 100644 --- a/portal-generator/portal-generator.ts +++ b/portal-generator/portal-generator.ts @@ -267,14 +267,14 @@ class NetherPortal implements IPortalGenerator { subPane.addNumber(this._sizeX, { title: 'sample.portalgenerator.pane.nether.pane.width', min: 4, - max: 33, + max: 23, isInteger: true, }); subPane.addNumber(this._sizeY, { title: 'sample.portalgenerator.pane.nether.pane.height', min: 5, - max: 33, + max: 23, isInteger: true, }); diff --git a/simple-locate/SimpleLocateBiome.ts b/simple-locate/SimpleLocateBiome.ts index 4852dab..c19d01c 100644 --- a/simple-locate/SimpleLocateBiome.ts +++ b/simple-locate/SimpleLocateBiome.ts @@ -32,7 +32,7 @@ type LocateBiomeSourceType = { type ResultsType = { foundType: string; - foundPos: Vector3; + foundPos: IObservable; }; // Implementation of a simple tool that allows the player to locate a biome @@ -41,7 +41,7 @@ type ResultsType = { export class SimpleLocate extends SimpleToolWrapper { private _results: ResultsType = { foundType: '', - foundPos: VECTOR3_ZERO, + foundPos: makeObservable(VECTOR3_ZERO), }; // Activate the results pane with the found biome/structure and position in the @@ -51,7 +51,7 @@ export class SimpleLocate extends SimpleToolWrapper { this.simpleTool.logInfo(`Found ${biome} at ${Vector3Utils.toString(pos)}`); this._results.foundType = biome; - this._results.foundPos = pos; + this._results.foundPos.set(pos); // Hopefully, we'll be able to get rid of this function in the near future. // reconstructing the pane is a last-resort hack to get the pane to update @@ -185,7 +185,7 @@ export class SimpleLocate extends SimpleToolWrapper { const actualPane = component.pane; actualPane.addText(`Found ${this._results.foundType}`); - actualPane.addVector3_deprecated(this._results, 'foundPos', { + actualPane.addVector3(this._results.foundPos, { title: 'sample.simplelocate.tool.results.foundat', enable: false, visible: true, @@ -196,7 +196,7 @@ export class SimpleLocate extends SimpleToolWrapper { actionType: ActionTypes.NoArgsAction, onExecute: () => { const pos = this._results.foundPos; - component.session.extensionContext.player.teleport(pos); + component.session.extensionContext.player.teleport(pos.value); }, }), { diff --git a/star-brush-shape/star-brush-shape.ts b/star-brush-shape/star-brush-shape.ts index 28b9b87..343df6f 100644 --- a/star-brush-shape/star-brush-shape.ts +++ b/star-brush-shape/star-brush-shape.ts @@ -122,7 +122,7 @@ export function registerStarBrushExtension() { uiSession.extensionContext.brushShapeManager.registerBrushShape( 'Star-sample', - 'star', + 'pack://textures/editor/brushes/Star.png', rebuildStar, getStarUISettings ); diff --git a/tree-generator/tree-generator.ts b/tree-generator/tree-generator.ts index f8168c7..3b2e37a 100644 --- a/tree-generator/tree-generator.ts +++ b/tree-generator/tree-generator.ts @@ -220,51 +220,53 @@ export class SimpleTree implements ITree { } } -const TreeTypes = [ - { - name: 'Oak', - type: new SimpleTree( - BlockPermutation.resolve(MinecraftBlockTypes.OakLog), - BlockPermutation.resolve(MinecraftBlockTypes.OakLeaves) - ), - }, - { - name: 'Spruce', - type: new SimpleTree( - BlockPermutation.resolve(MinecraftBlockTypes.SpruceLog), - BlockPermutation.resolve(MinecraftBlockTypes.SpruceLeaves) - ), - }, - { - name: 'Birch', - type: new SimpleTree( - BlockPermutation.resolve(MinecraftBlockTypes.BirchLog), - BlockPermutation.resolve(MinecraftBlockTypes.BirchLeaves) - ), - }, - { - name: 'Jungle', - type: new SimpleTree( - BlockPermutation.resolve(MinecraftBlockTypes.JungleLog), - BlockPermutation.resolve(MinecraftBlockTypes.JungleLeaves) - ), - }, - - { - name: 'Acacia', - type: new SimpleTree( - BlockPermutation.resolve(MinecraftBlockTypes.AcaciaLog), - BlockPermutation.resolve(MinecraftBlockTypes.AcaciaLeaves) - ), - }, - { - name: 'Dark Oak', - type: new SimpleTree( - BlockPermutation.resolve(MinecraftBlockTypes.DarkOakLog), - BlockPermutation.resolve(MinecraftBlockTypes.DarkOakLeaves) - ), - }, -]; +function GetTreeTypes() { + return [ + { + name: 'Oak', + type: new SimpleTree( + BlockPermutation.resolve(MinecraftBlockTypes.OakLog), + BlockPermutation.resolve(MinecraftBlockTypes.OakLeaves) + ), + }, + { + name: 'Spruce', + type: new SimpleTree( + BlockPermutation.resolve(MinecraftBlockTypes.SpruceLog), + BlockPermutation.resolve(MinecraftBlockTypes.SpruceLeaves) + ), + }, + { + name: 'Birch', + type: new SimpleTree( + BlockPermutation.resolve(MinecraftBlockTypes.BirchLog), + BlockPermutation.resolve(MinecraftBlockTypes.BirchLeaves) + ), + }, + { + name: 'Jungle', + type: new SimpleTree( + BlockPermutation.resolve(MinecraftBlockTypes.JungleLog), + BlockPermutation.resolve(MinecraftBlockTypes.JungleLeaves) + ), + }, + + { + name: 'Acacia', + type: new SimpleTree( + BlockPermutation.resolve(MinecraftBlockTypes.AcaciaLog), + BlockPermutation.resolve(MinecraftBlockTypes.AcaciaLeaves) + ), + }, + { + name: 'Dark Oak', + type: new SimpleTree( + BlockPermutation.resolve(MinecraftBlockTypes.DarkOakLog), + BlockPermutation.resolve(MinecraftBlockTypes.DarkOakLeaves) + ), + }, + ]; +} function addToolSettingsPane(uiSession: IPlayerUISession, tool: IModalTool) { // Create a pane that will be shown when the tool is selected @@ -285,6 +287,8 @@ function addToolSettingsPane(uiSession: IPlayerUISession, tool: IModalTool) { treeType: makeObservable(0), }; + const treeTypes = GetTreeTypes(); + const onExecuteTool = (ray?: Ray) => { const player = uiSession.extensionContext.player; @@ -310,7 +314,7 @@ function addToolSettingsPane(uiSession: IPlayerUISession, tool: IModalTool) { // Begin transaction uiSession.extensionContext.transactionManager.openTransaction('Tree Tool'); - const selectedTreeType = TreeTypes[settings.treeType.value]; + const selectedTreeType = treeTypes[settings.treeType.value]; const affectedBlocks = selectedTreeType.type.place(location, settings); // Track changes @@ -339,7 +343,7 @@ function addToolSettingsPane(uiSession: IPlayerUISession, tool: IModalTool) { pane.addDropdown(settings.treeType, { title: 'sample.treegenerator.pane.type', enable: true, - entries: TreeTypes.map((tree, index): IDropdownPropertyItemEntry => { + entries: treeTypes.map((tree, index): IDropdownPropertyItemEntry => { return { label: tree.name, value: index,