Skip to content

Instantly share code, notes, and snippets.

View Wavesonics's full-sized avatar

Adam Brown Wavesonics

View GitHub Profile
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
unitTest {
java.srcDir file('src/test/java')
@Wavesonics
Wavesonics / IntentExtraString.kt
Created October 26, 2017 06:03
My extra injector (just for String type so far)
class IntentExtraString
{
operator fun getValue(activity: Activity, property: KProperty<*>): String =
activity.intent.getStringExtra(property.name)
operator fun setValue(activity: Activity, property: KProperty<*>, value: String)
{
activity.intent.putExtra(property.name, value)
}
}
@Wavesonics
Wavesonics / RouteHelper.kt
Created September 11, 2018 04:11
A very simple helper for reverse routes in templates
class RouteHelper(private val router: Router) : BasicValueHelper()
{
override fun execute(options: Options?)
{
options?.parameters?.get(0)?.let { routeName ->
val route = router.uriFor(routeName.toString(), mutableMapOf())
append(options, route)
}
}
}
@Wavesonics
Wavesonics / RouteHelper.kt
Created September 11, 2018 06:19
Route helper with params
class RouteHelper(private val router: Router) : BasicValueHelper()
{
override fun execute(options: Options?)
{
if( options != null )
{
val parameters = options.parameters
if( parameters != null && parameters.isNotEmpty() )
{
val routeName = parameters[0] as String
body:before {
background: url( {IMAGE} ) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
content: "";
display: block;
@Wavesonics
Wavesonics / Optimus.kt
Created October 24, 2018 01:44
Kotlin implementation of Optimus integer hashing algorithm https://github.com/jenssegers/optimus
class Optimus(private val prime: Int,
private val randomNumber: Int,
private val modInverse: Int = ModInverse(prime))
{
init
{
if (!isProbablyPrime(prime)) throw IllegalArgumentException("$prime is not a prime number")
}
fun encode(n: Int): Int = n * this.prime and MAX_INT xor this.randomNumber
@Wavesonics
Wavesonics / Movie.java
Created November 17, 2018 00:38
Best practices data class in Java
public class Movie {
private String name;
private String studio;
private float rating;
public Movie(String name, String studio, float rating) {
this.name = name;
this.studio = studio;
this.rating = rating;
@Wavesonics
Wavesonics / Movie.kt
Created November 17, 2018 00:39
Best practices data class in Kotlin
data class Movie(var name: String, var studio: String, var rating: Float)
@Wavesonics
Wavesonics / Argument.kt
Created December 13, 2018 20:00
Kotlin newInstance() Fragment pattern
/**
* Eases the Fragment.newInstance ceremony by marking the fragment's args with this delegate
* Just write the property in newInstance and read it like any other property after the fragment has been created
*
* Inspired by Adam Powell, he mentioned it during his IO/17 talk about Kotlin
*/
class Argument<T : Any> : kotlin.properties.ReadWriteProperty<Fragment, T>
{
var value: T? = null
####################
# Map_00.gd
####################
func _ready():
create_players(Network.players)
func create_players(players):
for player_id in players:
var player = players[player_id]
match player.type: