Skip to content

Instantly share code, notes, and snippets.

View towerofnix's full-sized avatar
🏳️‍⚧️
𝄞‍ — keeping busy's more fun in good company

(quasar) nebula towerofnix

🏳️‍⚧️
𝄞‍ — keeping busy's more fun in good company
View GitHub Profile

Everything just.. works, in Horizon. This entire list will probably be rather opinionated, and, as background, I've played very few games, so I probably won't have particularly good opinions either. But here they are:

  • The camera. It's so fluid! - At this point, the cameras in other games frustrate me, so maybe what I've found wrong with other games is more helpful. In other games, the camera is glued to the player. If your player moves left a foot, so does the camera, at the very same speed. Those games always keep the character in the absolute center of the screen. Worse, they often force the camera to sort of chase the player, making the camera always rotate towards the direction your character is facing. This is really, really disorienting - I'd expect it in a car racing game, but in one where I'm just trying to look around, maybe towards an enemy to my side or maybe to appreciate the scenery, automatically rotating the camera this way is a huge frustration. Sort of dizzying, especially on a b
@towerofnix
towerofnix / gogs-dark.css
Last active October 20, 2017 21:58
A simple and probably incomplete dark theme stylesheet for https://gogs.io sites
:root {
--fg-color: #EEE;
--bold-color: #FFF;
--attached-border-color: #2A2A2A;
--focus-color: #778;
}
body {
background-color: #222 !important;
color: var(--fg-color) !important;
@towerofnix
towerofnix / playlist.json
Created September 18, 2017 20:22
An example http-music playlist which starts "Chasing the void" from 1:30 minutes through.
{
"options": ["--converter", "ffmpeg"],
"items": [
{
"name": "Chasing the void",
"downloaderArg": "glitched puppet/glitch(ed)/17 Chasing the void.mp3",
"converterOptions": ["-i", "$in", "-ss", "00:01:30", "$out"]
}
]
}
@towerofnix
towerofnix / circle.json
Created July 27, 2017 03:04
Example http-music playlist, featuring "apply" — source album (name your price): https://c418.bandcamp.com/album/circle
{"apply": {"downloader": "youtube-dl"}, "items": [
{"name": "sleepless", "downloaderArg": "https://c418.bandcamp.com/track/sleepless"},
{"name": "deldee", "downloaderArg": "https://c418.bandcamp.com/track/deldee"},
{"name": "minimal", "downloaderArg": "https://c418.bandcamp.com/track/minimal"},
{"name": "love", "downloaderArg": "https://c418.bandcamp.com/track/love"},
{"name": "subtle cupcake rhythms", "downloaderArg": "https://c418.bandcamp.com/track/subtle-cupcake-rhythms"},
{"name": "depado", "downloaderArg": "https://c418.bandcamp.com/track/depado"}
]}
@towerofnix
towerofnix / init.mcfunction
Created June 9, 2017 12:56
A basic entity loop demo using Minecraft 1.12's new mcfunction code — see http://minecraft.gamepedia.com/Functions
# Basic loop demo.
# The very first thing we need to do is all of our target entities as
# uncounted. Note that the loop iteration code will remove this tag as it
# runs.
scoreboard players tag @e[type=zombie] add zombie_loop_not_counted
# Now we'll start the iteration loop, but only if there's at least one
# uncounted entity. There's no sense in iterating over an empty list!
function test:zombie_loop/loop if @e[tag=zombie_loop_not_counted]
@towerofnix
towerofnix / sploder-test.js
Last active May 7, 2017 01:11
Sticks an image onto a sploder creation.
const fetch = require('node-fetch')
const FormData = require('form-data')
const fixWS = require('fix-whitespace') // my cool library :SUNGLASSES:
const { Writable } = require('stream')
// const SPLODER = 'http://www.sploder.com'
// const SPHP = SPLODER + '/php'
// const SESSION_ID = 'IDK IF THIS IS IMPORTANT. IF THIS VARIABLE IS USED, STICK YOUR SESSION ID HERE.'
// const CONFIG = `?PHPSESSID=${SESSION_ID}&version=2`
@towerofnix
towerofnix / post.md
Created April 27, 2017 12:47
I will not be impressed if you steal this.

A command to remotely power a command block chain and wait for it to finish, in a single tick

Disclaimer: this suggestion is based around the updates recently made in the 1.12 snapshots that make command block loops and if/else-style conditionals possible. You'll probably want to know a bit about those updates to better understand this suggestion (the tl;dr is that you can now change the direction a chain is going while it's running, and you can run individual command blocks more than once in a single tick). Also, being a programmer would be useful, since I can't guarantee I'm very good at explaining things, especially without any Big and Programming Jargon words!

Essentially I'm suggesting a command – we'll call it /activate – that does the following:

  1. Activates an impulse command block at the given position. This impulse block would run immediately – as soon as the /activate command is executed.

  2. Waits for any chain blocks following that impulse block to be complete.

@towerofnix
towerofnix / loops.md
Created April 21, 2017 14:22
Minecraft 1.12 Loops

Minecraft 1.12 Loops

A single chain block cannot be run more than once per tick. But we want to run the chain block more than once per tick. The solution is to clone the chain block, in its original place, so that we really have a new chain block that we can use to run the same command again, all during the one tick.

The simplest example of this would be this:

After pressing the button, the lime (impulse) command block will run immediately. It acts as the signal for starting the loop; there doesn't actually need to be a command in it.

@towerofnix
towerofnix / sploder.txt
Created April 19, 2017 02:58
just making this file public so the work isn't necessarily lost to the void of an individual person's forgetfulness.
Level Format
Levels are made of objects. Object data is stored under <level>, as an array of
arrays. The top-level delimiter (between object arrays) is "|" (pipe symbol);
within object arrays, the delimiter is "," (comma). As an example:
3,150,30|1,0,0
..is equivalent to this array: