Skip to content

Instantly share code, notes, and snippets.

Avatar
🍕
P I Z Z A

Jared Barboza codeimpossible

🍕
P I Z Z A
View GitHub Profile
@codeimpossible
codeimpossible / CollectionExtensions.cs
Created May 7, 2021
Sound Effect Scriptable Object
View CollectionExtensions.cs
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace NoirLib {
public static class CollectionExtensions {
private static readonly System.Random _rand = new System.Random();
public static T Random<T>(this T[] items) {
@codeimpossible
codeimpossible / LICENSE.md
Last active May 6, 2021
Tags, Layers and Scene Builder - Auto Generate Tags, Layers and Scenes classes containing consts for all variables for code completion
View LICENSE.md

MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS I
@codeimpossible
codeimpossible / AutohookAttribute.cs
Last active Oct 1, 2019 — forked from LotteMakesStuff/AutohookAttribute.cs
[Autohook] property drawer for unity - Add this [Autohook] attribute to a property to and the inspector will automagically hook up a valid reference for you if it can find a component attached to the same game object that matches the field you put it on. You can watch a demo of this in action here https://youtu.be/faVt09NGzws <3
View AutohookAttribute.cs
// NOTE DONT put in an editor folder!
using UnityEngine;
public enum AutohookSearchArea {
Self,
Parent,
Children
}
public class AutohookAttribute : PropertyAttribute
@codeimpossible
codeimpossible / CameraController2D.cs
Created Dec 6, 2017
Camera Controller for my 2D Game
View CameraController2D.cs
using UnityEngine;
public class CameraController2D : MonoBehaviour
{
public Transform ObjectToFollow;
public Camera CameraToMove;
public Vector2 CameraPositionOffset = Vector2.zero;
public Vector3 CameraTrackingBox = Vector3.one;
@codeimpossible
codeimpossible / PathController.cs
Created Nov 25, 2017
Really simple path follower script for unity
View PathController.cs
using UnityEngine;
public enum PathMovementStyle
{
Continuous,
Slerp,
Lerp,
}
public class PathController : MonoBehaviour
{
@codeimpossible
codeimpossible / GameManager.cs
Created Nov 22, 2017
Cross Platform GamePad Input for Unity
View GameManager.cs
using System;
using UnityEngine;
public class GameManager : MonoBehaviour {
public IInputSystem Input;
public static GameManager Instance;
void Awake() {
@codeimpossible
codeimpossible / README.md
Created Feb 2, 2017
Looping inside promises
View README.md

Promise Loops

I was building a CLI for GitHub code search which was using promises pretty heavily as the control flow of the application. It worked well enough in the beginning because the network library was promise based. However I wanted to add a feature where you could query the JSON returned by the GitHub API using json-query. This required that the user enter a REPL-type interaction, where they can enter a command and see the output, rinse and repeat until they have the data they want.

The problem is that all of the I/O in node is non-blocking. This means that all the libraries i looked at to capture user input from the command line were all either prommise based, or used node style method(data, callback) invocations. This ruled out my first option: using a while loop inside a promise to repeat the REPL until the user entered 'done'. If I did this I'd end up firing hundreds or thousands of calls to readline (the library I ended up using) to gather user i

@codeimpossible
codeimpossible / Program.cs
Last active Jan 9, 2017
Example of determining dependency injection based on interface attribute.
View Program.cs
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Collections;
using System.Reflection;
using System.Threading.Tasks;
namespace ConsoleApp1
{
View get-all-projects-with-nuget-package.ps1
# needs to be run in Package Manager Console
# i made this multiple lines for readability,
# you might need to compact it to one to run it
Get-Project -All | ForEach-Object {
Write-Host "";
Write-Host $_.ProjectName;
Write-Host "------------";
Get-Package -ProjectName $_.ProjectName -Filter <PACKAGE_NAME> | ForEach-Object {
Write-Host ($_.Id, $_.Version) -Separator " "
}
@codeimpossible
codeimpossible / 1-hoisting.js
Last active Aug 29, 2015
Variable hoisting
View 1-hoisting.js
var variable = "global";
function doSomething() {
console.log(variable);
var variable = 'local';
console.log(variable);
}
doSomething();