Skip to content

Instantly share code, notes, and snippets.

@hnOsmium0001
hnOsmium0001 / exttest.js
Created October 27, 2018 18:51
Scratch 3 Extension - test #1
(function(ext) {
function isUndefined(v) {
return typeof v === 'undefined';
}
function originalOrEmptyStr(v) {
return isUndefined(v) ? '' : v;
}
ext._shutdown = function() {};
@hnOsmium0001
hnOsmium0001 / ReflectionUtils.java
Created November 11, 2018 05:09
Reflection utils for Java
import javax.annotation.Nonnull;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
public class ReflectionUtils {
@hnOsmium0001
hnOsmium0001 / ExtendedAABB.java
Last active July 11, 2023 16:39
Extension to AxisAlignedBB, adding functions such as rotation
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis;
import net.minecraft.util.Direction.AxisDirection;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3i;
import javax.vecmath.Matrix4d;
@hnOsmium0001
hnOsmium0001 / BackgroundRenderer.java
Last active June 16, 2019 02:47
Vanilla-styled GUI background drawing, with any size
import com.google.common.base.Preconditions;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.lwjgl.opengl.GL11;
@hnOsmium0001
hnOsmium0001 / BlockBuilder.java
Last active June 12, 2019 07:06
Syntax sugar for creating block for Minecraft 1.13+
import com.google.common.base.Preconditions;
import com.mojang.datafixers.types.Type;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
@hnOsmium0001
hnOsmium0001 / RelativeDirection.java
Last active June 14, 2019 21:16
Finding relative direction between two BlockPos, assuming they are neighbors
// Inlined because apparently applications of pure function with constants are not considered constants
private static final int DOWN_BITS = 0b010100; // calculateDirectionBits(0, -1, 0)
private static final int UP_BITS = 0b010110; // calculateDirectionBits(0, 1, 0)
private static final int NORTH_BITS = 0b010001; // calculateDirectionBits(0, 0, -1)
private static final int SOUTH_BITS = 0b011001; // calculateDirectionBits(0, 0, 1)
private static final int WEST_BITS = 0b000101; // calculateDirectionBits(-1, 0, 0)
private static final int EAST_BITS = 0b100101; // calculateDirectionBits(1, 0, 0)
private static int calculateDirectionBits(int dx, int dy, int dz) {
// Add 1 to make all offsets positive to avoid dealing with complement bits
package vswe.stevesfactory.library.gui.widget;
import com.google.errorprone.annotations.CanIgnoreReturnValue;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.client.renderer.GLAllocation;
import org.apache.commons.lang3.tuple.Pair;
import org.lwjgl.opengl.GL11;
import vswe.stevesfactory.library.gui.debug.RenderEventDispatcher;
import vswe.stevesfactory.library.gui.widget.mixin.*;
import vswe.stevesfactory.utils.RenderingHelper;
@hnOsmium0001
hnOsmium0001 / IItemFilter.java
Created August 6, 2019 21:58
Item filtering logic
import net.minecraft.item.ItemStack;
@FunctionalInterface
public interface IItemFilter {
boolean isValid(ItemStack stack);
}
@hnOsmium0001
hnOsmium0001 / BackgroundRenderers.java
Created October 14, 2019 22:30
Vanilla panel at any size
package powerlessri.harmonics.gui.screen;
import com.google.common.base.Preconditions;
import com.mojang.blaze3d.platform.GlStateManager;
import net.minecraft.util.ResourceLocation;
import powerlessri.harmonics.HarmonicsCore;
import powerlessri.harmonics.gui.ITexture;
import powerlessri.harmonics.gui.Texture;
import static powerlessri.harmonics.gui.Render2D.*;
@hnOsmium0001
hnOsmium0001 / blueprint_book.txt
Created May 2, 2020 19:47
Factorio 600 SPM Assemblies (beaconed, belt-only)
0eNrUvc1uY0eyLfwqRo2bRkb+p3EnfSd31EDj9uiiYRgsFW0TrZIEinIffwf17h+pEqldVbm511op2n0mp49VUmTsyIj8iVyx4r/fvb992jzstnf7n97f3//r3Q///fqTx3c//HPyn8d/297c333+8eP2l7v17fFn+98fNu9+eLfdbz6++8u7u/XH43+936wPv/ru01/ebe8+bP7r3Q/26S+Lf7R+fNx8fH+7vftl9XF98+v2brMKExEeEfG0v/+43m/v71aPN9vN3c1m9bC++ddESvj041/ebe722/128/lTnv/j95/unj6+3+wOmp6FHT92v77br27uP77f3q3397vDSA/3j9vjAEcdDvJWh9///fg/+TDG4S/2u/vbn95vfl3/tj38+uF3ft7e7jc7yGrb3UHvh9v1fvPuWdjT0eo2seGPn442+Ephzykc3k7fm/uHh82O1zicJWz+62G3eXxc7Xfru8eH+91+9X5zu79g5XgY5sN2t7n5/I+xIz3S0gMuPNHC3Ytw/6Vw3xGedbsA0osuPSwbpn4j/engA7tfdgef+LBg96+UP0zgyd3uHp727zqjNXmOgU8x9/U69q1l0os4d1xZDkHxePyHx4fN5sPq4/2Hp9vj0nWYhZ701wXm4+bD9unjanN70Ga3vVk93N9uOmOdVLeuOC8Y/izS0Za31+A9rDU3/1pt7x43u8OK0RnF90fpOadFWKy7aI6Eq2cXBeXL+9KcWu3wrYcv3T6cF/RfNuvd6t+/bja37ya+8rA7uMnBIL8dBp24TOzqUhYdcsAfK+zthRfOB+rJa+pyoHrHSw9d6T2X9CZLb4Duno6jBugcyMXlLLonLKJuxzuGT7JjFMC4WZaev5See9LLwJJb5lbc+6f9zJLrq+yIGbBV0xa6PF3o5s7d4oIXXgP75/Xj/kJs4LMW7EuZ8PEk03tk8PCSGunICfwGHAHrRFpqAqQm2XOBs3jIsvQESC9aXIRrxkWFZ6k/Sb09IzRWaFwWGp1+H4h0wEX