Skip to content

Instantly share code, notes, and snippets.

View DeerTears's full-sized avatar

Emberlynn Bland DeerTears

View GitHub Profile
[gd_scene load_steps=14 format=2]
[ext_resource path="res://icon.png" type="Texture" id=1]
[ext_resource path="res://systems/panels/PuzzlePanel.gd" type="Script" id=3]
[sub_resource type="CubeMesh" id=1]
size = Vector3( 50, 0.2, 50 )
[sub_resource type="ConcavePolygonShape" id=2]
data = PoolVector3Array( -25, 0.1, 25, 25, 0.1, 25, -25, -0.1, 25, 25, 0.1, 25, 25, -0.1, 25, -25, -0.1, 25, 25, 0.1, -25, -25, 0.1, -25, 25, -0.1, -25, -25, 0.1, -25, -25, -0.1, -25, 25, -0.1, -25, 25, 0.1, 25, 25, 0.1, -25, 25, -0.1, 25, 25, 0.1, -25, 25, -0.1, -25, 25, -0.1, 25, -25, 0.1, -25, -25, 0.1, 25, -25, -0.1, -25, -25, 0.1, 25, -25, -0.1, 25, -25, -0.1, -25, 25, 0.1, 25, -25, 0.1, 25, 25, 0.1, -25, -25, 0.1, 25, -25, 0.1, -25, 25, 0.1, -25, -25, -0.1, 25, 25, -0.1, 25, -25, -0.1, -25, 25, -0.1, 25, 25, -0.1, -25, -25, -0.1, -25 )
@DeerTears
DeerTears / puzzle_panel.gd
Created September 28, 2021 02:47
something witness-y but not really
extends Area
# Has a bunch of collisionshape children to check different squares against.
# Not the most optimized system since it's multiple objects vs contained in one plane.
# Z clipping in picking is also an issue
class_name PuzzlePanel
const HALF_PI := 1.570796
@DeerTears
DeerTears / dont_crash.md
Created September 15, 2021 02:36
this killed my site once lol

test wow test wow test wow test test wow test_test wow

@DeerTears
DeerTears / bouncing_vector3.gd
Created April 15, 2021 22:19
attempting to figure out a better way to bounce or debug my code since bouncing is too strong in godot's 3d for some reason?
var direction
func phys_process(delta):
if player_hit_wall:
if not just_bounced:
var wall_normal = $WallCast.get_collision_normal()
if wall_normal.length() != 0:
just_bounced = true
# bug: this code only shows intensity, not sign of the bounce
var bounce_phi = (direction.dot(wall_normal))
if bounce_phi > 0.75:
# https://docs.godotengine.org/en/stable/classes/class_@globalscope.html#enum-globalscope-propertyusageflags
PROPERTY_USAGE_GROUP = 128
#Used to group properties together in the editor.
PROPERTY_USAGE_CATEGORY = 256
# Used to categorize properties together in the editor.
PROPERTY_HINT_EXP_EASING = 4
# Hints that a float property should be edited via an exponential easing function. The hint string can include "attenuation" to flip the curve horizontally and/or "inout" to also include in/out easing.
#godot printout of slidermargin.gd. extends container.
{class_name:, hint:0, hint_string:, name:Node, type:0, usage:256},
{class_name:, hint:18, hint_string:, name:editor_description, type:4, usage:1048578},
{class_name:, hint:0, hint_string:, name:_import_path, type:15, usage:1048581},
{class_name:, hint:0, hint_string:pause_, name:Pause, type:0, usage:128},
{class_name:, hint:3, hint_string:Inherit,Stop,Process, name:pause_mode, type:2, usage:7},
{class_name:, hint:0, hint_string:, name:name, type:4, usage:0},
{class_name:, hint:0, hint_string:, name:filename, type:4, usage:0},
{class_name:Node, hint:17, hint_string:Node, name:owner, type:17, usage:0},
@DeerTears
DeerTears / maybe update editor properties.gd
Created January 11, 2021 04:52
figuring out how to actually update the editor properties in real time when changed by another property. animated sliders in tool scripts, if you will.
# https://docs.godotengine.org/en/stable/classes/class_object.html#method-descriptions
property_list_changed_notify()
# Notify the editor that the property list has changed, so that editor plugins can take the new values into account. Does nothing on export builds.
# might not do what i want

My changelog:

As I write this, I realize how simple the other documentation is compared to the music page. It's not a problem, it's just...interesting.

Renamed "Important Limitations" to "GBT Player's Channel Limitations"

Reordered Effects to be in order of "Note Effects" followed by "Command Effects"

Going off of how rulz explained these effects, I added this distinction to describe the sole rule that Channel 3 has about its effect limits. Previously we thought that Channel 3 was incapable of any effects other than 0xy, E8x, ECx and Cxx. The previous documentation even forgot to include that Channel 3 can use effect Cxx.