Skip to content

Instantly share code, notes, and snippets.

View perky's full-sized avatar

Luke perky

View GitHub Profile
@perky
perky / BindComponentAttribute.cs
Created April 16, 2019 12:31
A little script for Unity that helps binding references to other components in the scene.
using UnityEngine;
using System.Linq;
using System;
using System.Reflection;
public class BindComponent : PropertyAttribute
{
public enum FindMode
{
InSelf, // Find the component on the calling GameObject.
@perky
perky / mario_state_machine.zig
Last active November 13, 2024 10:25
Mario State Machine. Showcases the usefulness of switches and tagged unions in Zig.
//! ======
//! file: mario_state_machine.zig
//! This is an example of a Mario/Powerup state machine.
//! It showcases the usefulness of switches and tagged unions in Zig.
//! See state machine diagram:
//! https://external-preview.redd.it/TgwKB-bdEWJase06sIDXmVtaGaP7AZTD9YKn0x4yUWo.png?auto=webp&s=c0318b178038bd83212392c8fdd16e1a4b1a0049
//! ======
/// This is a tagged union.
/// See tagged union doc:
@perky
perky / anytype_antics.zig
Created April 29, 2023 19:34
Exploring different ways of using "anytype" in Zig for both static and runtime dispatch.
//! ==============
//! Anytype Antics.
//! ==============
const std = @import("std");
const debug = std.debug;
const builtin = std.builtin;
const trait = std.meta.trait;
fn print(string: []const u8) void { debug.print("{s}\n", .{string}); }
const DONT_COMPILE = false;
@perky
perky / day01.zig
Last active December 12, 2023 16:48
Advent of Code 2023
const std = @import("std");
const c = @cImport({
@cInclude("raylib.h");
});
const word_numbers = [_][]const u8{
"one",
"two",
"three",
"four",
@perky
perky / day03.zig
Last active December 14, 2023 15:31
Advent of Code 2023
const std = @import("std");
const LineParser = @import("LineParser.zig");
const fs = @import("fs.zig");
const raylib = @import("raylib.zig");
const c = raylib.c;
const Map = struct {
cells: CellArray,
symbol_indices: IndicesArray,
numbers: NumbersArray,