add first patch
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
console.info("[SOCIETY] plushieReRegister.js loaded");
|
||||
|
||||
global.plushieRightClick = (click) => {
|
||||
const { item, block, player, level, server, hand } = click;
|
||||
const { x, y, z } = block;
|
||||
let nbt = block.getEntityData();
|
||||
const { type, quest_id, affection, animal } = nbt.data;
|
||||
|
||||
if (player.isFake()) return;
|
||||
if (hand == "OFF_HAND") return;
|
||||
if (hand == "MAIN_HAND") {
|
||||
if (!Number(type)) {
|
||||
global.plushieTraits.forEach((trait, index) => {
|
||||
if (trait.trait.equals(type)) {
|
||||
nbt.merge({
|
||||
data: {
|
||||
type: index,
|
||||
},
|
||||
});
|
||||
global.setBlockEntityData(block, nbt)
|
||||
}
|
||||
})
|
||||
}
|
||||
if (!animal) {
|
||||
if (
|
||||
player.stages.has("women_who_run_with_the_plushies") &&
|
||||
affection < 2
|
||||
) {
|
||||
nbt.merge({
|
||||
data: {
|
||||
affection: 2,
|
||||
},
|
||||
});
|
||||
global.setBlockEntityData(block, nbt)
|
||||
level.spawnParticles(
|
||||
"minecraft:heart",
|
||||
true,
|
||||
x + 0.5,
|
||||
y + 0.5,
|
||||
z + 0.5,
|
||||
0.1 * rnd(1, 4),
|
||||
0.1 * rnd(1, 4),
|
||||
0.1 * rnd(1, 4),
|
||||
10,
|
||||
0.1
|
||||
);
|
||||
}
|
||||
if (quest_id > 0) {
|
||||
let questList = Ingredient.of(global.plushieTraits[type].tag).itemIds;
|
||||
let questOffset = 3;
|
||||
if (questList.length < 12) questOffset = 2;
|
||||
if (questList.length > 36) questOffset = 6;
|
||||
let questItem =
|
||||
questList[affection * questOffset + Number(quest_id) - 1];
|
||||
let questName = Item.of(questItem).displayName;
|
||||
if (item && item == questItem) {
|
||||
if (!player.isCreative()) item.count--;
|
||||
level.spawnParticles(
|
||||
"minecraft:heart",
|
||||
true,
|
||||
x + 0.5,
|
||||
y + 0.5,
|
||||
z + 0.5,
|
||||
0.1 * rnd(1, 4),
|
||||
0.1 * rnd(1, 4),
|
||||
0.1 * rnd(1, 4),
|
||||
10,
|
||||
0.1
|
||||
);
|
||||
nbt.merge({
|
||||
data: {
|
||||
quest_id: affection == 3 ? "0" : String(rnd(1, 3)),
|
||||
affection: affection + 1,
|
||||
},
|
||||
});
|
||||
if (
|
||||
player.stages.has("husbandry_mastery") &&
|
||||
!player.stages.has("women_who_run_with_the_plushies") &&
|
||||
affection > 2 &&
|
||||
Math.random() <= 0.05
|
||||
) {
|
||||
block.popItemFromFace(
|
||||
"society:women_who_run_with_the_plushies",
|
||||
block.properties.get("facing")
|
||||
);
|
||||
}
|
||||
global.setBlockEntityData(block, nbt)
|
||||
player.tell(Text.translatable("society.plushie.thank").gray());
|
||||
} else {
|
||||
player.tell(Text.translatable("society.plushie.want_gift").gray());
|
||||
player.tell(questName);
|
||||
}
|
||||
}
|
||||
if (
|
||||
item == "minecraft:air" &&
|
||||
block.id === "whimsy_deco:adv_singing_frog_plushie"
|
||||
) {
|
||||
server.runCommandSilent(
|
||||
`playsound species:music.disk.spawner block @a ${x} ${y} ${z}`
|
||||
);
|
||||
block.set("whimsy_deco:sunlit_singing_frog", block.properties);
|
||||
global.setBlockEntityData(block, nbt)
|
||||
server.scheduleInTicks(0, () => {
|
||||
server.scheduleInTicks(2740, () => {
|
||||
if (
|
||||
level.getBlock(block.pos).id === "whimsy_deco:sunlit_singing_frog"
|
||||
) {
|
||||
block.set(
|
||||
"whimsy_deco:adv_singing_frog_plushie",
|
||||
block.properties
|
||||
);
|
||||
global.setBlockEntityData(block, nbt)
|
||||
}
|
||||
});
|
||||
});
|
||||
} else
|
||||
server.runCommandSilent(
|
||||
`playsound tanukidecor:block.mini_figure.squeak block @a ${x} ${y} ${z}`
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
StartupEvents.registry("block", (event) => {
|
||||
global.originalPlushies.forEach((plushie) => {
|
||||
const splitStr = plushie.split(":");
|
||||
let modelPath = `${splitStr[0]}:block/${splitStr[1]}`;
|
||||
if (splitStr[0].equals("tanukidecor"))
|
||||
modelPath = `tanukidecor:block/mini_figure/${splitStr[1]}`;
|
||||
event
|
||||
.create(`${splitStr[0]}:adv_${splitStr[1]}`, "cardinal")
|
||||
.defaultCutout()
|
||||
.box(2, 0, 2, 14, 14, 14)
|
||||
.tagBlock("minecraft:mineable/axe")
|
||||
.soundType("wool")
|
||||
.hardness(1.0)
|
||||
.requiresTool(false)
|
||||
.model(modelPath)
|
||||
.item((item) => {
|
||||
item.modelJson({
|
||||
parent: modelPath,
|
||||
});
|
||||
})
|
||||
.rightClick((click) => global.plushieRightClick(click))
|
||||
.blockEntity((blockInfo) => {
|
||||
blockInfo.initialData({
|
||||
type: "",
|
||||
quest_id: 0,
|
||||
quality: 0,
|
||||
affection: 0,
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user