add first patch
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
console.info("[SOCIETY] gnome.js loaded");
|
||||
|
||||
const getGnomeState = (name, type) => {
|
||||
const path = `society:block/kubejs/gnome/${name}`;
|
||||
let cardianal = [
|
||||
{
|
||||
when: { type: type, facing: "north" },
|
||||
apply: { model: path, y: 0, uvlock: false },
|
||||
},
|
||||
{
|
||||
when: { type: type, facing: "east" },
|
||||
apply: { model: path, y: 90, uvlock: false },
|
||||
},
|
||||
{
|
||||
when: { type: type, facing: "south" },
|
||||
apply: { model: path, y: 180, uvlock: false },
|
||||
},
|
||||
{
|
||||
when: { type: type, facing: "west" },
|
||||
apply: { model: path, y: -90, uvlock: false },
|
||||
},
|
||||
];
|
||||
return cardianal;
|
||||
};
|
||||
StartupEvents.registry("block", (e) => {
|
||||
e
|
||||
.create("society:gnome", "cardinal")
|
||||
.property(integerProperty.create("type", 0, 3))
|
||||
.defaultCutout()
|
||||
.item((item) => {
|
||||
item.tooltip(Text.translatable("block.society.gnome.description").gray());
|
||||
item.modelJson({
|
||||
parent: "society:block/kubejs/gnome/base",
|
||||
});
|
||||
})
|
||||
.defaultState((state) => {
|
||||
state.set(integerProperty.create("type", 0, 3), 0);
|
||||
})
|
||||
.placementState((state) => {
|
||||
state.set(integerProperty.create("type", 0, 3), 0);
|
||||
})
|
||||
.rightClick((click) => {
|
||||
const { block, item, hand } = click;
|
||||
const type = Number(block.properties.get("type"));
|
||||
const facing = block.properties.get("facing");
|
||||
|
||||
if (hand == "OFF_HAND") return;
|
||||
if (hand == "MAIN_HAND") {
|
||||
if (item == "minecraft:lantern") {
|
||||
block.set("society:lantern_gnome", {
|
||||
facing: facing,
|
||||
});
|
||||
} else {
|
||||
block.set(block.id, {
|
||||
facing: facing,
|
||||
type: type == 3 ? "0" : String(type + 1),
|
||||
});
|
||||
}
|
||||
}
|
||||
}).blockstateJson = {
|
||||
multipart: []
|
||||
.concat(getGnomeState("base", 0))
|
||||
.concat(getGnomeState("fish", 1))
|
||||
.concat(getGnomeState("twig", 2))
|
||||
.concat(getGnomeState("swing", 3)),
|
||||
};
|
||||
e
|
||||
.create("society:lantern_gnome", "cardinal")
|
||||
.property(integerProperty.create("type", 0, 3))
|
||||
.defaultCutout()
|
||||
.item((item) => {
|
||||
item.tooltip(Text.translatable("block.society.lantern_gnome.description").gray());
|
||||
item.modelJson({
|
||||
parent: "society:block/kubejs/gnome/lantern",
|
||||
});
|
||||
})
|
||||
.lightLevel(0.8)
|
||||
.rightClick((click) => {
|
||||
const { block, hand } = click;
|
||||
const type = Number(block.properties.get("type"));
|
||||
const facing = block.properties.get("facing");
|
||||
|
||||
if (hand == "OFF_HAND") return;
|
||||
if (hand == "MAIN_HAND") {
|
||||
block.set(block.id, {
|
||||
facing: facing,
|
||||
type: type == 3 ? "0" : String(type + 1),
|
||||
});
|
||||
}
|
||||
}).blockstateJson = {
|
||||
multipart: [
|
||||
{
|
||||
when: { facing: "north" },
|
||||
apply: { model: "society:block/kubejs/gnome/lantern", y: 0, uvlock: false },
|
||||
},
|
||||
{
|
||||
when: { facing: "east" },
|
||||
apply: { model: "society:block/kubejs/gnome/lantern", y: 90, uvlock: false },
|
||||
},
|
||||
{
|
||||
when: { facing: "south" },
|
||||
apply: { model: "society:block/kubejs/gnome/lantern", y: 180, uvlock: false },
|
||||
},
|
||||
{
|
||||
when: { facing: "west" },
|
||||
apply: { model: "society:block/kubejs/gnome/lantern", y: -90, uvlock: false },
|
||||
},
|
||||
],
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user