add sounds to fast easy place and material grabber
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -4,8 +4,9 @@ import { bannedBlocks, bannedToValidBlockMap, whitelistedBlockStates, resetToBlo
|
||||
blockIdToItemStackMap } from '../data';
|
||||
import { Raycaster } from '../classes/Raycaster';
|
||||
import { Builders } from '../classes/Builder/Builders';
|
||||
import { blocks } from '../blocks';
|
||||
|
||||
const PROCESS_INTERVAL = 2;
|
||||
const PROCESS_INTERVAL = 2; // Fast Easy Place will attempt to place twice when at an interval of 1.
|
||||
|
||||
const builderOption = new BuilderOption({
|
||||
identifier: 'fastEasyPlace',
|
||||
@@ -167,6 +168,7 @@ function placeBlock(player, block, structureBlock, itemSlot) {
|
||||
if (itemSlot)
|
||||
consumeItem(itemSlot);
|
||||
block.setPermutation(structureBlock);
|
||||
playSoundEffect(player, structureBlock);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -184,3 +186,10 @@ function consumeItem(itemSlot) {
|
||||
function consumeSpecial(itemSlot) {
|
||||
itemSlot.setItem(new ItemStack(specialItemPlacementConversions[itemSlot.typeId.replace('minecraft:', '')]));
|
||||
}
|
||||
|
||||
function playSoundEffect(player, structureBlock) {
|
||||
const blockId = structureBlock.type.id.replace('minecraft:', '');
|
||||
const blockData = blocks[blockId];
|
||||
const blockSound = blockData['sound'] || 'stone';
|
||||
player.dimension.playSound('dig.' + blockSound, player.location);
|
||||
}
|
||||
@@ -62,6 +62,10 @@ function onPlayerInteract(event) {
|
||||
}
|
||||
}
|
||||
|
||||
function isActionItem(itemStack) {
|
||||
return itemStack?.typeId === 'construct:material_grabber';
|
||||
}
|
||||
|
||||
function openInstanceSelectionForm(player, event) {
|
||||
event.cancel = true;
|
||||
system.run(() => new MaterialGrabberForm(player));
|
||||
@@ -80,10 +84,6 @@ function tryGrabMaterials(player, target, focusedInstanceName, event) {
|
||||
system.run(() => transferMaterialsToPlayer(player, targetContainer, materials));
|
||||
}
|
||||
|
||||
function isActionItem(itemStack) {
|
||||
return itemStack?.typeId === 'construct:material_grabber';
|
||||
}
|
||||
|
||||
function getActiveMaterials(focusedInstanceName) {
|
||||
const instance = structureCollection.get(focusedInstanceName);
|
||||
return instance?.getActiveMaterials();
|
||||
@@ -99,6 +99,7 @@ function transferMaterialsToPlayer(player, targetContainer, materials) {
|
||||
const slot = targetContainer.getSlot(slotIndex);
|
||||
transferCount += tryTransferToPlayer(slot, playerContainer, materials);
|
||||
}
|
||||
playSoundEffect(player, transferCount);
|
||||
sendTransferMessage(player, transferCount);
|
||||
materials.refresh();
|
||||
}
|
||||
@@ -131,6 +132,11 @@ function tryTransferToPlayer(slot, playerContainer, materials) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
function playSoundEffect(player, transferCount) {
|
||||
if (transferCount !== 0)
|
||||
player.dimension.playSound('block.itemframe.remove_item', player.location, { pitch: 1.2 });
|
||||
}
|
||||
|
||||
function tryTransferAmountToPlayer(slot, playerContainer, materials, grabAmount) {
|
||||
const itemStack = slot.getItem();
|
||||
if (canAddItem(playerContainer, itemStack)) {
|
||||
|
||||
Reference in New Issue
Block a user