This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { type WritableStore, action, onNotify } from 'nanostores' | |
export function createHistory<Value>(store: WritableStore<Value>): { | |
clearHistory: () => void | |
redo: () => void | |
undo: () => void | |
} { | |
let historyIndex = -1 | |
let history: Value[] = [store.get()] | |
let isInternalChange = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import type { Store } from 'nanostores' | |
import { onMount } from 'nanostores' | |
export function createStoreFactory<Id, StoreType extends Store<unknown>>( | |
initializer: (id: Id) => StoreType, | |
equal?: (a: Id, b: Id) => boolean | |
) { | |
const stores = new Map<Id, StoreType>() | |
const storeGetter = equal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func get_all_files(path: String, file_ext := "", files := []): | |
var dir = Directory.new() | |
if dir.open(path) == OK: | |
dir.list_dir_begin(true, true) | |
var file_name = dir.get_next() | |
while file_name != "": | |
if dir.current_is_dir(): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Those snippets are in vec4 type but you can change to another types like: | |
// vec3, vec2, float, int .......... | |
vec4 when_eq(vec4 x, vec4 y) { | |
return 1.0 - abs(sign(x - y)); | |
} | |
vec4 when_neq(vec4 x, vec4 y) { | |
return abs(sign(x - y)); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Generates a unique string for use as ID(s). | |
* @summary Similar in concept to | |
* <http://wiki.ecmascript.org/doku.php?id=strawman:names>. | |
* | |
* The goals of this function are twofold: | |
* | |
* - Provide a way to generate a string guaranteed to be unique when compared | |
* to other strings generated by this function. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
shader_type spatial; | |
render_mode unshaded; | |
uniform sampler2D pattern_map: hint_albedo; | |
uniform vec2 uv_offset = vec2(0.5, 0.5); | |
uniform vec2 uv_tiling = vec2(1.0, 1.0); | |
float when_lt(float x, float y) { | |
return max(sign(y - x), 0.0); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import sys | |
def ensure_site_packages(packages): | |
""" `packages`: list of tuples (<import name>, <pip name>) """ | |
if not packages: | |
return | |
import site |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extends Node | |
## Based on https://github.com/Zylann/godot_debug_draw | |
## @brief Single-file autoload for debug drawing and printing. | |
## Draw and print on screen from anywhere in a single line of code. | |
# TODO: Thread-safety | |
# TODO: 2D functions | |
## @brief How many frames HUD text lines remain shown after being invoked. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class_name MathUtils | |
static func clamp_magnitude(vector, amount): | |
return vector if vector.length() < abs(amount) else vector.normalized() * amount | |
static func get_aabb_center(bounds: AABB) -> Vector3: | |
return bounds.position + bounds.size / 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class_name NodeUtils | |
static func get_children_of_type(node: Node, type) -> Array: | |
var ret: = [] | |
for child in node.get_children(): | |
if child is type: | |
ret.append(child) | |
if child.get_child_count() > 0: | |
ret += get_children_of_type(child, type) |
NewerOlder