Skip to content

Instantly share code, notes, and snippets.

View alcatrazEscapee's full-sized avatar
💭
This party never stops, time is dead and meaning has no meaning!

alcatrazEscapee

💭
This party never stops, time is dead and meaning has no meaning!
View GitHub Profile
@alcatrazEscapee
alcatrazEscapee / gradle.log
Created October 18, 2021 02:17
Output of `./gradlew eclipse -Dfg.debugRepo=true --stacktrace`
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.2/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build
> Configure project :
Using mappings: parchment / mappificator.v16-1.17.1
Parent: net.minecraftforge:forge:1.17.1-37.0.53:userdev
Parent: de.oceanlabs.mcp:mcp_config:1.17.1-20210706.113038@zip
MinecraftUserRepo Request: net.minecraft:client:1.17.1:null@pom
MCPRepo Request: net.minecraft:client:1.17.1:null@pom
MCPRepo Request: net.minecraft:client:1.17.1:@pom
> Configure project :
[MixinGradle] Skipping eclipse integration, extension not found
Using mappings: parchment / mappificator.v16-1.17.1
Setting up MCP environment
Initializing steps
Executing steps
> Running 'downloadManifest'
> Running 'downloadJson'
> Running 'downloadClient'
> Running 'downloadServer'
227c227
< "name": "source"
---
> "name": "channel"
267c267
< "name": "source"
---
> "name": "channel"
10684c10684
< "name": "matrixStack"
@alcatrazEscapee
alcatrazEscapee / shrimps_whip_up.py
Created August 10, 2021 23:57
A script to identify some weirdness in the blackstone data, thrown together from random bits from mappificator.
import json
BLACKSTONE_FILE = './build/blackstone-1.17.1.json'
def main():
blackstone = json.loads(load_text(BLACKSTONE_FILE))
weird = []
parse_blackstone(blackstone, weird)
for thing in weird:
@alcatrazEscapee
alcatrazEscapee / gradients.py
Created May 20, 2021 02:17
A script to create a smooth 2D gradient between a series of fixed points
# Requires the pillow module
from argparse import ArgumentParser
from PIL import Image
from typing import NamedTuple, Tuple, List
Point = NamedTuple('Point', x=int, y=int, r=int, g=int, b=int)
def main():
/*
* This code is licensed under CC0 1.0. Use it, do whatever you want with it!
*/
import java.util.List;
import java.util.function.Predicate;
public class PerfectMatchingWithEdmondsMatrix
{
/**
@alcatrazEscapee
alcatrazEscapee / NoiseCodecs.java
Created April 6, 2021 11:24
An example of a `Codec` structure for `INoise2D` from the TerraFirmaCraft 1.16 Mod
package net.dries007.tfc.world.noise;
import java.util.HashMap;
import java.util.Map;
import net.minecraft.util.ResourceLocation;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
public class NoiseCodecs
@alcatrazEscapee
alcatrazEscapee / Why Are Rivers So Complicated.md
Last active January 30, 2025 18:41
Why Are Rivers So Complicated?

Update

You can now read this document / article, at https://alcatrazescapee.com/rivers/. It will be updated further there. The original content is still here, below


Why Are Rivers So Complicated?

Let's narrow that down a bit. This document will try to explain some of the difficulties, limitations, and possible ways to generate rivers in Minecraft. There have been many papers, articles, and other medium which have generated realistic rivers to great success. So what makes Minecraft so much more difficult, or what makes these other methodologies so difficult? And what methods have found success?

@alcatrazEscapee
alcatrazEscapee / ForgeConfigExplainer.md
Created February 11, 2021 17:17
What the heck is up with configs in Forge >1.12 (for users)?

What the heck is up with configs in Forge >1.12?

In Forge versions > 1.12, there are multiple types of config files. Each of these have a specific purpose. So whenever you're looking for a config option, first make sure you're looking in the right file! So, what are the types?

  1. Server Configs
  • these are unique per world.
  • located in the world folder, e.g. .minecraft/saves/<world>/serverconfig/modid-server.toml
  • automatically synchronized from server -> client
  • can be overriden (i.e. for the purpose of not having to edit the config every time you create a world) by the defaultconfigs folder - any server configs found under .minecraft/defaultconfigs will be copied to any new worlds when created (overriding the mod defaults)
@alcatrazEscapee
alcatrazEscapee / IntArrayBuilder.java
Created January 3, 2021 00:21
To avoid writing the same switch based anon. class every single time.
package net.dries007.tfc.util;
import java.util.ArrayList;
import java.util.List;
import java.util.function.IntConsumer;
import java.util.function.IntSupplier;
import net.minecraft.util.IIntArray;
import net.minecraft.util.IntReferenceHolder;