Skip to content

Instantly share code, notes, and snippets.

@Putnam3145
Putnam3145 / teleport.lua
Created October 31, 2013 02:58
Lets you teleport units; syntax is: number after unit is unit id, number after x,y,z is related position number, showunitid will show unit under cursor's ID, showpos will show position under cursor. Just a unit or just a position can be supplied; if either is the case, the cursor will be used to determine what the remaining variable is.
local function teleport(unit,pos)
local unitoccupancy = dfhack.maps.getTileBlock(unit.pos).occupancy[unit.pos.x%16][unit.pos.y%16]
unit.pos.x = pos.x
unit.pos.y = pos.y
unit.pos.z = pos.z
if not unit.flags1.on_ground then unitoccupancy.unit = false else unitoccupancy.unit_grounded = false end
end
local function getArgsTogether(args)
local settings={
local df_date={} --lol I really should put this in its own file
df_date.__eq=function(date1,date2)
return date1.year==date2.year and date1.year_tick==date2.year_tick
end
df_date.__lt=function(date1,date2)
if date1.year<date2.year then return true end
if date1.year>date2.year then return false end
if date1.year==date2.year then
@Putnam3145
Putnam3145 / SMHackin.lua
Last active February 6, 2017 21:07
A bunch of dumb BizHawk hacks I've made for Super Metroid.
autoShineActivated=false
autoFireActivated=false
autoDamageBoostActivated=false
assistantUI = forms.newform(200, 120, "SMAssist")
autoShineActivated = forms.checkbox(assistantUI,'Auto Shinespark Crouch',1,1)
autoFireActivated = nil --not in there yet
autoDamageBoostActivated = forms.checkbox(assistantUI,'Auto Damage Boost',1,23)
homingMissileActivated = forms.checkbox(assistantUI,'Homing Missile',1,45)
@Putnam3145
Putnam3145 / custom-artifact.lua
Last active December 11, 2017 20:37
Allows the addition of custom artifacts with arbitrary name, mat and type to the world in Dwarf Fortress.
-- Makes it so that the world will always have certain artifacts in certain sites when world loads.
--@ module = true
--Author Putnam
local usage = [===[
modtools/custom-artifact
=====================
This tool, when run, checks if the specific item has an artifact record somewhere in the world
and places the artifact at a valid site (which can be constrained by arguments) if it is not found.
@Putnam3145
Putnam3145 / SpawnUnitR3.lua
Created October 17, 2013 09:21 — forked from warmist/SpawnUnitR3.lua
Just in case I ever feel the need to modify it.
--create unit at pointer or given location. Usage e.g. "spawnunit DWARF 0 Dwarfy"
--Made by warmist, but edited by Putnam for the dragon ball mod to be used in reactions
--note that it's extensible to any autosyndrome reaction to spawn anything due to this; to use in autosyndrome, you want \COMMAND spawnunit CREATURE caste_number name \LOCATION
args={...}
function getCaste(race_id,caste_id)
local cr=df.creature_raw.find(race_id)
return cr.caste[caste_id]
@Putnam3145
Putnam3145 / wint.lua
Created December 9, 2018 09:00
i do not apologize for this, nor do i. fully expect it to work to be frank, but i had to get it off my chest
-- https://twitter.com/dril/status/235218148800991233
local eventful=require('plugins.eventful')
eventful.enableEvent(eventful.eventType.INVENTORY_CHANGE,5)
local function unitIsLesbian(unit)
if (unit and unit.status and unit.status.current_soul) then
local soul=unit.status.current_soul
local orientation=soul.personality.orientation_flags
@Putnam3145
Putnam3145 / life.d
Last active March 15, 2019 10:54
Generic programming lifelike cellular automata in D
private struct LifeLikeRule
{
ubyte notZero;
bool zero;
this(ushort initializer)
{
notZero=cast(ubyte)(initializer>>1);
zero=initializer&1;
}
pure ushort fullRule()
@Putnam3145
Putnam3145 / family.lua
Last active September 27, 2019 00:12
A family tree generator for Dwarf Fortress.
FamilyNode=defclass(FamilyNode)
FamilyNode.ATTRS {
histfig_id = DEFAULT_NIL,
mother = DEFAULT_NIL,
father = DEFAULT_NIL,
spouse = DEFAULT_NIL,
progenitor = false,
children = {}
}
@Putnam3145
Putnam3145 / sorting.d
Created June 7, 2020 20:39
Some programming junk food. Felt like implementing a parallel quicksort and was baffled at how fast it is.
import std.stdio;
import std.traits : isOrderingComparable;
import std.range;
import std.algorithm.sorting;
import std.algorithm.mutation;
@Putnam3145
Putnam3145 / Dialogue Box.tscn
Created July 28, 2020 05:49
A dialogue box for Godot.
[gd_scene load_steps=2 format=2]
[sub_resource type="GDScript" id=1]
script/source = "extends PopupPanel
\"\"\"
The run function expects an array, containing a series of strings or modifiers.
A string will be displayed one letter at a time, with the current delay,
using the current talk sound.