feat: use item model definition to change model
use the item_model component instead of overriding a vanilla item model definition to make the datapack/resourcepack more compatible with other resourcepacks created a javascript script to genenrate the item model, recipes and translated text of items to streamline creation changed returned item to poisonous potato since it doesn't has a use
This commit is contained in:
327
.meta/generate_helmets.js
Normal file
327
.meta/generate_helmets.js
Normal file
@@ -0,0 +1,327 @@
|
||||
import fs from "node:fs/promises";
|
||||
|
||||
const NAMESPACE = "sixsides_cosmetics";
|
||||
|
||||
const LEATHER_HELMET_MODEL = Object.freeze({});
|
||||
|
||||
/**
|
||||
* @typedef {{
|
||||
* name: {
|
||||
* [lang: string]: string
|
||||
* fallback: string
|
||||
* color: Color = "white"
|
||||
* bold?: boolean = true
|
||||
* italic?: boolean = false
|
||||
* }
|
||||
* lore: {
|
||||
* [lang: string]: string
|
||||
* fallback: string
|
||||
* color: Color = "white"
|
||||
* bold?: boolean = true
|
||||
* italic?: boolean = false
|
||||
* }
|
||||
* recipe: {
|
||||
* type?: RecipeType = "shaped"
|
||||
* category?: RecipeCategory = "equipment"
|
||||
* key: {[key: string]: string}
|
||||
* pattern: [string, string, string]
|
||||
* }
|
||||
* }} Item
|
||||
*
|
||||
* @typedef {"black"
|
||||
* | "dark_blue"
|
||||
* | "dark_green"
|
||||
* | "dark_agua"
|
||||
* | "dark_red"
|
||||
* | "dark_purple"
|
||||
* | "gold"
|
||||
* | "gray"
|
||||
* | "dark_gray"
|
||||
* | "blue"
|
||||
* | "green"
|
||||
* | "aqua"
|
||||
* | "red"
|
||||
* | "light_purple"
|
||||
* | "yellow"
|
||||
* | "white"
|
||||
* } Color
|
||||
*
|
||||
* @typedef {"shaped"} RecipeType
|
||||
* @typedef {"equipment"} RecipeCategory
|
||||
*
|
||||
* @type {{[item: string]: Item}}
|
||||
*/
|
||||
const ITEMS = {
|
||||
guz_ears: {
|
||||
name: {
|
||||
pt_br: "Orelhas de Lobo",
|
||||
fallback: "Wolf Ears",
|
||||
color: "white",
|
||||
},
|
||||
lore: {
|
||||
pt_br: "Você é um furry?",
|
||||
fallback: "Are you a furry?",
|
||||
},
|
||||
recipe: {
|
||||
key: {
|
||||
A: "minecraft:black_dye",
|
||||
B: "minecraft:bone",
|
||||
},
|
||||
pattern: [
|
||||
"A A", //
|
||||
" # ", //
|
||||
" B ",
|
||||
],
|
||||
},
|
||||
},
|
||||
koi_horns: {
|
||||
name: {
|
||||
pt_br: "Chifres de Dragão",
|
||||
fallback: "Dragon Horns",
|
||||
color: "red",
|
||||
},
|
||||
lore: {
|
||||
pt_br: '"glub glub"',
|
||||
fallback: '"glub glub"',
|
||||
},
|
||||
recipe: {
|
||||
key: {
|
||||
A: "minecraft:bone",
|
||||
B: "minecraft:salmon",
|
||||
},
|
||||
pattern: ["A A", " # ", " B "],
|
||||
},
|
||||
},
|
||||
miku_hair: {
|
||||
name: {
|
||||
pt_br: "Cabelo da Miku",
|
||||
fallback: "Miku's Hair",
|
||||
color: "aqua",
|
||||
},
|
||||
lore: {
|
||||
pt_br:
|
||||
"MIKU MIKU BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMMMMMMMMMMMMMMM",
|
||||
fallback:
|
||||
"MIKU MIKU BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMMMMMMMMMMMMMMM",
|
||||
},
|
||||
recipe: {
|
||||
key: {
|
||||
A: "minecraft:iron_nugget",
|
||||
B: "minecraft:cyan_dye",
|
||||
},
|
||||
pattern: ["A#A", "B B", "B B"],
|
||||
},
|
||||
},
|
||||
neru_hair: {
|
||||
name: {
|
||||
pt_br: "Cabelo da Neru",
|
||||
fallback: "Neru's Hair",
|
||||
color: "yellow",
|
||||
},
|
||||
lore: {
|
||||
pt_br:
|
||||
"I’m sobbing, I’m falling off. It’s not enough. Look, I’m burning! I’m yearning! But can I call it love?",
|
||||
fallback:
|
||||
"I’m sobbing, I’m falling off. It’s not enough. Look, I’m burning! I’m yearning! But can I call it love?",
|
||||
},
|
||||
recipe: {
|
||||
key: {
|
||||
A: "minecraft:iron_nugget",
|
||||
B: "minecraft:yellow_dye",
|
||||
},
|
||||
pattern: [" #A", " B", " B"],
|
||||
},
|
||||
},
|
||||
straw_hat: {
|
||||
name: {
|
||||
pt_br: "Chapéu de Palha",
|
||||
fallback: "Straw Hat",
|
||||
color: "yellow",
|
||||
},
|
||||
lore: {
|
||||
pt_br: "Provê um pouco de sombra para o seu rosto.",
|
||||
fallback: "Provide a little shade for your head.",
|
||||
},
|
||||
recipe: {
|
||||
key: {
|
||||
A: "minecraft:wheat",
|
||||
},
|
||||
pattern: ["AAA", "A#A", "AAA"],
|
||||
},
|
||||
},
|
||||
teto_hair: {
|
||||
name: {
|
||||
pt_br: "Cabelo da Teto",
|
||||
fallback: "Teto's Hair",
|
||||
color: "red",
|
||||
},
|
||||
lore: {
|
||||
pt_br:
|
||||
"but i falter on the forethought. i keep on running like a chicken with its head cut off",
|
||||
fallback:
|
||||
"but i falter on the forethought. i keep on running like a chicken with its head cut off",
|
||||
},
|
||||
recipe: {
|
||||
key: {
|
||||
A: "minecraft:iron_nugget",
|
||||
B: "minecraft:red_dye",
|
||||
},
|
||||
pattern: ["A#A", "B B"],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
/** @type {Map<string, {[key: string]: string}} */
|
||||
const langFiles = new Map();
|
||||
|
||||
for (const [k, v] of Object.entries(ITEMS)) {
|
||||
console.log(`${k}: Generating helmet`);
|
||||
|
||||
v.name.en_us ??= v.name.fallback;
|
||||
if (v.name.pt_br) {
|
||||
v.name.pt_pt ??= v.name.pt_br;
|
||||
}
|
||||
v.name.color ??= "white";
|
||||
v.name.bold ??= true;
|
||||
v.name.italic ??= false;
|
||||
|
||||
v.lore.en_us ??= v.lore.fallback;
|
||||
if (v.lore.pt_br) {
|
||||
v.lore.pt_pt ??= v.lore.pt_br;
|
||||
}
|
||||
v.lore.color ??= "white";
|
||||
v.lore.bold ??= false;
|
||||
v.lore.italic ??= true;
|
||||
v.recipe.type ??= "shaped";
|
||||
v.recipe.category ??= "equipment";
|
||||
v.recipe.key["#"] ??= "minecraft:leather_helmet";
|
||||
|
||||
console.log(`${k}: Getting name translations`);
|
||||
|
||||
const nameLangs = Object.entries(v.name).filter(([k, _]) => {
|
||||
if (!k.includes("_")) {
|
||||
return false;
|
||||
}
|
||||
if (k.split("_").length != 2) {
|
||||
return false;
|
||||
}
|
||||
return !["bold", "color", "fallback", "italic"].includes(k);
|
||||
});
|
||||
|
||||
for (const [lang, text] of nameLangs) {
|
||||
langFiles.set(lang, {
|
||||
...langFiles.get(lang),
|
||||
[`${NAMESPACE}.item.${k}`]: text,
|
||||
});
|
||||
}
|
||||
|
||||
console.log(`${k}: Getting lore translations`);
|
||||
|
||||
const loreLangs = Object.entries(v.lore).filter(([k, _]) => {
|
||||
if (!k.includes("_")) {
|
||||
return false;
|
||||
}
|
||||
if (k.split("_").length != 2) {
|
||||
return false;
|
||||
}
|
||||
return !["bold", "color", "fallback", "italic"].includes(k);
|
||||
});
|
||||
|
||||
for (const [lang, text] of loreLangs) {
|
||||
langFiles.set(lang, {
|
||||
...langFiles.get(lang),
|
||||
[`${NAMESPACE}.item.${k}.lore`]: text,
|
||||
});
|
||||
}
|
||||
|
||||
console.log(`${k}: Writing item model file`);
|
||||
|
||||
await fs.mkdir(`./assets/${NAMESPACE}/items`, { recursive: true });
|
||||
await fs.writeFile(
|
||||
`./assets/${NAMESPACE}/items/${k}.json`,
|
||||
JSON.stringify(
|
||||
{
|
||||
__sixsides_generator: "generate_helmet.js",
|
||||
model: {
|
||||
type: "minecraft:model",
|
||||
model: `${NAMESPACE}:item/${k}`,
|
||||
},
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
);
|
||||
|
||||
console.log(`${k}: Writing recipe file`);
|
||||
|
||||
await fs.mkdir(`./data/${NAMESPACE}/recipe`, { recursive: true });
|
||||
await fs.writeFile(
|
||||
`./data/${NAMESPACE}/recipe/${k}.json`,
|
||||
JSON.stringify(
|
||||
{
|
||||
__sixsides_generator: "generate_helmet.js",
|
||||
type: "minecraft:crafting_shaped",
|
||||
category: "equipment",
|
||||
key: v.recipe.key,
|
||||
pattern: v.recipe.pattern,
|
||||
result: {
|
||||
count: 1,
|
||||
id: "minecraft:poisonous_potato", // This is the only item in minecraft that doesn't has an actual use
|
||||
components: {
|
||||
"!minecraft:consumable": {},
|
||||
"minecraft:enchantable": { value: 15 },
|
||||
"minecraft:enchantment_glint_override": false,
|
||||
"minecraft:equippable": {
|
||||
slot: "head",
|
||||
equip_on_interact: true,
|
||||
},
|
||||
"!minecraft:food": {},
|
||||
"minecraft:item_model": `${NAMESPACE}:${k}`,
|
||||
"minecraft:item_name": {
|
||||
type: "translatable",
|
||||
translate: `${NAMESPACE}.item.${k}`,
|
||||
fallback: v.name.fallback,
|
||||
color: v.name.color,
|
||||
bold: v.name.bold,
|
||||
italic: v.name.italic,
|
||||
},
|
||||
"minecraft:lore": [
|
||||
{
|
||||
type: "translatable",
|
||||
translate: `${NAMESPACE}.item.${k}.lore`,
|
||||
fallback: v.lore.fallback,
|
||||
color: v.lore.color,
|
||||
bold: v.lore.bold,
|
||||
italic: v.lore.italic,
|
||||
},
|
||||
],
|
||||
"minecraft:repairable": { items: "minecraft:leather" },
|
||||
"minecraft:max_damage": 55,
|
||||
"minecraft:max_stack_size": 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
for (const [lang, translations] of langFiles) {
|
||||
console.log(`${lang}: Writing lang file`);
|
||||
|
||||
await fs.mkdir(`./assets/${NAMESPACE}/lang`, { recursive: true });
|
||||
const content = await fs.readFile(`./assets/${NAMESPACE}/lang/${lang}.json`);
|
||||
|
||||
await fs.writeFile(
|
||||
`./assets/${NAMESPACE}/lang/${lang}.json`,
|
||||
JSON.stringify(
|
||||
{
|
||||
...JSON.parse(content.toString()),
|
||||
...translations,
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
);
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:condition",
|
||||
"property": "minecraft:has_component",
|
||||
"component": "minecraft:custom_data",
|
||||
"on_true": {
|
||||
"type": "minecraft:select",
|
||||
"model": "minecraft:item/bone",
|
||||
"property": "minecraft:component",
|
||||
"component": "minecraft:custom_data",
|
||||
"cases": [
|
||||
{
|
||||
"when": [
|
||||
{
|
||||
"sixsides_cosmetics:model": "GUZ_EARS"
|
||||
}
|
||||
],
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/guz_ears"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/bone"
|
||||
}
|
||||
},
|
||||
"on_false": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/bone"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:condition",
|
||||
"property": "minecraft:has_component",
|
||||
"component": "minecraft:custom_data",
|
||||
"on_true": {
|
||||
"type": "minecraft:select",
|
||||
"model": "minecraft:item/cyan_dye",
|
||||
"property": "minecraft:component",
|
||||
"component": "minecraft:custom_data",
|
||||
"cases": [
|
||||
{
|
||||
"when": [
|
||||
{
|
||||
"sixsides_cosmetics:model": "MIKU_HAIR"
|
||||
}
|
||||
],
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/miku_hair"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/cyan_dye"
|
||||
}
|
||||
},
|
||||
"on_false": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/cyan_dye"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:condition",
|
||||
"property": "minecraft:has_component",
|
||||
"component": "minecraft:custom_data",
|
||||
"on_true": {
|
||||
"type": "minecraft:select",
|
||||
"model": "minecraft:item/red_dye",
|
||||
"property": "minecraft:component",
|
||||
"component": "minecraft:custom_data",
|
||||
"cases": [
|
||||
{
|
||||
"when": [
|
||||
{
|
||||
"sixsides_cosmetics:model": "TETO_HAIR"
|
||||
}
|
||||
],
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/teto_hair"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/red_dye"
|
||||
}
|
||||
},
|
||||
"on_false": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/red_dye"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:condition",
|
||||
"property": "minecraft:has_component",
|
||||
"component": "minecraft:custom_data",
|
||||
"on_true": {
|
||||
"type": "minecraft:select",
|
||||
"model": "minecraft:item/salmon",
|
||||
"property": "minecraft:component",
|
||||
"component": "minecraft:custom_data",
|
||||
"cases": [
|
||||
{
|
||||
"when": [
|
||||
{
|
||||
"sixsides_cosmetics:model": "KOI_HORNS"
|
||||
}
|
||||
],
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/koi_horns"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/salmon"
|
||||
}
|
||||
},
|
||||
"on_false": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/salmon"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:condition",
|
||||
"property": "minecraft:has_component",
|
||||
"component": "minecraft:custom_data",
|
||||
"on_true": {
|
||||
"type": "minecraft:select",
|
||||
"model": "minecraft:item/wheat",
|
||||
"property": "minecraft:component",
|
||||
"component": "minecraft:custom_data",
|
||||
"cases": [
|
||||
{
|
||||
"when": [
|
||||
{
|
||||
"sixsides_cosmetics:model": "STRAW_HAT"
|
||||
}
|
||||
],
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/straw_hat"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/wheat"
|
||||
}
|
||||
},
|
||||
"on_false": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/wheat"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "minecraft:condition",
|
||||
"property": "minecraft:has_component",
|
||||
"component": "minecraft:custom_data",
|
||||
"on_true": {
|
||||
"type": "minecraft:select",
|
||||
"model": "minecraft:item/yellow_dye",
|
||||
"property": "minecraft:component",
|
||||
"component": "minecraft:custom_data",
|
||||
"cases": [
|
||||
{
|
||||
"when": [
|
||||
{
|
||||
"sixsides_cosmetics:model": "NERU_HAIR"
|
||||
}
|
||||
],
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/neru_hair"
|
||||
}
|
||||
}
|
||||
],
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/yellow_dye"
|
||||
}
|
||||
},
|
||||
"on_false": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/yellow_dye"
|
||||
}
|
||||
}
|
||||
}
|
||||
7
assets/sixsides_cosmetics/items/gm08_helmet.json
Normal file
7
assets/sixsides_cosmetics/items/gm08_helmet.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/gm08_helmet"
|
||||
}
|
||||
}
|
||||
7
assets/sixsides_cosmetics/items/guz_ears.json
Normal file
7
assets/sixsides_cosmetics/items/guz_ears.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/guz_ears"
|
||||
}
|
||||
}
|
||||
7
assets/sixsides_cosmetics/items/koi_horns.json
Normal file
7
assets/sixsides_cosmetics/items/koi_horns.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/koi_horns"
|
||||
}
|
||||
}
|
||||
7
assets/sixsides_cosmetics/items/miku_hair.json
Normal file
7
assets/sixsides_cosmetics/items/miku_hair.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/miku_hair"
|
||||
}
|
||||
}
|
||||
7
assets/sixsides_cosmetics/items/neru_hair.json
Normal file
7
assets/sixsides_cosmetics/items/neru_hair.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/neru_hair"
|
||||
}
|
||||
}
|
||||
7
assets/sixsides_cosmetics/items/straw_hat.json
Normal file
7
assets/sixsides_cosmetics/items/straw_hat.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/straw_hat"
|
||||
}
|
||||
}
|
||||
7
assets/sixsides_cosmetics/items/teto_hair.json
Normal file
7
assets/sixsides_cosmetics/items/teto_hair.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"model": {
|
||||
"type": "minecraft:model",
|
||||
"model": "sixsides_cosmetics:item/teto_hair"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"sixsides_cosmetics.mcmeta.description": "%s - Small collection of cosmetics for your survival world.",
|
||||
"sixsides_cosmetics.item.guz_ears": "Wolf Ears",
|
||||
"sixsides_cosmetics.item.guz_ears.lore": "Are you a furry?",
|
||||
"sixsides_cosmetics.item.koi_horns": "Dragon Horns",
|
||||
@@ -10,6 +11,5 @@
|
||||
"sixsides_cosmetics.item.straw_hat": "Straw Hat",
|
||||
"sixsides_cosmetics.item.straw_hat.lore": "Provide a little shade for your head.",
|
||||
"sixsides_cosmetics.item.teto_hair": "Teto's Hair",
|
||||
"sixsides_cosmetics.item.teto_hair.lore": "but i falter on the forethought. i keep on running like a chicken with its head cut off",
|
||||
"sixsides_cosmetics.mcmeta.description": "%s - Small collection of cosmetics for your survival world."
|
||||
}
|
||||
"sixsides_cosmetics.item.teto_hair.lore": "but i falter on the forethought. i keep on running like a chicken with its head cut off"
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"sixsides_cosmetics.mcmeta.description": "%s - Pequena coleção de cosméticos para seu mundo survival.",
|
||||
"sixsides_cosmetics.item.guz_ears": "Orelhas de Lobo",
|
||||
"sixsides_cosmetics.item.guz_ears.lore": "Você é um furry?",
|
||||
"sixsides_cosmetics.item.koi_horns": "Chifres de Dragão",
|
||||
@@ -10,6 +11,5 @@
|
||||
"sixsides_cosmetics.item.straw_hat": "Chapéu de Palha",
|
||||
"sixsides_cosmetics.item.straw_hat.lore": "Provê um pouco de sombra para o seu rosto.",
|
||||
"sixsides_cosmetics.item.teto_hair": "Cabelo da Teto",
|
||||
"sixsides_cosmetics.item.teto_hair.lore": "but i falter on the forethought. i keep on running like a chicken with its head cut off",
|
||||
"sixsides_cosmetics.mcmeta.description": "%s - Pequena coleção de cosméticos para seu mundo survival."
|
||||
}
|
||||
"sixsides_cosmetics.item.teto_hair.lore": "but i falter on the forethought. i keep on running like a chicken with its head cut off"
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"sixsides_cosmetics.mcmeta.description": "%s - Pequena coleção de cosméticos para seu mundo survival.",
|
||||
"sixsides_cosmetics.item.guz_ears": "Orelhas de Lobo",
|
||||
"sixsides_cosmetics.item.guz_ears.lore": "Você é um furry?",
|
||||
"sixsides_cosmetics.item.koi_horns": "Chifres de Dragão",
|
||||
@@ -10,6 +11,5 @@
|
||||
"sixsides_cosmetics.item.straw_hat": "Chapéu de Palha",
|
||||
"sixsides_cosmetics.item.straw_hat.lore": "Provê um pouco de sombra para o seu rosto.",
|
||||
"sixsides_cosmetics.item.teto_hair": "Cabelo da Teto",
|
||||
"sixsides_cosmetics.item.teto_hair.lore": "but i falter on the forethought. i keep on running like a chicken with its head cut off",
|
||||
"sixsides_cosmetics.mcmeta.description": "%s - Pequena coleção de cosméticos para seu mundo survival."
|
||||
}
|
||||
"sixsides_cosmetics.item.teto_hair.lore": "but i falter on the forethought. i keep on running like a chicken with its head cut off"
|
||||
}
|
||||
@@ -1,29 +1,32 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"key": {
|
||||
"A": "minecraft:black_dye",
|
||||
"B": "minecraft:leather_helmet",
|
||||
"C": "minecraft:bone"
|
||||
"B": "minecraft:bone",
|
||||
"#": "minecraft:leather_helmet"
|
||||
},
|
||||
"pattern": ["A A", " B ", " C "],
|
||||
"pattern": [
|
||||
"A A",
|
||||
" # ",
|
||||
" B "
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "minecraft:bone",
|
||||
"id": "minecraft:poisonous_potato",
|
||||
"components": {
|
||||
"minecraft:custom_data": {
|
||||
"sixsides_cosmetics:model": "GUZ_EARS"
|
||||
},
|
||||
"minecraft:enchantable": { "value": 15 },
|
||||
"minecraft:enchantments": {
|
||||
"minecraft:protection": 1
|
||||
"!minecraft:consumable": {},
|
||||
"minecraft:enchantable": {
|
||||
"value": 15
|
||||
},
|
||||
"minecraft:enchantment_glint_override": false,
|
||||
"minecraft:equippable": {
|
||||
"slot": "head",
|
||||
"damage_on_hurt": false,
|
||||
"equip_on_interact": true
|
||||
},
|
||||
"!minecraft:food": {},
|
||||
"minecraft:item_model": "sixsides_cosmetics:guz_ears",
|
||||
"minecraft:item_name": {
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.guz_ears",
|
||||
@@ -38,9 +41,15 @@
|
||||
"translate": "sixsides_cosmetics.item.guz_ears.lore",
|
||||
"fallback": "Are you a furry?",
|
||||
"color": "white",
|
||||
"bold": false,
|
||||
"italic": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"minecraft:repairable": {
|
||||
"items": "minecraft:leather"
|
||||
},
|
||||
"minecraft:max_damage": 55,
|
||||
"minecraft:max_stack_size": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,29 +1,32 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"key": {
|
||||
"A": "minecraft:bone",
|
||||
"B": "minecraft:leather_helmet",
|
||||
"C": "minecraft:salmon"
|
||||
"B": "minecraft:salmon",
|
||||
"#": "minecraft:leather_helmet"
|
||||
},
|
||||
"pattern": ["A A", " B ", " C "],
|
||||
"pattern": [
|
||||
"A A",
|
||||
" # ",
|
||||
" B "
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "minecraft:salmon",
|
||||
"id": "minecraft:poisonous_potato",
|
||||
"components": {
|
||||
"minecraft:custom_data": {
|
||||
"sixsides_cosmetics:model": "KOI_HORNS"
|
||||
},
|
||||
"minecraft:enchantable": { "value": 15 },
|
||||
"minecraft:equippable": {
|
||||
"slot": "head",
|
||||
"damage_on_hurt": false,
|
||||
"equip_on_interact": true
|
||||
},
|
||||
"minecraft:enchantments": {
|
||||
"minecraft:protection": 1
|
||||
"!minecraft:consumable": {},
|
||||
"minecraft:enchantable": {
|
||||
"value": 15
|
||||
},
|
||||
"minecraft:enchantment_glint_override": false,
|
||||
"minecraft:equippable": {
|
||||
"slot": "head",
|
||||
"equip_on_interact": true
|
||||
},
|
||||
"!minecraft:food": {},
|
||||
"minecraft:item_model": "sixsides_cosmetics:koi_horns",
|
||||
"minecraft:item_name": {
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.koi_horns",
|
||||
@@ -38,9 +41,15 @@
|
||||
"translate": "sixsides_cosmetics.item.koi_horns.lore",
|
||||
"fallback": "\"glub glub\"",
|
||||
"color": "white",
|
||||
"bold": false,
|
||||
"italic": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"minecraft:repairable": {
|
||||
"items": "minecraft:leather"
|
||||
},
|
||||
"minecraft:max_damage": 55,
|
||||
"minecraft:max_stack_size": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,45 +1,55 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"key": {
|
||||
"A": "minecraft:iron_nugget",
|
||||
"B": "minecraft:leather_helmet",
|
||||
"C": "minecraft:cyan_dye"
|
||||
"B": "minecraft:cyan_dye",
|
||||
"#": "minecraft:leather_helmet"
|
||||
},
|
||||
"pattern": ["ABA", "C C", "C C"],
|
||||
"pattern": [
|
||||
"A#A",
|
||||
"B B",
|
||||
"B B"
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "minecraft:cyan_dye",
|
||||
"id": "minecraft:poisonous_potato",
|
||||
"components": {
|
||||
"minecraft:custom_data": {
|
||||
"sixsides_cosmetics:model": "MIKU_HAIR"
|
||||
},
|
||||
"minecraft:enchantable": { "value": 15 },
|
||||
"minecraft:enchantments": {
|
||||
"minecraft:protection": 1
|
||||
"!minecraft:consumable": {},
|
||||
"minecraft:enchantable": {
|
||||
"value": 15
|
||||
},
|
||||
"minecraft:enchantment_glint_override": false,
|
||||
"minecraft:equippable": {
|
||||
"slot": "head",
|
||||
"damage_on_hurt": false,
|
||||
"equip_on_interact": true
|
||||
},
|
||||
"!minecraft:food": {},
|
||||
"minecraft:item_model": "sixsides_cosmetics:miku_hair",
|
||||
"minecraft:item_name": {
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.miku_hair",
|
||||
"fallback": "Miku's Hair",
|
||||
"color": "aqua",
|
||||
"bold": true,
|
||||
"italic": false
|
||||
},
|
||||
"minecraft:lore": [
|
||||
{
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.miku_hair.lore",
|
||||
"fallback": "",
|
||||
"fallback": "MIKU MIKU BEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMMMMMMMMMMMMMMM",
|
||||
"color": "white",
|
||||
"bold": false,
|
||||
"italic": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"minecraft:repairable": {
|
||||
"items": "minecraft:leather"
|
||||
},
|
||||
"minecraft:max_damage": 55,
|
||||
"minecraft:max_stack_size": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,45 +1,55 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"key": {
|
||||
"A": "minecraft:iron_nugget",
|
||||
"B": "minecraft:leather_helmet",
|
||||
"C": "minecraft:yellow_dye"
|
||||
"B": "minecraft:yellow_dye",
|
||||
"#": "minecraft:leather_helmet"
|
||||
},
|
||||
"pattern": [" BA", " C", " C"],
|
||||
"pattern": [
|
||||
" #A",
|
||||
" B",
|
||||
" B"
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "minecraft:yellow_dye",
|
||||
"id": "minecraft:poisonous_potato",
|
||||
"components": {
|
||||
"minecraft:custom_data": {
|
||||
"sixsides_cosmetics:model": "NERU_HAIR"
|
||||
},
|
||||
"minecraft:enchantable": { "value": 15 },
|
||||
"minecraft:enchantments": {
|
||||
"minecraft:protection": 1
|
||||
"!minecraft:consumable": {},
|
||||
"minecraft:enchantable": {
|
||||
"value": 15
|
||||
},
|
||||
"minecraft:enchantment_glint_override": false,
|
||||
"minecraft:equippable": {
|
||||
"slot": "head",
|
||||
"damage_on_hurt": false,
|
||||
"equip_on_interact": true
|
||||
},
|
||||
"!minecraft:food": {},
|
||||
"minecraft:item_model": "sixsides_cosmetics:neru_hair",
|
||||
"minecraft:item_name": {
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.neru_hair",
|
||||
"fallback": "Neru's Hair",
|
||||
"color": "gold",
|
||||
"color": "yellow",
|
||||
"bold": true,
|
||||
"italic": false
|
||||
},
|
||||
"minecraft:lore": [
|
||||
{
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.neru_hair.lore",
|
||||
"fallback": "",
|
||||
"fallback": "I’m sobbing, I’m falling off. It’s not enough. Look, I’m burning! I’m yearning! But can I call it love?",
|
||||
"color": "white",
|
||||
"bold": false,
|
||||
"italic": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"minecraft:repairable": {
|
||||
"items": "minecraft:leather"
|
||||
},
|
||||
"minecraft:max_damage": 55,
|
||||
"minecraft:max_stack_size": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,33 +1,37 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"key": {
|
||||
"A": "minecraft:wheat",
|
||||
"B": "minecraft:leather_helmet"
|
||||
"#": "minecraft:leather_helmet"
|
||||
},
|
||||
"pattern": ["AAA", "ABA", "AAA"],
|
||||
"pattern": [
|
||||
"AAA",
|
||||
"A#A",
|
||||
"AAA"
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "minecraft:wheat",
|
||||
"id": "minecraft:poisonous_potato",
|
||||
"components": {
|
||||
"minecraft:custom_data": {
|
||||
"sixsides_cosmetics:model": "STRAW_HAT"
|
||||
},
|
||||
"minecraft:enchantable": { "value": 15 },
|
||||
"minecraft:enchantments": {
|
||||
"minecraft:protection": 1
|
||||
"!minecraft:consumable": {},
|
||||
"minecraft:enchantable": {
|
||||
"value": 15
|
||||
},
|
||||
"minecraft:enchantment_glint_override": false,
|
||||
"minecraft:equippable": {
|
||||
"slot": "head",
|
||||
"damage_on_hurt": false,
|
||||
"equip_on_interact": true
|
||||
},
|
||||
"!minecraft:food": {},
|
||||
"minecraft:item_model": "sixsides_cosmetics:straw_hat",
|
||||
"minecraft:item_name": {
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.straw_hat",
|
||||
"fallback": "Straw Hat",
|
||||
"color": "gold",
|
||||
"color": "yellow",
|
||||
"bold": true,
|
||||
"italic": false
|
||||
},
|
||||
"minecraft:lore": [
|
||||
@@ -36,9 +40,15 @@
|
||||
"translate": "sixsides_cosmetics.item.straw_hat.lore",
|
||||
"fallback": "Provide a little shade for your head.",
|
||||
"color": "white",
|
||||
"bold": false,
|
||||
"italic": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"minecraft:repairable": {
|
||||
"items": "minecraft:leather"
|
||||
},
|
||||
"minecraft:max_damage": 55,
|
||||
"minecraft:max_stack_size": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,45 +1,54 @@
|
||||
{
|
||||
"__sixsides_generator": "generate_helmet.js",
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"key": {
|
||||
"A": "minecraft:iron_nugget",
|
||||
"B": "minecraft:leather_helmet",
|
||||
"C": "minecraft:red_dye"
|
||||
"B": "minecraft:red_dye",
|
||||
"#": "minecraft:leather_helmet"
|
||||
},
|
||||
"pattern": ["ABA", "C C"],
|
||||
"pattern": [
|
||||
"A#A",
|
||||
"B B"
|
||||
],
|
||||
"result": {
|
||||
"count": 1,
|
||||
"id": "minecraft:red_dye",
|
||||
"id": "minecraft:poisonous_potato",
|
||||
"components": {
|
||||
"minecraft:custom_data": {
|
||||
"sixsides_cosmetics:model": "TETO_HAIR"
|
||||
},
|
||||
"minecraft:enchantable": { "value": 15 },
|
||||
"minecraft:enchantments": {
|
||||
"minecraft:protection": 1
|
||||
"!minecraft:consumable": {},
|
||||
"minecraft:enchantable": {
|
||||
"value": 15
|
||||
},
|
||||
"minecraft:enchantment_glint_override": false,
|
||||
"minecraft:equippable": {
|
||||
"slot": "head",
|
||||
"damage_on_hurt": false,
|
||||
"equip_on_interact": true
|
||||
},
|
||||
"!minecraft:food": {},
|
||||
"minecraft:item_model": "sixsides_cosmetics:teto_hair",
|
||||
"minecraft:item_name": {
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.teto_hair",
|
||||
"fallback": "Teto's Hair",
|
||||
"color": "red",
|
||||
"bold": true,
|
||||
"italic": false
|
||||
},
|
||||
"minecraft:lore": [
|
||||
{
|
||||
"type": "translatable",
|
||||
"translate": "sixsides_cosmetics.item.teto_hair.lore",
|
||||
"fallback": "",
|
||||
"fallback": "but i falter on the forethought. i keep on running like a chicken with its head cut off",
|
||||
"color": "white",
|
||||
"bold": false,
|
||||
"italic": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"minecraft:repairable": {
|
||||
"items": "minecraft:leather"
|
||||
},
|
||||
"minecraft:max_damage": 55,
|
||||
"minecraft:max_stack_size": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,7 +29,7 @@
|
||||
set +a
|
||||
'';
|
||||
buildInputs = with pkgs; [
|
||||
deno
|
||||
nodejs
|
||||
gnumake
|
||||
jq
|
||||
zip
|
||||
|
||||
1
makefile
1
makefile
@@ -1,4 +1,5 @@
|
||||
release: clean
|
||||
node ./.meta/generate_helmets.js
|
||||
jq --arg version $$(cat VERSION) '.pack.description.with[0].fallback = $$version' ./pack.mcmeta > ./pack.mcmeta.tmp
|
||||
mv ./pack.mcmeta.tmp ./pack.mcmeta
|
||||
find ./assets ./data pack.mcmeta -type f -print | zip SixSides\ Cosmetics\ \(v$$(cat VERSION)\).zip -@
|
||||
|
||||
Reference in New Issue
Block a user