Skip to content
This repository was archived by the owner on Sep 16, 2023. It is now read-only.

Kade-github/Hex-The-Weekend-Update

Folders and files

NameName
Last commit message
Last commit date

Latest commit

cbea58f · Sep 16, 2023
Oct 30, 2021
Oct 30, 2021
Dec 31, 2021
Dec 31, 2021
Oct 30, 2021
Oct 24, 2021
Dec 31, 2021
Jan 1, 2022
Sep 10, 2021
Jul 26, 2021
May 11, 2021
Jun 12, 2021
Jul 11, 2021
May 18, 2021
Nov 16, 2020
Jan 9, 2022
Jan 1, 2022
Sep 14, 2021
Sep 14, 2021
Sep 14, 2021
Oct 10, 2020
Dec 31, 2021
Dec 31, 2021
Oct 24, 2021

Repository files navigation

HEX MOD

SHIT

I GET A CRASH RELATING TO CAMERAS???

thats cuz IM FUCKIN LAZY and I modified a source file on FLIXEL itself

Please replace #HaxeToolKitFolder#/haxe/lib/flixel/#flixelver#/flixel/graphics/tile/FlxDrawQuadsItem.hx

with

package flixel.graphics.tile;

#if FLX_DRAW_QUADS
import flixel.FlxCamera;
import flixel.graphics.frames.FlxFrame;
import flixel.graphics.tile.FlxDrawBaseItem.FlxDrawItemType;
import flixel.system.FlxAssets.FlxShader;
import flixel.math.FlxMatrix;
import openfl.geom.ColorTransform;
import openfl.display.ShaderParameter;
import openfl.Vector;

class FlxDrawQuadsItem extends FlxDrawBaseItem<FlxDrawQuadsItem> {
	static inline var VERTICES_PER_QUAD = #if (openfl >= "8.5.0") 4 #else 6 #end;

	public var shader:FlxShader;

	var rects:Vector<Float>;
	var transforms:Vector<Float>;
	var alphas:Array<Float>;
	var colorMultipliers:Array<Float>;
	var colorOffsets:Array<Float>;

	public function new() {
		super();
		type = FlxDrawItemType.TILES;
		rects = new Vector<Float>();
		transforms = new Vector<Float>();
		alphas = [];
	}

	override public function reset():Void {
		super.reset();
		rects.length = 0;
		transforms.length = 0;
		alphas.splice(0, alphas.length);
		if (colorMultipliers != null)
			colorMultipliers.splice(0, colorMultipliers.length);
		if (colorOffsets != null)
			colorOffsets.splice(0, colorOffsets.length);
	}

	override public function dispose():Void {
		super.dispose();
		rects = null;
		transforms = null;
		alphas = null;
		colorMultipliers = null;
		colorOffsets = null;
	}

	override public function addQuad(frame:FlxFrame, matrix:FlxMatrix, ?transform:ColorTransform):Void {
		var rect = frame.frame;
		rects.push(rect.x);
		rects.push(rect.y);
		rects.push(rect.width);
		rects.push(rect.height);

		transforms.push(matrix.a);
		transforms.push(matrix.b);
		transforms.push(matrix.c);
		transforms.push(matrix.d);
		transforms.push(matrix.tx);
		transforms.push(matrix.ty);

		for (i in 0...VERTICES_PER_QUAD)
			alphas.push(transform != null ? transform.alphaMultiplier : 1.0);

		if (colored || hasColorOffsets) {
			if (colorMultipliers == null)
				colorMultipliers = [];

			if (colorOffsets == null)
				colorOffsets = [];

			for (i in 0...VERTICES_PER_QUAD) {
				if (transform != null) {
					colorMultipliers.push(transform.redMultiplier);
					colorMultipliers.push(transform.greenMultiplier);
					colorMultipliers.push(transform.blueMultiplier);

					colorOffsets.push(transform.redOffset);
					colorOffsets.push(transform.greenOffset);
					colorOffsets.push(transform.blueOffset);
					colorOffsets.push(transform.alphaOffset);
				} else {
					colorMultipliers.push(1);
					colorMultipliers.push(1);
					colorMultipliers.push(1);

					colorOffsets.push(0);
					colorOffsets.push(0);
					colorOffsets.push(0);
					colorOffsets.push(0);
				}

				colorMultipliers.push(1);
			}
		}
	}

	#if !flash
	override public function render(camera:FlxCamera):Void {
		if (rects.length == 0)
			return;

		var shader = shader != null ? shader : graphics.shader;
		if (shader == null)
			return;
		var bitmap = graphics.bitmap;
		shader.bitmap.input = bitmap;
		shader.bitmap.filter = (camera.antialiasing || antialiasing) ? LINEAR : NEAREST;
		shader.alpha.value = alphas;

		if (colored || hasColorOffsets) {
			shader.colorMultiplier.value = colorMultipliers;
			shader.colorOffset.value = colorOffsets;
		}

		setParameterValue(shader.hasTransform, true);
		setParameterValue(shader.hasColorTransform, colored || hasColorOffsets);

		#if (openfl > "8.7.0")
		camera.canvas.graphics.overrideBlendMode(blend);
		#end
		camera.canvas.graphics.beginShaderFill(shader);
		camera.canvas.graphics.drawQuads(rects, null, transforms);
		super.render(camera);
	}

	inline function setParameterValue(parameter:ShaderParameter<Bool>, value:Bool):Void {
		if (parameter.value == null)
			parameter.value = [];
		parameter.value[0] = value;
	}
	#end
}
#end