diff --git a/.gitignore b/.gitignore deleted file mode 100644 index dea79f5..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.opencode -base - -result diff --git a/README.md b/README.md index fcd0caf..a037d43 100644 --- a/README.md +++ b/README.md @@ -10,37 +10,34 @@ The balancing in this mode is mostly unaltered, but aims to encourage using more # List of (proposed) changes -Legend: -- `x` implemented -- `/` partially implemented -- [` `] not implemented yet - ## World -- [x] Single frozen biome (alike frozen tundra) -- [x] No structures (beside caves, probably) +- [ ] Single frozen biome (alike frozen tundra) +- [ ] No structures (beside caves, probably) - [ ] No void world -- [x] Permanent night -- [x] Hardcore Darkness (i.e. no light = pitch black world) +- [ ] Permanent night +- [ ] Hardcore Darkness (i.e. no light = pitch black world) - [ ] Permanent storm starting at day 2 -- [x] Locked at hard difficulty +- [ ] Tough As Nails mod (temperature regulation + thirst) +- [ ] Locked at hard difficulty - [ ] Higher mob spawning rate - [ ] No mob spawning before day 3 -- [ ] No blazes -- [x] No thermal foundation blaze variants +- [ ] No blazes or thermal foundation blaze variants ## Progression -- [/] Not allowed to use oil, in any form +- [ ] Not allowed to use oil, in any form +- [ ] Lava pumping from Nether using drilling rig - [ ] Other planets provide meaningful outputs via drilling rig -- [x] EIO Farming Station is lowered to early MV +- [ ] EIO Farming Station is lowered to early MV +- [ ] No DML - [ ] No fancy metal furnaces ## Transportation - [ ] No energy sources beside GT-native ones and Nuclearcraft reactors (no solar panels, no TE dynamos, no DE reactors) - [ ] No energy distribution beside GT-native ones (for instance -- no EIO energy conduits) -- [ ] No resource management solutions beside Logistics Pipes (no ME networks, no EIO item/fluid conduits). Bulk storage (think drawers and barrels) are allowed to come from any mod. +- [ ] No resource management solutions besides GT-native ones (no ME networks, no EIO item/fluid conduits). Bulk storage (think drawers and barrels) are allowed. - [ ] No "magic teleportation stuff" (Ender Chests, Dimensional Transcievers), unless: - it's an EIO Telepad - they are used to tranport between the Nether and Overworld, and have a positions that of a vanilla nether portal (identical y, 8-scaled x and z) diff --git a/base.nix b/base.nix new file mode 100644 index 0000000..fb3a202 --- /dev/null +++ b/base.nix @@ -0,0 +1,4 @@ +{ + client = "https://nightly.link/Nomifactory/Nomifactory/workflows/nightly/dev/nomifactory-dev-5a07e6e-client.zip"; + server = "https://nightly.link/Nomifactory/Nomifactory/workflows/nightly/dev/nomifactory-dev-5a07e6e-server.zip"; +} diff --git a/flake.lock b/flake.lock deleted file mode 100644 index fe08f56..0000000 --- a/flake.lock +++ /dev/null @@ -1,27 +0,0 @@ -{ - "nodes": { - "nixpkgs": { - "locked": { - "lastModified": 1751274312, - "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix index 2905aa8..e3f70ef 100644 --- a/flake.nix +++ b/flake.nix @@ -1,169 +1,4 @@ { - description = "NomiFactory harder config — modified modpack"; - - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11"; - }; - - outputs = - { self, nixpkgs }: - let - system = "x86_64-linux"; - pkgs = import nixpkgs { inherit system; }; - - sources = import ./sources.nix; - - # base Nomi - base-server = pkgs.fetchurl sources.nomi-server; - base-client = pkgs.fetchurl sources.nomi-client; - - # additional mods - hardcore-darkness = { - src = pkgs.fetchurl sources.hardcore-darkness; - jar = "HardcoreDarkness.jar"; - }; - simple-login = { - src = pkgs.fetchurl sources.simple-login; - jar = "SimpleLogin.jar"; - }; - - buildSide = - { - name, - base, - extraMods, - }: - let - modsDir = if name == "client" then "overrides/mods" else "mods"; - commonDir = ./patches/common; - prefix = if name == "client" then "overrides/" else ""; - sideDir = toString ./patches + "/${name}"; - in - pkgs.runCommand "nomifactory-harder-${name}" - { - nativeBuildInputs = with pkgs; [ - unzip - zip - patch - ]; - allowSubstitutes = false; - } - '' - mkdir staging - cd staging - unzip -q ${base} - - # Normalize line endings before patching (some configs are CRLF) - find . -type f \( -name '*.cfg' -o -name '*.properties' -o -name '*.xml' -o -name '*.zs' -o -name '*.json' \) \ - -exec sed -i 's/\r$//' {} \; - - # Apply patches and overlays from common/ - if [ -d "${commonDir}" ]; then - for p in $(find "${commonDir}" -name '*.patch'); do - rel="''${p#${commonDir}/}" - target="${prefix}''${rel%.patch}" - patch -p0 -l "$target" < "$p" - done - for f in $(find "${commonDir}" -type f ! -name '*.patch' -size +0c); do - rel="''${f#${commonDir}/}" - target="${prefix}$rel" - mkdir -p "$(dirname "$target")" - cp "$f" "$target" - done - fi - - # Apply patches and overlays from side-specific dir (if present) - if [ -d "${sideDir}" ]; then - for p in $(find "${sideDir}" -name '*.patch'); do - rel="''${p#${sideDir}/}" - target="''${rel%.patch}" - patch -p0 -l "$target" < "$p" - done - for f in $(find "${sideDir}" -type f ! -name '*.patch' -size +0c); do - rel="''${f#${sideDir}/}" - mkdir -p "$(dirname "$rel")" - cp "$f" "$rel" - done - fi - - # Strip AE2 coremod registration from the jar — bansoukou already provides - # patched classes. The original jar's AE2ELTransformer would add - # readItemStack_ae2el_old to PacketBuffer, but bansoukou's patched - # PacketBuffer already has it, causing Duplicate method name error. - # We keep the jar for mod registration but remove the FMLCorePlugin - # manifest entry so the coremod (and its transformer) doesn't load. - mkdir -p mods/ae2-uel-v0.56.7 - cd mods/ae2-uel-v0.56.7 - unzip -qo ../ae2-uel-v0.56.7.jar - sed -i '/^FMLCorePlugin:/d' META-INF/MANIFEST.MF - zip -qr ../ae2-uel-v0.56.7.jar . - cd ../.. - rm -rf mods/ae2-uel-v0.56.7 - - # Inject extra mod jars into the correct directory for this side - mkdir -p "${modsDir name}" - ${builtins.concatStringsSep "\n" (map (m: "cp ${m.src} \"${modsDir name}/${m.jar}\"") extraMods)} - - # Repack (zip auto-appends .zip; fix if it does) - zip -qr "$out" . - [ -f "$out.zip" ] && mv "$out.zip" "$out" || true - ''; - - launch-server = pkgs.writeShellScript "nomifactory-harder-server" '' - set -euo pipefail - DATA_DIR="''${1:-./nomifactory-harder-data}" - - ${pkgs.coreutils}/bin/mkdir -p "$DATA_DIR" - ${pkgs.coreutils}/bin/echo "Extracting server pack to $DATA_DIR ..." - ${pkgs.unzip}/bin/unzip -n ${self.packages.${system}.server} -d "$DATA_DIR" - - cd "$DATA_DIR" - export PATH="${pkgs.jre8}/bin:$PATH" - ${pkgs.coreutils}/bin/chmod +x launch.sh - ${pkgs.bash}/bin/bash launch.sh - ''; - in - { - packages.${system} = { - server = buildSide { - name = "server"; - base = base-server; - extraMods = [ - simple-login - ]; - }; - - client = buildSide { - name = "client"; - base = base-client; - extraMods = [ - hardcore-darkness - simple-login - ]; - }; - - default = self.packages.${system}.server; - - server-oci = pkgs.dockerTools.buildImage { - name = "nomifactory-harder-server"; - tag = "latest"; - - copyToRoot = pkgs.writeShellScriptBin "entrypoint" '' - exec ${launch-server} /srv - ''; - - config = { - Entrypoint = [ "/bin/entrypoint" ]; - WorkingDir = "/srv"; - }; - }; - }; - - apps.${system} = { - server = { - type = "app"; - program = "${launch-server}"; - }; - }; - }; + inputs = { }; + outputs = { }; } diff --git a/patches/common/config/cofh/thermalfoundation/common.cfg.patch b/patches/common/config/cofh/thermalfoundation/common.cfg.patch deleted file mode 100644 index 641d128..0000000 --- a/patches/common/config/cofh/thermalfoundation/common.cfg.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- config/cofh/thermalfoundation/common.cfg -+++ config/cofh/thermalfoundation/common.cfg -@@ -518,7 +518,7 @@ - B:Effect=true - - # If TRUE, Blizzes will spawn naturally. [default: true] -- B:Enable=true -+ B:Enable=false - - # This sets the maximum light level Blizzes can spawn at, if restricted. [range: 0 ~ 15, default: 8] - I:LightLevel=8 -@@ -541,7 +541,7 @@ - B:Effect=true - - # If TRUE, Blitzes will spawn naturally. [default: true] -- B:Enable=true -+ B:Enable=false - - # This sets the maximum light level Blitzes can spawn at, if restricted. [range: 0 ~ 15, default: 8] - I:LightLevel=8 -@@ -564,7 +564,7 @@ - B:Effect=true - - # If TRUE, Basalzes will spawn naturally. [default: true] -- B:Enable=true -+ B:Enable=false - - # This sets the maximum light level Basalzes can spawn at, if restricted. [range: 0 ~ 15, default: 8] - I:LightLevel=8 diff --git a/patches/common/config/enderio/recipes/user/user_recipes.xml.patch b/patches/common/config/enderio/recipes/user/user_recipes.xml.patch deleted file mode 100644 index 526ac89..0000000 --- a/patches/common/config/enderio/recipes/user/user_recipes.xml.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- config/enderio/recipes/user/user_recipes.xml -+++ config/enderio/recipes/user/user_recipes.xml -@@ -1,6 +1,9 @@ - - - -+ -+ -+ - - - diff --git a/patches/common/config/ftbutilities.cfg.patch b/patches/common/config/ftbutilities.cfg.patch deleted file mode 100644 index ebe2a21..0000000 --- a/patches/common/config/ftbutilities.cfg.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- config/ftbutilities.cfg -+++ config/ftbutilities.cfg -@@ -177,7 +177,7 @@ - # 18000 - Midnight - # Min: -1 - # Max: 23999 -- I:forced_spawn_dimension_time=-1 -+ I:forced_spawn_dimension_time=18000 - - # Locked weather type in spawn dimension. - # -1 - Disabled diff --git a/patches/common/config/gregtech/worldgen/overworld/heavy_oil_sphere.json b/patches/common/config/gregtech/worldgen/overworld/heavy_oil_sphere.json deleted file mode 100644 index cba787d..0000000 --- a/patches/common/config/gregtech/worldgen/overworld/heavy_oil_sphere.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "weight": 0, - "density": 0.9, - "max_height": 60, - "min_height": 10, - "dimension_filter": ["name:*(overworld|lostcities)"], - "generator": { - "type": "sphere", - "radius": [4, 6] - }, - "filler": { - "type": "ignore_bedrock", - "value": { - "type": "weight_random", - "values": [ - { - "weight": 100, - "value": "block:gregtech:fluid.oil_heavy" - } - ] - } - } - } diff --git a/patches/common/config/gregtech/worldgen/overworld/light_oil_sphere.json b/patches/common/config/gregtech/worldgen/overworld/light_oil_sphere.json deleted file mode 100644 index ca4257c..0000000 --- a/patches/common/config/gregtech/worldgen/overworld/light_oil_sphere.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "weight": 0, - "density": 0.9, - "max_height": 60, - "min_height": 10, - "dimension_filter": ["name:*(overworld|lostcities)"], - "generator": { - "type": "sphere", - "radius": [7, 9] - }, - "filler": { - "type": "ignore_bedrock", - "value": { - "type": "weight_random", - "values": [ - { - "weight": 100, - "value": "block:gregtech:fluid.oil_light" - } - ] - } - } - } diff --git a/patches/common/config/gregtech/worldgen/overworld/medium_oil_sphere.json b/patches/common/config/gregtech/worldgen/overworld/medium_oil_sphere.json deleted file mode 100644 index 137c0c0..0000000 --- a/patches/common/config/gregtech/worldgen/overworld/medium_oil_sphere.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "weight": 0, - "density": 0.9, - "max_height": 60, - "min_height": 10, - "dimension_filter": ["name:*(overworld|lostcities)"], - "generator": { - "type": "sphere", - "radius": [7, 9] - }, - "filler": { - "type": "ignore_bedrock", - "value": { - "type": "weight_random", - "values": [ - { - "weight": 100, - "value": "block:gregtech:fluid.oil_medium" - } - ] - } - } - } diff --git a/patches/common/config/gregtech/worldgen/overworld/oilsands_vein.json b/patches/common/config/gregtech/worldgen/overworld/oilsands_vein.json deleted file mode 100644 index ed2b3fc..0000000 --- a/patches/common/config/gregtech/worldgen/overworld/oilsands_vein.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "weight": 0, - "density": 0.8, - "height": { - "min": 10, - "max": 80 - }, - "layer": { - "block": { - "block": "gregtech:ore_oilsands_0", - "properties": { - "state": 0 - } - }, - "density": 0.8, - "radius": 21, - "type": "ore" - }, - "dimension_filter": [ - { - "dimension": { - "type": "whitelist", - "value": [ - "minecraft:overworld", - "lostcities:lostcities" - ] - } - } - ], - "name": "oilsands_vein", - "vein": { - "radius": 21, - "type": "ellipsoid" - } - } diff --git a/patches/common/config/lostcities/profile_default.cfg b/patches/common/config/lostcities/profile_default.cfg deleted file mode 100644 index a43cdc1..0000000 --- a/patches/common/config/lostcities/profile_default.cfg +++ /dev/null @@ -1,138 +0,0 @@ -# Configuration file - -cities_default { - S:cityBiomeFactorDefault=0.0 - S:cityBiomeFactors < - > - S:cityChance=0.0 - I:cityLevel0Height=75 - I:cityLevel1Height=83 - I:cityLevel2Height=91 - I:cityLevel3Height=99 - I:cityMaxRadius=128 - I:cityMinRadius=50 - S:cityThresshold=0.2 -} - -cityspheres_default { - S:citySphereChance=0.0 - S:citySphereFactor=1.2 - B:landscapeOutside=false - S:monorailChance=0.8 - I:monorailOffset=-2 - B:onlyPredefined=false - I:outsideGroundLevel=-1 - S:outsideProfile= - S:outsideSurfaceVariation=1.0 - B:singleBiome=false - S:sphereSurfaceVariation=1.0 -} - -client_default { - S:fogBlue=-1.0 - S:fogDensity=-1.0 - S:fogGreen=-1.0 - S:fogRed=-1.0 - S:horizon=-1.0 -} - -explosions_default { - I:debrisToNearbyChunkFactor=200 - S:destroyLoneBlocksFactor=0.05 - S:destroyOrMoveChance=0.4 - I:destroySmallSectionsSize=50 - S:explosionChance=0.0 - I:explosionMaxHeight=90 - I:explosionMaxRadius=35 - I:explosionMinHeight=75 - I:explosionMinRadius=15 - B:explosionsInCitiesOnly=true - S:miniExplosionChance=0.0 - I:miniExplosionMaxHeight=100 - I:miniExplosionMaxRadius=12 - I:miniExplosionMinHeight=60 - I:miniExplosionMinRadius=5 -} - -lostcity_default { - S:allowedBiomeFactors < - minecraft:ice_flats=1 - minecraft:frozen_river=1 - > - S:biomeSelectionStrategy=original - S:bridgeChance=0.0 - B:bridgeSupports=true - S:building2x2Chance=0.0 - S:buildingChance=0.0 - B:buildingDoorwayChance=0.6 - S:buildingFrontChance=0.0 - I:buildingMaxCellars=0 - I:buildingMaxFloors=0 - I:buildingMaxFloorsChance=0 - I:buildingMinCellars=0 - I:buildingMinFloors=0 - I:buildingMinFloorsChance=0 - S:buildingWithoutLootChance=1.0 - S:chestWithoutLootChance=1.0 - S:corridorChance=0.0 - S:dataCenterChance=0.0 - S:description=Frozen waste with taiga pockets — explore for wood - S:extraDescription= - S:fountainChance=0.0 - B:generateLighting=false - B:generateLoot=false - B:generateSpawners=false - S:generatorOptions= - I:groundLevel=71 - I:highwayDistanceMask=0 - S:highwayPerlinFactor=100.0 - B:highwayRequiresTwoCities=true - S:highwaySecondaryPerlinScale=10.0 - B:highwaySupports=true - S:icon=textures/gui/icon_default.png - S:landscapeType=default - S:libraryChance=0.0 - S:liquidBlock=minecraft:water - S:manualBiomeMappings < - > - S:parkChance=0.0 - S:railwayDungeonChance=0.0 - B:railwayStationsEnabled=false - B:railwaysCanEnd=false - B:railwaysEnabled=false - S:randomLeafBlockChance=0.0 - I:randomLeafBlockThickness=2 - S:rubbleDirtScale=0.0 - B:rubbleLayer=false - S:rubbleLeaveScale=0.0 - S:ruinChance=0.0 - S:ruinMaxlevelPercent=0.0 - S:ruinMinlevelPercent=0.0 - B:ruins=false - S:spawnBiome=minecraft:ice_flats - S:spawnCity= - B:spawnNotInBuilding=false - S:spawnSphere= - S:vineChance=0.0 - I:waterLevelOffset=8 - S:worldStyle=standard -} - -maxcaveheight { - I:structures_default=128 -} - -structures_default { - B:generateCaves=true - B:generateDungeons=false - B:generateLakes=false - B:generateMansions=false - B:generateMineshafts=false - B:generateOceanMonuments=false - B:generateRavines=false - B:generateScattered=false - B:generateStrongholds=false - B:generateVillages=false - B:preventLakesRavinesInCities=false - B:preventVillagesInCities=false -} diff --git a/patches/common/scripts/Multiblocks.zs.patch b/patches/common/scripts/Multiblocks.zs.patch deleted file mode 100644 index ce6f3a7..0000000 --- a/patches/common/scripts/Multiblocks.zs.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- scripts/Multiblocks.zs -+++ scripts/Multiblocks.zs -@@ -1831,17 +1831,6 @@ - .outputs() - .buildAndRegister(); - --// Oil Drilling Rig mechanics --oildrillingrig.recipeMap -- .recipeBuilder() -- .duration(100) -- .EUt(875) -- .inputs() -- .fluidInputs( * 1000) -- .fluidOutputs( * 1000) -- .property("consumeChance", 1) -- .buildAndRegister(); -- - // Lunar Mining Station Rover Missions - lunarminingstation.recipeMap \ No newline at end of file diff --git a/patches/common/scripts/NomiHarder.zs b/patches/common/scripts/NomiHarder.zs deleted file mode 100644 index 80e8404..0000000 --- a/patches/common/scripts/NomiHarder.zs +++ /dev/null @@ -1,11 +0,0 @@ -import crafttweaker.item.IItemStack; -import crafttweaker.oredict.IOreDictEntry; - -recipes.remove(); -recipes.addShaped("nomiharder_farming_station", , - [ - [, , ], - [, , ], - [, , ] - ] -); diff --git a/patches/server/server.properties.patch b/patches/server/server.properties.patch deleted file mode 100644 index 8cd2572..0000000 --- a/patches/server/server.properties.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- server.properties -+++ server.properties -@@ -22,9 +22,9 @@ pvp=true --difficulty=1 -+difficulty=3 - enable-command-block=false - gamemode=0 - player-idle-timeout=0 - max-players=20 - spawn-monsters=true - view-distance=10 --generate-structures=true -+generate-structures=false --motd=Nomifactory Server -+motd=NomiSuffory Server diff --git a/sources.nix b/sources.nix deleted file mode 100644 index 5e74c75..0000000 --- a/sources.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - nomi-client = { - url = "https://nightly.link/Nomifactory/Nomifactory/workflows/nightly/dev/nomifactory-dev-5a07e6e-client.zip"; - hash = "sha256-VLabdIF8QTB3HTzu+vbyiyFcDH57Zxf4195oJ+eyBLo="; - }; - nomi-server = { - url = "https://nightly.link/Nomifactory/Nomifactory/workflows/nightly/dev/nomifactory-dev-5a07e6e-server.zip"; - hash = "sha256-5ve+pWdN+SWeYlk8HFgVc1vKE3ThXQt/3fxtNmP/cPU="; - }; - - hardcore-darkness = { - url = "https://www.curseforge.com/api/v1/mods/225957/files/2499443/download"; - hash = "sha256-+xORPolvnT+v7e+QrANfSt6dktjzPSzPwyxUh9VZ/fg="; - }; - - simple-login = { - url = "https://www.curseforge.com/api/v1/mods/312664/files/2996748/download"; - hash = "sha256-fYVxNfYLSt4hkA7qA5eFw0Zwnlxg1Tg/j4tHFKK3/Jg="; - }; -}