This commit is contained in:
Xikaro 2025-07-15 18:02:47 +05:00
commit 3d33d77f07
33 changed files with 343 additions and 56 deletions

View file

@ -448,8 +448,8 @@
type: "dimension"
}
{
entity: "kaolinclayze:tfc"
icon: "kaolinclayze:tfc_spawn_egg"
entity: "primitive_creatures:tfc"
icon: "primitive_creatures:tfc_spawn_egg"
id: "710B94F88C7078C9"
optional_task: true
type: "kill"
@ -743,8 +743,8 @@
type: "dimension"
}
{
entity: "kaolinclayze:golem_2"
icon: "kaolinclayze:golem_2_spawn_egg"
entity: "primitive_creatures:golem_2"
icon: "primitive_creatures:golem_2_spawn_egg"
id: "0981F64F296CDDC5"
optional_task: true
type: "kill"

View file

@ -1,16 +0,0 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.kaolinclayze.tfc": "Kaolin Klayze",
"entity.terramod.tfc": "Kaolin Klayze",
"entity.kaolinclayze.golem_2": "Graphite Glayze",
"item.kaolinclayze.tfc_spawn_egg": "Kaolin Klayze Spawn Egg",
"item.kaolinclayze.golem_2_spawn_egg": "Graphite Glayze Spawn Egg",
"item.kaolinclayze.yhgi": "Flint Club",
"item.kaolinclayze.reh": "Fortified Flint Club",
"item.kaolinclayze.grh": "Battered Wool",
"item.kaolinclayze.totem_0": "Small Clay Idol",
"item.kaolinclayze.totem_2": "Wooden Lion-Man Idol",
"item.kaolinclayze.totem_3": "Hardened Mud Idol",
"item.kaolinclayze.tt_5": "Small Shard",
"item.kaolinclayze.f_1": "Primitive Explosives"
}

View file

@ -1,9 +0,0 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.kaolinclayze.tfc": "Каоліновий Клейз",
"entity.terramod.tfc": "Каоліновий Клейз",
"entity.kaolinclayze.golem_2": "Графітовий Глейз",
"item.kaolinclayze.tfc_spawn_egg": "Яйце спавну Каолінового Клейза",
"item.kaolinclayze.golem_2_spawn_egg": "Яйце спавну Графітового Глейза",
"item.terramod.tfc_spawn_egg": "Яйце спавну Каолінового Клейза"
}

View file

@ -0,0 +1,21 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.primitive_creatures.tfc": "Kaolin Klayze",
"entity.primitive_creatures.golem_2": "Graphite Glayze",
"entity.primitive_creatures.iloger_4": "Forager",
"entity.primitive_creatures.wiloger": "Beast Tamer",
"entity.primitive_creatures.iloger_2": "Herbalist",
"item.primitive_creatures.tfc_spawn_egg": "Kaolin Klayze Spawn Egg",
"item.primitive_creatures.golem_2_spawn_egg": "Graphite Glayze Spawn Egg",
"item.primitive_creatures.iloger_4_spawn_egg": "Forager Spawn Egg",
"item.primitive_creatures.wiloger_spawn_egg": "Beast Tamer Spawn Egg",
"item.primitive_creatures.iloger_2_spawn_egg": "Herbalist Spawn Egg",
"item.primitive_creatures.yhgi": "Flint Club",
"item.primitive_creatures.reh": "Fortified Flint Club",
"item.primitive_creatures.grh": "Battered Wool",
"item.primitive_creatures.totem_0": "Small Clay Idol",
"item.primitive_creatures.totem_2": "Wooden Lion-Man Idol",
"item.primitive_creatures.totem_3": "Hardened Mud Idol",
"item.primitive_creatures.tt_5": "Small Shard",
"item.primitive_creatures.f_1": "Primitive Explosives"
}

View file

@ -0,0 +1,7 @@
{
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
"entity.primitive_creatures.tfc": "Каоліновий Клейз",
"entity.primitive_creatures.golem_2": "Графітовий Глейз",
"item.primitive_creatures.tfc_spawn_egg": "Яйце спавну Каолінового Клейза",
"item.primitive_creatures.golem_2_spawn_egg": "Яйце спавну Графітового Глейза"
}

View file

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "tfg:item/flint_club_head"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 B

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -0,0 +1,3 @@
{
"type": "forge:none"
}

View file

@ -140,7 +140,7 @@
"weight": 10
},
{
"type": "kaolinclayze:golem_2",
"type": "primitive_creatures:golem_2",
"maxCount": 3,
"minCount": 1,
"weight": 100

View file

@ -110,7 +110,7 @@
"weight": 100
},
{
"type": "kaolinclayze:golem_2",
"type": "primitive_creatures:golem_2",
"maxCount": 4,
"minCount": 1,
"weight": 100

View file

@ -132,7 +132,7 @@
"weight": 20
},
{
"type": "kaolinclayze:golem_2",
"type": "primitive_creatures:golem_2",
"maxCount": 4,
"minCount": 1,
"weight": 100

View file

@ -128,7 +128,7 @@
"weight": 50
},
{
"type": "kaolinclayze:tfc",
"type": "primitive_creatures:tfc",
"maxCount": 4,
"minCount": 1,
"weight": 100

View file

@ -38,6 +38,7 @@ ServerEvents.tags('item', event => {
registerModernMarkingsItemTags(event)
registerMoreRedItemTags(event)
registerHotOrNotItemTags(event)
registerPrimitiveCreaturesItemTags(event)
registerRailWaysItemTags(event)
registerRnrItemTags(event)
registerSophisticatedBackpacksItemTags(event)
@ -237,6 +238,7 @@ ServerEvents.recipes(event => {
registerMinecraftRecipes(event)
registerModernMarkingRecipes(event)
registerMoreRedRecipes(event)
registerPrimitiveCreaturesRecipes(event)
registerProgrammedCircuitCardRecipes(event)
registerRailWaysRecipes(event)
registerRnrRecipes(event)

View file

@ -1083,4 +1083,6 @@ const registerMinecraftRecipes = (event) => {
event.shapeless('2x minecraft:gunpowder',
['#forge:tools/mortars', 'tfc:powder/saltpeter', 'tfc:powder/saltpeter', 'tfc:powder/sulfur', 'tfc:powder/charcoal', 'tfc:powder/charcoal', 'tfc:powder/charcoal'])
.id('tfg:shapeless/gunpowder_tfc_style')
event.shapeless('8x minecraft:bone_meal', ['#forge:tools/mortars', 'minecraft:skeleton_skull'])
}

View file

@ -2079,4 +2079,5 @@ function removeMinecraftRecipes(event) {
//#endregion
event.remove({ id: 'minecraft:flower_banner_pattern' })
event.remove({ id: 'gtceu:assembler/lodestone' })
}

View file

@ -2,12 +2,180 @@
function registerPrimitiveCreaturesLoots(event) {
event.addEntityLootModifier('kaolinclayze:tfc')
// kaolin klayze
event.addEntityLootModifier('primitive_creatures:tfc')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([12,16], ['tfc:kaolin_clay', 'minecraft:clay_ball'])
.addLoot('tfc:plant/blood_lily')
event.addEntityLootModifier('kaolinclayze:golem_2')
// graphite glayze
event.addEntityLootModifier('primitive_creatures:golem_2')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([3,5], ['gtceu:rich_raw_graphite'])
.addWeightedLoot([2,4], ['gtceu:rich_raw_graphite'])
const CLOTHING_DROP_RATE = 0.05
// inhabitant - light tan clothes, holds a stone axe
event.addEntityLootModifier('primitive_creatures:iloger_1')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([
// the illusion of randomness
Item.of('tfc:food/bunchberry', 3),
Item.of('tfc:food/cranberry', 4),
Item.of('tfc:food/gooseberry', 5),
Item.of('tfc:food/blackberry', 6),
Item.of('tfc:food/blueberry', 3),
Item.of('tfc:food/cloudberry', 4),
Item.of('tfc:food/elderberry', 5),
Item.of('tfc:food/raspberry', 6),
Item.of('tfc:food/snowberry', 3),
Item.of('tfc:food/strawberry', 4),
Item.of('tfc:food/wintergreen_berry', 5)])
.addAlternativesLoot(
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.8)),
LootEntry.of('gtceu:stone_axe').when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_1')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:raw_hat'),
Item.of('tfc_textile:raw_shirt'),
Item.of('tfc_textile:raw_pants'),
Item.of('tfc_textile:raw_socks')])
// herbalist - brown clothes with a mask that looks like a Creaking
event.addEntityLootModifier('primitive_creatures:iloger_2')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,2], ['gtceu:tricalcium_phosphate_dust'])
.addAlternativesLoot(
LootEntry.of('tfc:plant/field_horsetail').when(c => c.randomChance(0.3)),
LootEntry.of('tfc:plant/foxglove').when(c => c.randomChance(0.5)),
LootEntry.of('firmalife:beeswax').when(c => c.randomChance(0.8)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_2')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:grizzly_bear_hat'),
Item.of('tfc_textile:grizzly_bear_shirt'),
Item.of('tfc_textile:grizzly_bear_pants'),
Item.of('tfc_textile:grizzly_bear_boots')])
// bonebreaker - skull helmet, bone armor? hits harder, has knockback
event.addEntityLootModifier('primitive_creatures:iloger_3')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([0,2], ['minecraft:flint'])
.addWeightedLoot([1,3], ['minecraft:bone'])
.addAlternativesLoot(
LootEntry.of('gtceu:stone_hammer').when(c => c.randomChance(0.2)),
LootEntry.of('minecraft:skeleton_skull').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5))) // battered wool
event.addEntityLootModifier('primitive_creatures:iloger_3')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:direwolf_hat'),
Item.of('tfc_textile:direwolf_shirt'),
Item.of('tfc_textile:direwolf_pants'),
Item.of('tfc_textile:direwolf_boots')])
// forager - leaf on head, leafy clothes (like the swamp vanilla villager type), ranged with poison
event.addEntityLootModifier('primitive_creatures:iloger_4')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,3], LootEntry.of('minecraft:tipped_arrow')).addPotion("poison")
.addAlternativesLoot(
LootEntry.of('firmalife:food/nightshade_berry').when(c => c.randomChance(0.7)),
LootEntry.of('minecraft:spider_eye').when(c => c.randomChance(0.7)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)))
// hunter - wears brown and white fur, briefly disappears when hit, ranged with weakness
event.addEntityLootModifier('primitive_creatures:iloger_5')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,3], LootEntry.of('minecraft:tipped_arrow')).addPotion("weakness")
.addAlternativesLoot(
// placeholder for a blowpipe
LootEntry.of('minecraft:bamboo').when(c => c.randomChance(0.6)),
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5)), // battered wool
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_5')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:sabertooth_hat'),
Item.of('tfc_textile:sabertooth_shirt'),
Item.of('tfc_textile:sabertooth_pants'),
Item.of('tfc_textile:sabertooth_boots')])
// shaman - yellow clothes, throws fireballs
event.addEntityLootModifier('primitive_creatures:iloger_6')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,2], ['primitive_creatures:f_1']) // primitive explosives
.addWeightedLoot([1,3], ['minecraft:gunpowder'])
.addAlternativesLoot(
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5)), // battered wool
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:iloger_6')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:cougar_hat'),
Item.of('tfc_textile:cougar_shirt'),
Item.of('tfc_textile:cougar_pants'),
Item.of('tfc_textile:cougar_boots')])
// beast tamer - wears tiger fur, holds vanilla sugarcane? fucking summons ravagers
event.addEntityLootModifier('primitive_creatures:wiloger')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([0,2], ['primitive_creatures:grh']) // battered wool
.addAlternativesLoot(
LootEntry.of('minecraft:lead').when(c => c.randomChance(0.4)),
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:wiloger')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:tiger_hat'),
Item.of('tfc_textile:tiger_shirt'),
Item.of('tfc_textile:tiger_pants'),
Item.of('tfc_textile:tiger_boots')])
// huntsman - lion fur, holds flint club - stuns you in place when hit
event.addEntityLootModifier('primitive_creatures:piloger_9')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addAlternativesLoot(
LootEntry.of('primitive_creatures:yhgi').when(c => c.randomChance(0.2)), // flint club
LootEntry.of('tfc:small_raw_hide').when(c => c.randomChance(0.4)),
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5))) // battered wool
event.addEntityLootModifier('primitive_creatures:piloger_9')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:lion_hat'),
Item.of('tfc_textile:lion_shirt'),
Item.of('tfc_textile:lion_pants'),
Item.of('tfc_textile:lion_boots')])
// mercenary
event.addEntityLootModifier('primitive_creatures:viloger_10')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([1,2], ['minecraft:emerald'])
.addAlternativesLoot(
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.8)), // battered wool
LootEntry.of('gtceu:stone_knife').when(c => c.randomChance(0.3)),
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)),
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
event.addEntityLootModifier('primitive_creatures:viloger_10')
.randomChance(CLOTHING_DROP_RATE)
.addWeightedLoot([
Item.of('tfc_textile:raw_hat'),
Item.of('tfc_textile:raw_shirt'),
Item.of('tfc_textile:raw_pants'),
Item.of('tfc_textile:raw_socks')])
// mistah beeeaaaasssstt
event.addEntityLootModifier('primitive_creatures:beast')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([4,8], ['minecraft:bone'])
// raw meat?
}

View file

@ -0,0 +1,44 @@
// priority: 0
function registerPrimitiveCreaturesRecipes(event) {
// terrible idol crafting
event.remove({ id: 'primitive_creatures:h' })
// the brown idol -> brown dye
event.remove({ id: 'primitive_creatures:eg' })
// craft flint club
event.remove({ id: 'primitive_creatures:rwtge' })
// battered wool to wool block
event.remove({ id: 'primitive_creatures:egwgew' })
// lodestone?
event.remove({ id: 'primitive_creatures:hhg' })
// craft fortified flint club
event.replaceInput({ id: 'primitive_creatures:wegfweg' }, 'primitive_creatures:tt_5', '#tfc:nuggets')
event.replaceInput({ id: 'primitive_creatures:wegfweg' }, 'primitive_creatures:grh', 'tfc:wool')
event.recipes.tfc.knapping(
'tfg:flint_club_head',
'tfg:flint',
[
' XXX ',
' XXX ',
' X ',
' XXX ',
' X '
]
).outsideSlotRequired(false)
.id('tfg:knapping/flint_club_head')
// craft flint club
event.shapeless('primitive_creatures:yhgi', ['tfg:flint_club_head', '#forge:rods/wooden'])
.id('tfg:shapeless/flint_club')
// turn battered wool into tfc wool
event.shapeless('tfc:wool', ['primitive_creatures:grh', 'primitive_creatures:grh', '#forge:tools/knives'])
.id('tfg:shapeless/cleaning_battered_wool')
// mud idol into mud
event.shapeless('6x tfc:daub', ['primitive_creatures:totem_3'])
.id('tfg:shapeless/totem_3_decomp')
}

View file

@ -0,0 +1,28 @@
// priority: 0
function registerPrimitiveCreaturesItemTags(event) {
const DISABLED_ITEMS = [
// idol fragment (combine to make a terrible idol)
'primitive_creatures:tt_5',
// the terrible idol (spawns illager herobrine)
'primitive_creatures:kopo',
// the friendly idol (spawns an allay)
'primitive_creatures:jjj',
]
DISABLED_ITEMS.forEach(item => {
event.removeAllTagsFrom(item)
event.add('c:hidden_from_recipe_viewers', item)
})
// This tag doesn't actually do anything, as the list is hardcoded into the mod,
// but it makes it easier to find what they will accept
event.add('primitive_creatures:mercenary_payment', 'minecraft:rabbit_foot')
event.add('primitive_creatures:mercenary_payment', 'minecraft:leather')
event.add('primitive_creatures:mercenary_payment', 'minecraft:scute')
event.add('primitive_creatures:mercenary_payment', 'minecraft:redstone')
event.add('primitive_creatures:mercenary_payment', 'minecraft:gunpowder')
event.add('primitive_creatures:mercenary_payment', 'minecraft:spider_eye')
event.add('primitive_creatures:mercenary_payment', 'minecraft:flint')
event.add('primitive_creatures:mercenary_payment', 'minecraft:emerald')
}

View file

@ -1,7 +1,10 @@
// priority: 0
function registerSpeciesRecipes(event) {
event.remove({ mod: 'species' })
global.SPECIES_DISABLED_ITEMS.forEach(item => {
event.remove({ input: item })
event.remove({ output: item })
})
event.shapeless('species:music_disc_dial', ['etched:blank_music_disc', 'species:birt_egg'])

View file

@ -72,6 +72,6 @@ TFCEvents.registerFoodTrait(event => {
registerTFGFoodTraits(event)
})
Platform.mods.kaolinclayze.name = "Primitive Creatures";
Platform.mods.primitive_creatures.name = "Primitive Creatures";
Platform.mods.tfg.name = "TerraFirmaGreg";
Platform.mods.kubejs.name = "TerraFirmaGreg";

View file

@ -157,18 +157,10 @@ const registerTFGItems = (event) => {
//#region Misc
event.create('tfg:paraffin_wax')
.translationKey('item.tfg.paraffin_wax')
event.create('tfg:conifer_rosin')
.translationKey('item.tfg.conifer_rosin')
event.create('tfg:foil_pack')
.translationKey('item.tfg.foil_pack')
.texture('tfg:item/foil_pack')
event.create('tfg:clean_foil_pack')
.translationKey('item.tfg.clean_foil_pack')
.texture('tfg:item/clean_foil_pack')
event.create('tfg:flint_club_head')
//#endregion
//#region Cloth & String

View file

@ -10058,24 +10058,26 @@
"files": [
{
"type": "curseforge",
"file_name": "primitive_creatures_netherforge-1.20.1.jar",
"file_name": "Primitive creatures v2 forge-1.20.1.jar",
"mc_versions": [
"1.20.1"
],
"loaders": [
"forge"
],
"release_type": "beta",
"url": "https://edge.forgecdn.net/files/6293/489/primitive_creatures_netherforge-1.20.1.jar",
"id": "6293489",
"release_type": "release",
"url": "https://edge.forgecdn.net/files/6680/370/Primitive creatures v2 forge-1.20.1.jar",
"id": "6680370",
"parent_id": "1218288",
"hashes": {
"sha1": "2af2dc7e02672eba68d1631fc9a331bebe59b89d",
"md5": "0855701ad11cb7c8430dfcaed6d27a5d"
"sha1": "80ed425171aa47b030bd26630c4d353684f85af8",
"md5": "b5b73d7b0120be63e14e72e848329417"
},
"required_dependencies": [],
"size": 54387,
"date_published": "2025-03-11T19:35:31.220Z"
"required_dependencies": [
"388172"
],
"size": 414435,
"date_published": "2025-06-21T20:31:50.780Z"
}
]
},