Compare commits

..

42 commits

Author SHA1 Message Date
312762412f chore: bump version
All checks were successful
ci/woodpecker/manual/central-override Pipeline was successful
2023-04-07 20:33:09 +02:00
17cbfc7755 chore: update mekanism 2023-04-07 20:29:52 +02:00
72154ef308 chore: update classic-casting 2023-04-07 16:20:08 +02:00
0a60997ae5
fix: add recipe for the upgrade module upgrade
closes #7
2023-04-02 16:26:15 +02:00
7355277cbc chore: bump version 2023-03-24 14:07:47 +01:00
baf78144ea chore: reenable vanilla enderchest 2023-03-23 21:49:50 +01:00
3b48cd1d8f chore: update icbm 2023-03-23 21:46:58 +01:00
357d9cbd8a chore: update classic casting 2023-03-22 18:56:08 +01:00
3fad9a8bf5 fix: add aspects to JARLABEL research
fixes #4
2023-03-21 17:38:27 +01:00
308987fea6
fix: remove outdated buildscript 2023-03-16 16:02:52 +01:00
cdfec1a0cd chore: bump version 2023-03-15 16:46:16 +01:00
cd4e65171b fix: update mods 2023-03-15 16:45:48 +01:00
aa328f37ac
fix: rubber logs are now considered wood
fixes #3
2023-03-14 21:26:52 +01:00
e3ff938569
feat: add tenebrae to corrupted essence 2023-03-14 18:14:53 +01:00
7bbf1be07a
fix: add taint aspect to some items 2023-03-14 18:12:32 +01:00
aace4755f7
fix: mekanism pipe recipes 2023-03-11 21:19:38 +01:00
3ecb006ac0 chore: bump version 2023-03-09 21:08:46 +01:00
ea0f0f0949 fix: update factorization 2023-03-09 21:02:38 +01:00
2d3cf39ec1 chore: initial release 2023-03-04 17:14:40 +01:00
f0b53eb190 fix: disable farlands 2023-03-02 14:16:00 +00:00
09d6d3c28a chore: release candidate 2 2023-03-01 20:32:55 +01:00
8105df3a12 feat: add archaicfix 2023-03-01 20:31:16 +01:00
c54dea6554 feat: switch to unimixins 2023-03-01 20:30:05 +01:00
a0ac9b4852 fix: update some mods 2023-02-28 19:44:53 +01:00
8b35f4822f feat: disable taint from flux 2023-02-22 14:49:38 +01:00
20d3dfb0a0 fix: update classic worldgen 2023-02-21 19:16:14 +01:00
370d102fb6 chore: release candidate 1 2023-02-18 17:52:21 +01:00
05dd93fc62 fix: update redpower 2023-02-18 17:51:44 +01:00
2644b1e082 feat: small pipe model 2023-02-18 15:29:28 +01:00
b0cb255906 fix: remove tiny carts (currently too buggy) 2023-02-18 15:28:32 +01:00
1bbe7382cc feat: add mekanism pipe textures 2023-02-17 19:03:33 +00:00
e3b18a1a82 feat: update mekanism 2023-02-17 19:59:06 +01:00
c87ba41671 feat: add mekanism factory textures 2023-02-17 19:33:36 +01:00
3ccebc10c1 feat: update some mods 2023-02-17 12:26:17 +01:00
c8f0d9574e feat: rename poppy to rose 2023-02-17 12:24:52 +01:00
e8b576827e chore: bump version 2023-02-11 14:53:31 +01:00
8f68a6382a fix: update mekanism 2023-02-11 14:53:06 +01:00
b2519977f9 feat: add some sold mekanism textures 2023-02-11 14:41:53 +01:00
7acf3f5c28 fix: update to latest mod patches 2023-02-11 14:39:16 +01:00
f056fd9ffb feat: old rose texture 2023-02-11 14:36:41 +01:00
6810d28d18 feat: classic loading screen 2023-02-11 14:34:53 +01:00
980f076c2f feat: remove powercraft (currently too buggy) 2023-02-08 22:05:34 +01:00
604 changed files with 1385 additions and 590 deletions

View file

@ -4,7 +4,7 @@
},
"id": "mineteck-reloaded",
"namespace": "net.anvilcraft",
"version": "1.0.0-beta.2",
"version": "1.0.4",
"flags": {
"both": ["required", "instance"]
},
@ -190,7 +190,7 @@
{
"qualifier": "mod-appeng",
"link": [
"https://maven.tilera.xyz/appeng/appliedenergistics2/rv3-beta-21/appliedenergistics2-rv3-beta-21.jar"
"https://maven.tilera.xyz/appeng/appliedenergistics2/rv3-beta-23/appliedenergistics2-rv3-beta-23.jar"
],
"flags": {
"both": ["required"]
@ -385,7 +385,7 @@
{
"qualifier": "mod-ee3",
"link": [
"https://git.tilera.org/api/packages/Anvilcraft/generic/ee3/0.5.0/EquivalentExchange3-1.7.10-0.5.0.0.jar"
"https://git.tilera.org/api/packages/Anvilcraft/generic/ee3/0.5.1/EquivalentExchange3-1.7.10-0.5.1.0.jar"
],
"flags": {
"both": ["required"]
@ -400,7 +400,7 @@
{
"qualifier": "mod-factorization",
"link": [
"https://mediafiles.forgecdn.net/files/2990/432/Factorization-1.7.10-0.8.108+(Unofficial).jar"
"https://cdn.modrinth.com/data/XmseIqaa/versions/0.8.109/Factorization-1.7.10-0.8.109.jar"
],
"flags": {
"both": ["required"]
@ -548,7 +548,7 @@
{
"qualifier": "mod-mekanism",
"link": [
"https://maven.tilera.xyz/mekanism/Mekanism/1.7.10-9.12.0/Mekanism-1.7.10-9.12.0.jar"
"https://maven.tilera.xyz/mekanism/Mekanism/1.7.10-9.13.1/Mekanism-1.7.10-9.13.1.jar"
],
"flags": {
"both": ["required"]
@ -983,22 +983,7 @@
{
"qualifier": "mod-redpower",
"link": [
"https://maven.tilera.xyz/com/eloraam/redpower/RedPower/2.0pr8-dirty/RedPower-2.0pr8-dirty.jar"
],
"flags": {
"both": ["required"]
},
"install": [
{
"action": "move",
"args": ["./mods"]
}
]
},
{
"qualifier": "mod-powercraft",
"link": [
"https://cdn.tilera.xyz/minecraft/mods/mtreloaded/powercraft-0.1.0B.jar"
"https://maven.tilera.xyz/com/eloraam/redpower/RedPower/2.0pr10-dirty/RedPower-2.0pr10-dirty.jar"
],
"flags": {
"both": ["required"]
@ -1043,7 +1028,7 @@
{
"qualifier": "mod-cwg",
"link": [
"https://maven.tilera.xyz/dev/tilera/modding/cwg/1.6.0/cwg-1.6.0.jar"
"https://maven.tilera.xyz/dev/tilera/modding/cwg/1.7.1/cwg-1.7.1.jar"
],
"flags": {
"both": ["required"]
@ -1058,7 +1043,7 @@
{
"qualifier": "mod-mixins",
"link": [
"https://cdn.tilera.xyz/minecraft/mods/mtreloaded/00gasstation-mc1.7.10-0.3.5.jar"
"https://mediafilez.forgecdn.net/files/4399/569/_unimixins-all-1.7.10-0.1.4.jar"
],
"flags": {
"both": ["required"]
@ -1103,7 +1088,7 @@
{
"qualifier": "mod-electricexpansion",
"link": [
"https://maven.tilera.xyz/universalelectricity/electricexpansion/1.0.0/electricexpansion-1.0.0.jar"
"https://maven.tilera.xyz/universalelectricity/electricexpansion/1.0.2/electricexpansion-1.0.2.jar"
],
"flags": {
"both": ["required"]
@ -1118,7 +1103,7 @@
{
"qualifier": "mod-assemblyline",
"link": [
"https://maven.tilera.xyz/universalelectricity/assemblyline/1.0.2/assemblyline-1.0.2.jar"
"https://maven.tilera.xyz/universalelectricity/assemblyline/1.0.3/assemblyline-1.0.3.jar"
],
"flags": {
"both": ["required"]
@ -1148,7 +1133,7 @@
{
"qualifier": "mod-mffs",
"link": [
"https://maven.tilera.xyz/universalelectricity/mffs/1.0.6/mffs-1.0.6.jar"
"https://maven.tilera.xyz/universalelectricity/mffs/1.0.8/mffs-1.0.8.jar"
],
"flags": {
"both": ["required"]
@ -1163,7 +1148,7 @@
{
"qualifier": "mod-icbm",
"link": [
"https://maven.tilera.xyz/universalelectricity/icbm/1.0.4/icbm-1.0.4.jar"
"https://maven.tilera.xyz/universalelectricity/icbm/1.0.8/icbm-1.0.8.jar"
],
"flags": {
"both": ["required"]
@ -1178,7 +1163,7 @@
{
"qualifier": "mod-auracore",
"link": [
"https://maven.tilera.xyz/dev/tilera/auracore/1.8.7/auracore-1.8.7.jar"
"https://maven.tilera.xyz/dev/tilera/auracore/1.8.9/auracore-1.8.9.jar"
],
"flags": {
"both": ["required"]
@ -1193,7 +1178,7 @@
{
"qualifier": "mod-classiccasting",
"link": [
"https://maven.tilera.xyz/net/anvilcraft/classic-casting/1.3.0/classic-casting-1.3.0.jar"
"https://maven.tilera.xyz/net/anvilcraft/classic-casting/1.4.1/classic-casting-1.4.1.jar"
],
"flags": {
"both": ["required"]
@ -1250,21 +1235,6 @@
}
]
},
{
"qualifier": "mod-tinycarts",
"link": [
"http://immibis.com/mcmoddl/files/tinycarts-0.2.jar"
],
"flags": {
"both": ["required"]
},
"install": [
{
"action": "move",
"args": ["./mods"]
}
]
},
{
"qualifier": "mod-gravitygun",
"link": [
@ -1340,6 +1310,21 @@
}
]
},
{
"qualifier": "mod-archaicfix",
"link": [
"https://mediafilez.forgecdn.net/files/4405/338/archaicfix-0.5.0.jar"
],
"flags": {
"both": ["required"]
},
"install": [
{
"action": "move",
"args": ["./mods"]
}
]
},
{
"qualifier": "mod-mousetweaks",
"link": [
@ -1388,6 +1373,22 @@
}
]
},
{
"qualifier": "mod-loadingscreen",
"link": [
"https://mediafilez.forgecdn.net/files/2414/751/BetterLoadingScreen-1.3.10.jar"
],
"flags": {
"client": ["required"],
"server": ["incompatible"]
},
"install": [
{
"action": "move",
"args": ["./mods"]
}
]
},
{
"qualifier": "mod-liteloader",
"link": [

484
build.zig
View file

@ -1,484 +0,0 @@
//usr/bin/env zig run $0 -lc `pkgconf --libs libarchive libcurl`; exit
// This script requires a zig compiler, libarchive and libcurl to run.
// If you're on windows, screw you lol
const std = @import("std");
const c = @cImport({
@cInclude("curl/curl.h");
@cInclude("archive.h");
@cInclude("archive_entry.h");
});
const settings = @import("settings.zig");
pub fn main() !void {
const simple_output = std.os.getenv("BUILD_SIMPLE_OUTPUT") != null;
// used to buffer whatever
var buf: [512]u8 = undefined;
try std.fs.cwd().deleteTree(settings.build_dir);
try std.fs.cwd().makeDir(settings.build_dir);
var zip = c.archive_write_new();
if (zip == null)
return error.ArchiveNewError;
defer _ = c.archive_write_free(zip);
try handleArchiveErr(c.archive_write_set_format_zip(zip), zip);
try handleArchiveErr(c.archive_write_set_format_option(
zip,
"zip",
"compression-level",
settings.compression_level,
), zip);
try handleArchiveErr(c.archive_write_open_filename(
zip,
settings.build_dir ++ "/" ++ settings.name ++ "-" ++ settings.version ++ ".zip",
), zip);
var entry = c.archive_entry_new();
defer c.archive_entry_free(entry);
try archiveCreateDir(zip.?, entry.?, "minecraft/");
try archiveCreateDir(zip.?, entry.?, "minecraft/mods/");
const writer = ArchiveWriter{ .context = zip.? };
var overrides = try std.fs.cwd().openIterableDir("overrides", .{});
defer overrides.close();
var walker = try overrides.walk(std.heap.c_allocator);
defer walker.deinit();
const stdout = std.io.getStdOut().writer();
while (try walker.next()) |e| {
switch (e.kind) {
.Directory => {
if (simple_output) {
stdout.print(
"Writing Directory\t{s}\n",
.{e.path},
) catch {};
} else {
stdout.print(
"Writing Directory\t\x1b[34m{s}/\x1b[0m\n",
.{e.path},
) catch {};
}
const path = try std.mem.concatWithSentinel(
std.heap.c_allocator,
u8,
&[_][]const u8{ "minecraft/", e.path },
0,
);
defer std.heap.c_allocator.free(path);
try archiveCreateDir(zip.?, entry.?, path.ptr);
},
.File => {
if (simple_output) {
stdout.print("Writing File\t\t{s}\n", .{e.path}) catch {};
} else {
stdout.print("Writing File\t\t\x1b[34m{s}\x1b[0m\n", .{e.path}) catch {};
}
const path = try std.mem.concatWithSentinel(
std.heap.c_allocator,
u8,
&[_][]const u8{ "minecraft/", e.path },
0,
);
defer std.heap.c_allocator.free(path);
var file = try overrides.dir.openFile(e.path, .{});
defer file.close();
try archiveFile(
zip.?,
entry.?,
&buf,
path.ptr,
file,
);
},
else => {},
}
}
try installMmcPackJson(zip.?, entry.?);
c.archive_entry_set_pathname(entry, "instance.cfg");
c.archive_entry_set_size(entry, settings.instance_cfg_data.len);
try handleArchiveErr(c.archive_write_header(zip, entry), zip);
try writer.writeAll(settings.instance_cfg_data);
var mods_arena = std.heap.ArenaAllocator.init(std.heap.c_allocator);
defer mods_arena.deinit();
var mods = std.ArrayList([]u8).init(std.heap.c_allocator);
defer mods.deinit();
readMods(&mods, mods_arena.allocator()) catch |err| {
std.log.err("Error reading mods.conf", .{});
return err;
};
downloadMods(mods.items, zip.?, entry.?, simple_output) catch |err| {
std.log.err("Error downloading mods", .{});
return err;
};
try handleArchiveErr(c.archive_write_close(zip), zip);
}
const ArchiveWriter = std.io.Writer(
*c.archive,
error{ArchiveError},
writeArchive,
);
fn writeArchive(archive: *c.archive, bytes: []const u8) error{ArchiveError}!usize {
const result = c.archive_write_data(archive, bytes.ptr, bytes.len);
if (result < 0) {
try handleArchiveErr(result, archive);
}
return @intCast(usize, result);
}
fn archiveFile(
archive: *c.archive,
entry: *c.archive_entry,
buf: []u8,
name: [*c]const u8,
file: std.fs.File,
) !void {
entrySetFile(entry);
c.archive_entry_set_pathname(entry, name);
c.archive_entry_set_size(entry, @intCast(i64, (try file.stat()).size));
try handleArchiveErr(c.archive_write_header(archive, entry), archive);
const writer = ArchiveWriter{ .context = archive };
var fifo = std.fifo.LinearFifo(u8, .Slice).init(buf);
try fifo.pump(file.reader(), writer);
}
/// `name` must end with '/'!
fn archiveCreateDir(
archive: *c.archive,
entry: *c.archive_entry,
name: [*c]const u8,
) !void {
entrySetDir(entry);
c.archive_entry_set_pathname(entry, name);
try handleArchiveErr(c.archive_write_header(archive, entry), archive);
}
fn installMmcPackJson(archive: *c.archive, entry: *c.archive_entry) !void {
const Requires = struct {
uid: []const u8,
equals: ?[]const u8 = null,
suggests: ?[]const u8 = null,
};
const Component = struct {
cachedName: []const u8,
cachedRequires: ?[]const Requires = null,
cachedVersion: []const u8,
cachedVolatile: ?bool = null,
dependencyOnly: ?bool = null,
important: ?bool = null,
uid: []const u8,
version: []const u8,
};
const data = .{
.components = &[_]Component{
.{
.cachedName = "LWJGL 2",
.cachedVersion = "2.9.4-nightly-20150209",
.cachedVolatile = true,
.dependencyOnly = true,
.uid = "org.lwjgl",
.version = "2.9.4-nightly-20150209",
},
.{
.cachedName = "Minecraft",
.cachedRequires = &.{
.{
.uid = "org.lwjgl",
.suggests = "2.9.4-nightly-20150209",
},
},
.cachedVersion = settings.minecraft_version,
.important = true,
.uid = "net.minecraft",
.version = settings.minecraft_version,
},
.{
.cachedName = "Forge",
.cachedRequires = &.{
.{
.uid = "net.minecraft",
.equals = settings.minecraft_version,
},
},
.uid = "net.minecraftforge",
.cachedVersion = settings.forge_version,
.version = settings.forge_version,
},
},
.formatVersion = 1,
};
// We run the serializer twice, because we need to know the size ahead of time for zip.
// This is faster than allocating the json on the heap.
var counter = std.io.countingWriter(std.io.null_writer);
try std.json.stringify(
data,
.{ .emit_null_optional_fields = false },
counter.writer(),
);
entrySetFile(entry);
c.archive_entry_set_size(entry, @intCast(i64, counter.bytes_written));
c.archive_entry_set_pathname(entry, "mmc-pack.json");
try handleArchiveErr(c.archive_write_header(archive, entry), archive);
try std.json.stringify(
data,
.{ .emit_null_optional_fields = false },
ArchiveWriter{ .context = archive },
);
}
fn readMods(list: *std.ArrayList([]u8), alloc: std.mem.Allocator) !void {
var file = try std.fs.cwd().openFile("mods.conf", .{});
defer file.close();
var line_buf: [1024]u8 = undefined;
while (try file.reader().readUntilDelimiterOrEof(&line_buf, '\n')) |line| {
// mods.txt has comments with "#"
const line_without_comment = std.mem.sliceTo(line, '#');
const trimmed_line = std.mem.trim(u8, line_without_comment, "\n\r\t ");
if (trimmed_line.len != 0) {
try list.append(try alloc.dupe(u8, trimmed_line));
}
}
}
fn curlWriteCallback(
data: [*]const u8,
size: usize,
nmemb: usize,
out: *std.ArrayList(u8),
) callconv(.C) usize {
const realsize = size * nmemb;
out.writer().writeAll(data[0..realsize]) catch return 0;
return realsize;
}
const CurlInfo = struct {
filename: []const u8,
index: usize,
total: usize,
mod_number_width: usize,
simple_output: bool,
fn logStart(self: *CurlInfo) !void {
if (!self.simple_output)
return;
try std.io.getStdOut().writer().print(
"[{d:[3]}/{d}] {s} Downloading...\n",
.{ self.index, self.total, self.filename, self.mod_number_width },
);
}
fn logProgress(self: *CurlInfo, percentage: u8) !void {
if (self.simple_output)
return;
try std.io.getStdOut().writer().print(
"\r\x1b[34m[{d:[4]}/{d}] \x1b[97m{s} \x1b[32m{}%",
.{
self.index,
self.total,
self.filename,
percentage,
self.mod_number_width,
},
);
}
fn logZipping(self: *CurlInfo) !void {
if (!self.simple_output) {
try std.io.getStdOut().writer().print(
"\r\x1b[34m[{d:[3]}/{d}] \x1b[97m{s} \x1b[31mZipping...",
.{ self.index, self.total, self.filename, self.mod_number_width },
);
} else {
try std.io.getStdOut().writer().print(
"[{d:[3]}/{d}] {s} Zipping...\n",
.{ self.index, self.total, self.filename, self.mod_number_width },
);
}
}
fn logDone(self: *CurlInfo) !void {
if (self.simple_output)
return;
std.io.getStdOut().writer().print(
"\x1b[2K\r\x1b[34m[{d:[3]}/{d}] \x1b[97m{s}\n",
.{ self.index, self.total, self.filename, self.mod_number_width },
) catch {};
}
};
fn curlInfoCallback(
info: *CurlInfo,
dltotal: c.curl_off_t,
dlnow: c.curl_off_t,
ultotal: c.curl_off_t,
ulnow: c.curl_off_t,
) callconv(.C) usize {
_ = ultotal;
_ = ulnow;
info.logProgress(
@intCast(u8, if (dltotal != 0) @divTrunc(dlnow * 100, dltotal) else 0),
) catch {};
return 0;
}
fn downloadMods(
mods: []const []const u8,
zip: *c.archive,
entry: *c.archive_entry,
simple_output: bool,
) !void {
var curl = c.curl_easy_init();
if (curl == null)
return error.CurlInitError;
defer c.curl_easy_cleanup(curl);
try handleCurlErr(c.curl_easy_setopt(
curl,
c.CURLOPT_WRITEFUNCTION,
&curlWriteCallback,
));
try handleCurlErr(c.curl_easy_setopt(
curl,
c.CURLOPT_XFERINFOFUNCTION,
&curlInfoCallback,
));
try handleCurlErr(c.curl_easy_setopt(curl, c.CURLOPT_NOPROGRESS, @as(c_long, 0)));
try handleCurlErr(c.curl_easy_setopt(curl, c.CURLOPT_FOLLOWLOCATION, @as(c_long, 1)));
const mod_number_width = std.math.log10(mods.len) + 1;
const writer = ArchiveWriter{ .context = zip };
var mod_buf = std.ArrayList(u8).init(std.heap.c_allocator);
defer mod_buf.deinit();
var info = CurlInfo{
.filename = "",
.index = 0,
.total = mods.len,
.mod_number_width = mod_number_width,
.simple_output = simple_output,
};
try handleCurlErr(c.curl_easy_setopt(curl, c.CURLOPT_XFERINFODATA, &info));
// hide cursor
if (!simple_output) {
std.io.getStdOut().writeAll("\x1b[?25l") catch {};
}
// show cursor & reset
defer if (!simple_output) {
std.io.getStdOut().writeAll("\x1b[?25h\x1b[0\n") catch {};
};
for (mods) |mod| {
info.index += 1;
mod_buf.clearRetainingCapacity();
var splits = std.mem.split(u8, mod, "/");
var filename_esc: ?[]const u8 = null;
while (splits.next()) |split|
filename_esc = split;
if (filename_esc == null or filename_esc.?.len == 0) {
std.log.err("Failed to get filename of URL {s}", .{mod});
return error.BorkedUrl;
}
var filename_len: c_int = undefined;
var filename_cstr = c.curl_easy_unescape(
curl,
filename_esc.?.ptr,
@intCast(c_int, filename_esc.?.len),
&filename_len,
);
defer c.curl_free(filename_cstr);
var filename = filename_cstr[0..@intCast(usize, filename_len)];
// Replace + with space in URL decoded filename
for (filename) |*ch| {
if (ch.* == '+') {
ch.* = ' ';
}
}
info.filename = filename;
try handleCurlErr(c.curl_easy_setopt(curl, c.CURLOPT_WRITEDATA, &mod_buf));
const mod_cstr = try std.cstr.addNullByte(std.heap.c_allocator, mod);
defer std.heap.c_allocator.free(mod_cstr);
try handleCurlErr(c.curl_easy_setopt(
curl,
c.CURLOPT_URL,
mod_cstr.ptr,
));
try info.logStart();
try handleCurlErr(c.curl_easy_perform(curl));
try info.logZipping();
var archive_path = try std.mem.concatWithSentinel(
std.heap.c_allocator,
u8,
&.{ "minecraft/mods/", filename },
0,
);
defer std.heap.c_allocator.free(archive_path);
c.archive_entry_set_pathname(entry, archive_path.ptr);
c.archive_entry_set_size(entry, @intCast(i64, mod_buf.items.len));
try handleArchiveErr(c.archive_write_header(zip, entry), zip);
try writer.writeAll(mod_buf.items);
try info.logDone();
}
}
fn entrySetDir(entry: *c.archive_entry) void {
c.archive_entry_set_filetype(entry, c.S_IFDIR);
c.archive_entry_set_perm(entry, 0o755);
c.archive_entry_unset_size(entry);
}
fn entrySetFile(entry: *c.archive_entry) void {
c.archive_entry_set_filetype(entry, c.S_IFREG);
c.archive_entry_set_perm(entry, 0o644);
}
fn handleCurlErr(code: c.CURLcode) !void {
if (code != c.CURLE_OK) {
std.log.err("Curl error: {s}", .{c.curl_easy_strerror(code)});
return error.CurlError;
}
}
fn handleArchiveErr(err: anytype, archive: ?*c.archive) !void {
if (err != c.ARCHIVE_OK) {
if (archive) |ar| {
if (c.archive_error_string(ar)) |err_s|
std.log.err("Archive error: {s}", .{err_s});
}
return error.ArchiveError;
}
}

View file

@ -1,15 +0,0 @@
pub const name = "mineteck-reloaded";
/// Version number used for the archive name
pub const version = "0.1.0";
pub const build_dir = "build";
pub const minecraft_version = "1.7.10";
pub const forge_version = "10.13.4.1614";
/// the data for the `instance.cfg` file
pub const instance_cfg_data =
\\InstanceType=OneSix
;
/// zip compression level. 9 is max. ask libarchive why this is a string.
pub const compression_level = "9";

View file

@ -4,7 +4,7 @@
"id": "mineteck-reloaded",
"versions": [
{
"version": "1.0.0-beta.2",
"version": "1.0.4",
"versionid": -1,
"mcversion": [
"1.7.10"
@ -167,7 +167,7 @@
{
"id": "mod-appeng",
"file": {
"link": "https://maven.tilera.xyz/appeng/appliedenergistics2/rv3-beta-21/appliedenergistics2-rv3-beta-21.jar",
"link": "https://maven.tilera.xyz/appeng/appliedenergistics2/rv3-beta-23/appliedenergistics2-rv3-beta-23.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -349,7 +349,7 @@
{
"id": "mod-ee3",
"file": {
"link": "https://git.tilera.org/api/packages/Anvilcraft/generic/ee3/0.5.0/EquivalentExchange3-1.7.10-0.5.0.0.jar",
"link": "https://git.tilera.org/api/packages/Anvilcraft/generic/ee3/0.5.1/EquivalentExchange3-1.7.10-0.5.1.0.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -363,7 +363,7 @@
{
"id": "mod-factorization",
"file": {
"link": "https://mediafiles.forgecdn.net/files/2990/432/Factorization-1.7.10-0.8.108+(Unofficial).jar",
"link": "https://cdn.modrinth.com/data/XmseIqaa/versions/0.8.109/Factorization-1.7.10-0.8.109.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -503,7 +503,7 @@
{
"id": "mod-mekanism",
"file": {
"link": "https://maven.tilera.xyz/mekanism/Mekanism/1.7.10-9.12.0/Mekanism-1.7.10-9.12.0.jar",
"link": "https://maven.tilera.xyz/mekanism/Mekanism/1.7.10-9.13.1/Mekanism-1.7.10-9.13.1.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -909,21 +909,7 @@
{
"id": "mod-redpower",
"file": {
"link": "https://maven.tilera.xyz/com/eloraam/redpower/RedPower/2.0pr8-dirty/RedPower-2.0pr8-dirty.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
"options": [
"server",
"client",
"required",
"included"
]
},
{
"id": "mod-powercraft",
"file": {
"link": "https://cdn.tilera.xyz/minecraft/mods/mtreloaded/powercraft-0.1.0B.jar",
"link": "https://maven.tilera.xyz/com/eloraam/redpower/RedPower/2.0pr10-dirty/RedPower-2.0pr10-dirty.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -965,7 +951,7 @@
{
"id": "mod-cwg",
"file": {
"link": "https://maven.tilera.xyz/dev/tilera/modding/cwg/1.6.0/cwg-1.6.0.jar",
"link": "https://maven.tilera.xyz/dev/tilera/modding/cwg/1.7.1/cwg-1.7.1.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -979,7 +965,7 @@
{
"id": "mod-mixins",
"file": {
"link": "https://cdn.tilera.xyz/minecraft/mods/mtreloaded/00gasstation-mc1.7.10-0.3.5.jar",
"link": "https://mediafilez.forgecdn.net/files/4399/569/_unimixins-all-1.7.10-0.1.4.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -1021,7 +1007,7 @@
{
"id": "mod-electricexpansion",
"file": {
"link": "https://maven.tilera.xyz/universalelectricity/electricexpansion/1.0.0/electricexpansion-1.0.0.jar",
"link": "https://maven.tilera.xyz/universalelectricity/electricexpansion/1.0.2/electricexpansion-1.0.2.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -1035,7 +1021,7 @@
{
"id": "mod-assemblyline",
"file": {
"link": "https://maven.tilera.xyz/universalelectricity/assemblyline/1.0.2/assemblyline-1.0.2.jar",
"link": "https://maven.tilera.xyz/universalelectricity/assemblyline/1.0.3/assemblyline-1.0.3.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -1063,7 +1049,7 @@
{
"id": "mod-mffs",
"file": {
"link": "https://maven.tilera.xyz/universalelectricity/mffs/1.0.6/mffs-1.0.6.jar",
"link": "https://maven.tilera.xyz/universalelectricity/mffs/1.0.8/mffs-1.0.8.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -1077,7 +1063,7 @@
{
"id": "mod-icbm",
"file": {
"link": "https://maven.tilera.xyz/universalelectricity/icbm/1.0.4/icbm-1.0.4.jar",
"link": "https://maven.tilera.xyz/universalelectricity/icbm/1.0.8/icbm-1.0.8.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -1091,7 +1077,7 @@
{
"id": "mod-auracore",
"file": {
"link": "https://maven.tilera.xyz/dev/tilera/auracore/1.8.7/auracore-1.8.7.jar",
"link": "https://maven.tilera.xyz/dev/tilera/auracore/1.8.9/auracore-1.8.9.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -1105,7 +1091,7 @@
{
"id": "mod-classiccasting",
"file": {
"link": "https://maven.tilera.xyz/net/anvilcraft/classic-casting/1.3.0/classic-casting-1.3.0.jar",
"link": "https://maven.tilera.xyz/net/anvilcraft/classic-casting/1.4.1/classic-casting-1.4.1.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
@ -1158,20 +1144,6 @@
"included"
]
},
{
"id": "mod-tinycarts",
"file": {
"link": "http://immibis.com/mcmoddl/files/tinycarts-0.2.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
"options": [
"server",
"client",
"required",
"included"
]
},
{
"id": "mod-gravitygun",
"file": {
@ -1242,6 +1214,20 @@
"included"
]
},
{
"id": "mod-archaicfix",
"file": {
"link": "https://mediafilez.forgecdn.net/files/4405/338/archaicfix-0.5.0.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
"options": [
"server",
"client",
"required",
"included"
]
},
{
"id": "mod-mousetweaks",
"file": {
@ -1284,6 +1270,20 @@
"included"
]
},
{
"id": "mod-loadingscreen",
"file": {
"link": "https://mediafilez.forgecdn.net/files/2414/751/BetterLoadingScreen-1.3.10.jar",
"installer": "internal.dir:mods"
},
"type": "mod",
"options": [
"server",
"client",
"required",
"included"
]
},
{
"id": "mod-liteloader",
"file": {

View file

@ -0,0 +1,22 @@
# Configuration file
general {
# If this is true, it will conect to drone.io to get a changelog [default: true]
B:connectExternally=false
# What font texture to use? Special Cases:
# - If you use the Russian mod "Client Fixer" then change this to "textures/font/ascii_fat.png"
# [default: textures/font/ascii.png]
S:font=textures/font/ascii.png
# Play a sound after minecraft has finished starting up [default: true]
B:playSound=true
# What sound to play when loading is complete. Default is the level up sound (random.levelup) [default: random.levelup]
S:sound=random.levelup
# Whether or not to use minecraft's display to show the progress. This looks better, but there is a possibilty of not being compatible, so if you do have any strange crash reports or compatability issues, try setting this to false [default: true]
B:useMinecraft=true
}

View file

@ -0,0 +1,87 @@
[
{
"resourceLocation": "textures/gui/title/mojangold.png",
"positionType": "CENTER",
"type": "STATIC",
"texture": {
"x": 0,
"y": 0,
"width": 256,
"height": 256
},
"position": {
"x": 0,
"y": 0,
"width": 256,
"height": 256
},
"comment": "None"
},
{
"resourceLocation": "textures/font/ascii.png",
"positionType": "CENTER",
"type": "DYNAMIC_TEXT_STATUS",
"position": {
"x": 0,
"y": -30,
"width": 0,
"height": 0
},
"colour": "000000",
"comment": ""
},
{
"resourceLocation": "textures/font/ascii.png",
"positionType": "CENTER",
"type": "DYNAMIC_TEXT_PERCENTAGE",
"position": {
"x": 0,
"y": -40,
"width": 0,
"height": 0
},
"colour": "000000",
"comment": ""
},
{
"resourceLocation": "betterloadingscreen:textures/progressBars.png",
"positionType": "CENTER",
"type": "STATIC",
"texture": {
"x": 0,
"y": 10,
"width": 182,
"height": 5
},
"position": {
"x": 0,
"y": -50,
"width": 182,
"height": 5
},
"comment": "None"
},
{
"resourceLocation": "betterloadingscreen:textures/progressBars.png",
"positionType": "CENTER",
"type": "DYNAMIC_PERCENTAGE",
"texture": {
"x": 0,
"y": 15,
"width": 182,
"height": 5
},
"position": {
"x": 0,
"y": -50,
"width": 182,
"height": 5
},
"comment": "None"
},
{
"type": "CLEAR_COLOUR",
"colour": "ffffff",
"comment": ""
}
]

View file

@ -23,7 +23,7 @@ tweaks {
B:disableNewFlowers=true
# reenable the Farlands! [default: false]
B:enableFarlands=true
B:enableFarlands=false
}

View file

@ -0,0 +1,21 @@
#EnderStorage Configuration File
#Deleting any element will restore it to it's default value
#Block ID's will be automatically generated the first time it's run
#Causes chests to lose personal settings and drop the diamond on break
anarchy-mode=false
checkUpdates=false
#Set to true to make the vanilla enderchest unplaceable.
disable-vanilla=false
#Set to true to make the vanilla enderchest uncraftable.
disable-vanilla_recipe=false
#The size of each inventory of EnderStorage. 0 = 3x3, 1 = 3x9, 2 = 6x9
item.storage-size=1
#The name of the item used to set the chest to personal. Diamond by default
personalItemID=diamond

View file

@ -16,6 +16,7 @@ client {
# If true, will reduce lagging between player sounds. Setting to false will reduce GC load
B:ReplaceSoundsWhenResuming=true
B:SmallPipeFluid=true
D:SoundVolume=1.0
}

View file

@ -51,7 +51,7 @@ general {
B:allow_warded_stone=true
# Can Taint be caused by flux effects.
B:biome_taint_from_flux=true
B:biome_taint_from_flux=false
# The chance per block update (1 in n) of the Taint biome spreading. Setting it to 0 prevents the spread of Taint biomes.
I:biome_taint_spread=200

View file

@ -0,0 +1,14 @@
#Splash screen properties
#Sat Feb 11 14:27:59 CET 2023
logoTexture=textures/gui/title/mojang.png
background=0xFFFFFF
font=0x0
barBackground=0xFFFFFF
barBorder=0xC0C0C0
rotate=false
bar=0xCB3D35
enabled=false
resourcePackPath=resources
logoOffset=0
forgeTexture=fml\:textures/gui/forge.gif
fontTexture=textures/font/ascii.png

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 10
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1,5 @@
{
"animation": {
"frametime": 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Some files were not shown because too many files have changed in this diff Show more