Compare commits

..

No commits in common. "master" and "v3.2.0" have entirely different histories.

8 changed files with 158 additions and 452 deletions

View file

@ -2,12 +2,10 @@ kind: pipeline
name: release
steps:
- name: build
image: haxe:4.2.0-alpine
image: alpine
commands:
- apk add openjdk8-jre curl
# Download MPT
- apk add openjdk8-jre haxe curl neko
- curl 'https://data.tilera.xyz/file/mpt/mpt-1.2-SNAPSHOT.jar' -o mpt.jar
- haxelib setup /usr/share/haxe/lib
- haxelib install kubejs

View file

@ -1,3 +1,12 @@
# v3.2.2-1
## mods added
- Inventory Essentials
# v3.2.0
- changed spackenmobs spawnrates
- added utility recipes for sticks and chests
## mods added:
- AppleSkin
- Mining Dimension
- Silent Gear
- Floocraft
- Gravestones
## mods removed:
- IceAndFire

View file

@ -1,23 +0,0 @@
angelring:itemring
angelring:itemdiamondring
alchemistry:chemical_combiner
alchemistry:chemical_dissolver
compactmachines:wall
compactmachines:machine_tiny
compactmachines:machine_small
compactmachines:machine_normal
compactmachines:machine_large
compactmachines:machine_giant
compactmachines:machine_large
compactmachines:machine_maximum
compactmachines:personal_shrinking_device
ring_of_teleport:ring_of_teleport
ring_of_enderchest:ring_of_enderchest
ring_of_repair:ring_of_repair
ring_of_blink:ring_of_blink
crossroads:gear_facade_glass
assemblylinemachines:simple_grinder
assemblylinemachines:steel_blade_piece
assemblylinemachines:steel_fluid_tank
enderrift:rift
enderrift:rift_or

View file

@ -2,8 +2,9 @@ package;
import kubejs.Events;
import kubejs.Settings;
import kubejs.events.server.RecipesEvent;
import kubejs.events.GeneralEvents.RecipesEvent;
import kubejs.Events.EventType;
import kubejs.Item;
class Main {
static function main() {
@ -12,8 +13,132 @@ class Main {
Settings.logSkippedRecipes = false;
Settings.logErroringRecipes = true;
Events.onEvent(EventType.ItemTagsEventType, Tags.onItemTagsEvent);
Events.onEvent(EventType.BlockTagsEventType, Tags.onBlockTagsEvent);
Events.onEvent(EventType.RecipesEventType, Recipes.onEvent);
Events.onEvent(EventType.RecipesEventType, onRecipesEvent);
}
static function onRecipesEvent(event:RecipesEvent) {
// @formatter:off
var removeByOutput = [
"angelring:itemring",
"angelring:itemdiamondring",
"alchemistry:chemical_combiner",
"alchemistry:chemical_dissolver",
"compactmachines:wall",
"compactmachines:machine_tiny",
"compactmachines:machine_small",
"compactmachines:machine_normal",
"compactmachines:machine_large",
"compactmachines:machine_giant",
"compactmachines:machine_large",
"compactmachines:machine_maximum",
"compactmachines:personal_shrinking_device",
"ring_of_teleport:ring_of_teleport",
"ring_of_enderchest:ring_of_enderchest",
"ring_of_repair:ring_of_repair",
"ring_of_blink:ring_of_blink"
];
// @formatter:on
for (i in removeByOutput) {
event.remove({output: i});
}
// SHAPED RECIPES
event.shaped("alchemistry:chemical_combiner", ["SSS", "ACA", "SSS"], {
S: "#forge:ingots/steel",
C: "mekanism:chemical_crystallizer",
A: "mekanism:alloy_atomic"
});
event.shaped("alchemistry:chemical_dissolver", ["SSS", "ACA", "SSS"], {
S: "#forge:ingots/steel",
C: "mekanism:chemical_dissolution_chamber",
A: "mekanism:alloy_atomic"
});
event.shaped("compactmachines:wall", ["TTT", "TCT", "TTT"], {
T: "chemlib:ingot_thorium",
C: "#forge:ingots/chromium"
});
event.shaped("compactmachines:machine_tiny", ["CCC", "CTC", "CCC"], {
T: "mekanism:teleportation_core",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_small", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_tiny",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_normal", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_small",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_large", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_normal",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_giant", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_large",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_maximum", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_giant",
C: "compactmachines:wall"
});
event.shaped("compactmachines:personal_shrinking_device", ["III", "ICI", "TTT"], {
T: "mekanism:teleportation_core",
C: "#forge:ingots/chromium",
I: "#forge:ingots"
});
event.shaped("ring_of_teleport:ring_of_teleport", ["EM ", "M M", " M "], {
E: "#forge:ender_pearls",
M: "botania:manasteel_ingot"
});
event.shaped("ring_of_enderchest:ring_of_enderchest", ["EM ", "M M", " M "], {
E: "#forge:chests/ender",
M: "botania:manasteel_ingot"
});
event.shaped("ring_of_repair:ring_of_repair", ["ME ", "E E", " E "], {
M: Item.of("minecraft:enchanted_book", 1, {StoredEnchantments: [{lvl: 1, id: "minecraft:mending"}]}),
E: "botania:elementium_ingot"
});
event.shaped("angelring:itemring", ["WGW", "GRG", "TGT"], {
G: "minecraft:gold_ingot",
R: "angelring:itemdiamondring",
W: "forbidden_arcanus:bat_wing",
T: "minecraft:ghast_tear"
});
event.shaped("angelring:itemdiamondring", ["DED", "ECE", "DED"], {
C: "minecraft:nether_star",
E: "botania:manasteel_ingot",
D: "minecraft:diamond_block"
});
event.shaped("angelring:itemdiamondring", ["DED", "ECE", "DED"], {
C: "minecraft:elytra",
E: "botania:manasteel_ingot",
D: "minecraft:diamond_block"
});
event.shaped(Item.of("minecraft:chest", 4), ["WWW", "W W", "WWW"], {
W: "#minecraft:logs"
});
event.shaped(Item.of("minecraft:stick", 16), ["W", "W"], {
W: "#minecraft:logs"
});
// SHAPELESS RECIPES
event.shapeless("ring_of_blink:ring_of_blink", ["ring_of_teleport:ring_of_teleport", "botania:terrasteel_ingot"]);
}
}

View file

@ -1,298 +0,0 @@
package;
import kubejs.events.server.RecipesEvent;
import kubejs.Item;
class Recipes {
static final removeByOutput = Util.getFile("remove_by_output.txt");
// @formatter:off
static final honeyLiquids = [
"resourcefulbees:honey",
"productivebees:honey",
"create:honey"
];
// @formatter:on
public static function onEvent(event:RecipesEvent) {
removeRecipes(event);
shapedRecipes(event);
shapelessRecipes(event);
customRecipes(event);
replaceInputs(event);
}
static function removeRecipes(event:RecipesEvent) {
for (i in removeByOutput) {
event.remove({output: i});
}
}
static function shapedRecipes(event:RecipesEvent) {
event.shaped("alchemistry:chemical_combiner", ["SSS", "ACA", "SSS"], {
S: "#forge:ingots/steel",
C: "mekanism:chemical_crystallizer",
A: "mekanism:alloy_atomic"
});
event.shaped("alchemistry:chemical_dissolver", ["SSS", "ACA", "SSS"], {
S: "#forge:ingots/steel",
C: "mekanism:chemical_dissolution_chamber",
A: "mekanism:alloy_atomic"
});
event.shaped("compactmachines:wall", ["TTT", "TCT", "TTT"], {
T: "chemlib:ingot_thorium",
C: "#forge:ingots/chromium"
});
event.shaped("compactmachines:machine_tiny", ["CCC", "CTC", "CCC"], {
T: "mekanism:teleportation_core",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_small", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_tiny",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_normal", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_small",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_large", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_normal",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_giant", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_large",
C: "compactmachines:wall"
});
event.shaped("compactmachines:machine_maximum", ["CCC", "CMC", "CCC"], {
M: "compactmachines:machine_giant",
C: "compactmachines:wall"
});
event.shaped("compactmachines:personal_shrinking_device", ["III", "ICI", "TTT"], {
T: "mekanism:teleportation_core",
C: "#forge:ingots/chromium",
I: "#forge:ingots"
});
event.shaped("ring_of_teleport:ring_of_teleport", ["EM ", "M M", " M "], {
E: "#forge:ender_pearls",
M: "botania:manasteel_ingot"
});
event.shaped("ring_of_enderchest:ring_of_enderchest", ["EM ", "M M", " M "], {
E: "#forge:chests/ender",
M: "botania:manasteel_ingot"
});
event.shaped("ring_of_repair:ring_of_repair", ["ME ", "E E", " E "], {
M: Item.of("minecraft:enchanted_book", 1, {StoredEnchantments: [{lvl: 1, id: "minecraft:mending"}]}),
E: "botania:elementium_ingot"
});
event.shaped("angelring:itemring", ["WGW", "GRG", "TGT"], {
G: "minecraft:gold_ingot",
R: "angelring:itemdiamondring",
W: "forbidden_arcanus:bat_wing",
T: "minecraft:ghast_tear"
});
event.shaped("angelring:itemdiamondring", ["DED", "ECE", "DED"], {
C: "minecraft:nether_star",
E: "botania:manasteel_ingot",
D: "minecraft:diamond_block"
});
event.shaped("angelring:itemdiamondring", ["DED", "ECE", "DED"], {
C: "minecraft:elytra",
E: "botania:manasteel_ingot",
D: "minecraft:diamond_block"
});
event.shaped(Item.of("minecraft:chest", 4), ["WWW", "W W", "WWW"], {
W: "#minecraft:logs"
});
event.shaped(Item.of("minecraft:stick", 16), ["W", "W"], {
W: "#minecraft:logs"
});
event.shaped("minecraft:hopper", ["IWI", "IWI", " I "], {I: "#forge:ingots/iron", W: "#minecraft:logs"});
event.shaped("minecraft:repeater", ["R R", "SRS", "sss"], {R: "#forge:dusts/redstone", S: "#forge:rods/wooden", s: "minecraft:stone"});
event.shaped("enderrift:rift", ["LEL", "ECE", "LEL"], {
L: "#forge:ingots/lawrencium",
E: "minecraft:ender_eye",
C: "mekanism:teleportation_core"
});
}
static function shapelessRecipes(event:RecipesEvent) {
event.shapeless("ring_of_blink:ring_of_blink", ["ring_of_teleport:ring_of_teleport", "botania:terrasteel_ingot"]);
}
static function customRecipes(event:RecipesEvent) {
// Steel plate with multiservo press
event.custom({
type: "thermal:press",
ingredient: {
tag: "forge:ingots/steel"
},
result: [
{
item: "immersiveengineering:plate_steel"
}
]
});
// Certus Quartz dust with pulverizer
event.custom({
type: "thermal:pulverizer",
ingredient: {
tag: "forge:gems/certus_quartz"
},
result: [
{
item: "appliedenergistics2:certus_quartz_dust"
}
]
});
// Resourceful bees honey to honey block in blast chiller
event.custom({
type: "thermal:chiller",
ingredient: {
fluid: "resourcefulbees:honey",
amount: 1000
},
result: [
{
item: "minecraft:honey_block"
}
]
});
// Resourceful bees honey to bottle in fluid encapsulator
event.custom(untyped {
type: "thermal:bottler",
ingredient: [
{
item: "minecraft:glass_bottle"
},
{
fluid: "resourcefulbees:honey",
amount: 250
}
],
result: [
{
item: "minecraft:honey_bottle"
}
]
});
// Honey to sugar
for (honey in honeyLiquids) {
event.custom({
type: "silents_mechanisms:solidifying",
ingredient: {
fluid: honey,
amount: 250
},
process_time: 100,
result: {
item: "minecraft:sugar",
count: 3
}
});
}
// Overwrite glitchy ice and obsidian recipies in solidifier
// @formatter:off
for (
inOutId in [
["minecraft:water", "minecraft:ice", "silents_mechanisms:solidifying/obsidian"],
["minecraft:lava", "minecraft:obsidian", "silents_mechanisms:solidifying/ice"]
]
)
// @formatter:on
{
event.custom({
type: "silents_mechanisms:solidifying",
process_time: 800,
ingredient: {
fluid: inOutId[0]
},
result: {
item: inOutId[1],
count: 1
}
}).id(inOutId[2]);
}
// Ore processing fixes
var enrichmentChamberOreRecipes = [
["forge:ores/nickel", "thermal:nickel_dust"],
["forge:ores/silver", "thermal:silver_dust"],
["forge:ores/aluminum", "silents_mechanisms:aluminum_dust"],
["forge:ores/yellorite", "bigreactors:yellorium_dust"]
];
var bothOreRecipes = [["forge:ores/bismuth", "silents_mechanisms:bismuth_dust"]];
for (r in enrichmentChamberOreRecipes.concat(bothOreRecipes)) {
event.custom({
type: "mekanism:enriching",
input: {
ingredient: {
tag: r[0]
}
},
output: {
item: r[1],
count: 2
}
});
}
for (r in bothOreRecipes) {
event.custom({
type: "thermal:pulverizer",
ingredient: {
tag: r[0]
},
result: [
{
item: r[1],
chance: 2.0
},
{
item: "minecraft:gravel",
chance: 0.2
}
]
});
}
}
static function replaceInputs(event:RecipesEvent) {
// ALM Fixes
var almFixesFilter = {mod: "assemblylinemachines"};
event.replaceInput(almFixesFilter, "assemblylinemachines:steel_ingot", "#forge:ingots/steel");
event.replaceInput(almFixesFilter, "assemblylinemachines:steel_plate", "#forge:plates/steel");
event.replaceInput(almFixesFilter, "assemblylinemachines:steel_rod", "#forge:rods/steel");
event.replaceInput(almFixesFilter, "assemblylinemachines:plastic_sheet", "#forge:plastic");
event.replaceInput(almFixesFilter, "assemblylinemachines:iron_plate", "#forge:plates/iron");
// Silicon Fixes
event.replaceInput({}, "refinedstorage:silicon", "#forge:silicon");
event.replaceInput({}, "appliedenergistics2:silicon", "#forge:silicon");
}
}

View file

@ -1,39 +0,0 @@
package;
import kubejs.events.server.TagsEvent;
class Tags {
public static function onItemTagsEvent(event:TagsEvent) {
itemAndBlockTags(event);
itemTags(event);
}
public static function onBlockTagsEvent(event:TagsEvent) {
itemAndBlockTags(event);
}
static function itemAndBlockTags(event:TagsEvent) {
// Fix ore tags
event.add("forge:ores/copper", ["electrodynamics:orecopper"]);
event.add("forge:ores/tin", ["electrodynamics:oretin"]);
event.add("forge:ores/silver", ["electrodynamics:oresilver"]);
event.add("forge:ores/lead", ["electrodynamics:orelead"]);
event.add("forge:ores/sulfur", ["electrodynamics:oresulfur"]);
event.add("forge:ores/yellorite", ["bigreactors:yellorite_ore"]);
// Trapdoor tags
var trapdoors = ["ars_nouveau:archwood_trapdoor", "rats:pirat_trapdoor"];
event.add("minecraft:trapdoors", trapdoors);
event.add("minecraft:wooden_trapdoors", trapdoors);
}
static function itemTags(event:TagsEvent) {
event.add("forge:plates/iron", ["assemblylinemachines:iron_plate"]);
event.add("forge:plates/steel", ["assemblylinemachines:steel_plate"]);
event.add("forge:plastic", ["assemblylinemachines:plastic_sheet"]);
// Silicon fix
event.add("appliedenergistics2:silicon", ["#forge:silicon"]);
}
}

View file

@ -1,20 +0,0 @@
package;
import haxe.macro.Expr.ExprOf;
class Util {
/**
* Reads a file into an array of lines at compile time
* Removes empty lines
**/
public static macro function getFile(path:String):ExprOf<Array<String>> {
// @formatter:off
return macro $a{
sys.io.File.getContent(path)
.split("\n")
.filter(line -> line.length >= 1)
.map(line -> macro $v{line})
};
// @formatter:on
}
}

View file

@ -3,7 +3,7 @@
"type": "modpack",
"versions": [
{
"version": "3.2.2",
"version": "3.2.0",
"versionid": -1,
"mcversion": [
"1.16.4"
@ -21,51 +21,6 @@
}
],
"relations": [
{
"id": "380060",
"file": {
"installer": "internal.dir:mods",
"artifact": "curse.maven:380060:3165730",
"repository": "curse"
},
"type": "mod",
"options": [
"required",
"client",
"server",
"included"
]
},
{
"id": "233780",
"file": {
"installer": "internal.dir:mods",
"artifact": "curse.maven:233780:3045816",
"repository": "curse"
},
"type": "mod",
"options": [
"required",
"client",
"server",
"included"
]
},
{
"id": "250294",
"file": {
"installer": "internal.dir:mods",
"artifact": "curse.maven:250294:3176107",
"repository": "curse"
},
"type": "mod",
"options": [
"required",
"client",
"server",
"included"
]
},
{
"id": "227782",
"file": {
@ -100,7 +55,7 @@
"id": "238551",
"file": {
"installer": "internal.dir:mods",
"artifact": "curse.maven:238551:3195846",
"artifact": "curse.maven:238551:3195857",
"repository": "curse"
},
"type": "mod",
@ -2029,20 +1984,6 @@
"included"
]
},
{
"id": "368825",
"file": {
"installer": "internal.dir:mods",
"artifact": "curse.maven:368825:3222115",
"repository": "curse"
},
"type": "mod",
"options": [
"required",
"client",
"included"
]
},
{
"id": "forge",
"versions": "[1.16.4-35.1.37]",
@ -2053,6 +1994,19 @@
"server",
"included"
]
},
{
"id": "forgehax",
"file": {
"installer": "internal.dir:mods",
"link": "https://jenkins.nhackindustries.com/job/ForgeHax/job/1.16/57/artifact/build/libs/ForgeHax-1.16.4-3.2.0-cc283818.jar"
},
"type": "mod",
"options": [
"required",
"client",
"included"
]
}
]
}