Skip to content

Commit

Permalink
adjustable darksaber hue
Browse files Browse the repository at this point in the history
  • Loading branch information
parzivail committed Jan 17, 2023
1 parent 572c75e commit e6fdfab
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ private static void registerLightsabers()
new LightsaberDescriptor(Resources.id("bob"), "Jedi Bob", 0.33f, 1, 1, LightsaberBladeType.BRICK),
new LightsaberDescriptor(Resources.id("kestis"), "Cal Kestis", 0.73f, 1, 1, LightsaberBladeType.DEFAULT),
new LightsaberDescriptor(Resources.id("maul_half"), "Darth Maul", 0, 1, 1, LightsaberBladeType.DEFAULT),
new LightsaberDescriptor(Resources.id("darksaber"), null, 0, 0, 0, LightsaberBladeType.DARKSABER),
new LightsaberDescriptor(Resources.id("darksaber"), null, 0, 0, 1, LightsaberBladeType.DARKSABER),
new LightsaberDescriptor(Resources.id("vader"), "Darth Vader", 0, 1, 1, LightsaberBladeType.DEFAULT)
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class EnergyRenderer
public static final RenderLayer LAYER_ENERGY = RenderLayer.of("pswg:energy", VertexFormats.POSITION_COLOR, VertexFormat.DrawMode.QUADS, 256, false, true, RenderLayer.MultiPhaseParameters.builder().shader(RenderPhaseAccessor.get_LIGHTNING_SHADER()).transparency(RenderPhaseAccessor.get_TRANSLUCENT_TRANSPARENCY()).layering(RenderPhaseAccessor.get_VIEW_OFFSET_Z_LAYERING()).build(true));
private static final RenderLayer LAYER_ENERGY_ADDITIVE = RenderLayer.of("pswg:energy_add", VertexFormats.POSITION_COLOR, VertexFormat.DrawMode.QUADS, 256, false, true, RenderLayer.MultiPhaseParameters.builder().shader(RenderPhaseAccessor.get_LIGHTNING_SHADER()).transparency(RenderPhaseAccessor.get_LIGHTNING_TRANSPARENCY()).layering(RenderPhaseAccessor.get_VIEW_OFFSET_Z_LAYERING()).build(true));

public static void renderDarksaber(ModelTransformation.Mode renderMode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, float baseLength, float lengthCoefficient)
public static void renderDarksaber(ModelTransformation.Mode renderMode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, float baseLength, float lengthCoefficient, float glowHue, float glowSat, float glowVal)
{
VertexConsumer vc;

Expand All @@ -32,7 +32,7 @@ public static void renderDarksaber(ModelTransformation.Mode renderMode, MatrixSt
vc = vertexConsumers.getBuffer(LAYER_ENERGY);

VertexConsumerBuffer.Instance.init(vc, matrices.peek(), 1, 1, 1, 1, overlay, light);
renderDarksaberGlow(totalLength);
renderDarksaberGlow(totalLength, glowHue, glowSat, glowVal);
}

public static void renderBrick(ModelTransformation.Mode renderMode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, float baseLength, float lengthCoefficient, float glowHue, float glowSat, float glowVal)
Expand Down Expand Up @@ -256,7 +256,7 @@ public static void renderGlow(float bladeLength, float glowHue, float glowSat, f
}
}

public static void renderDarksaberGlow(float bladeLength)
public static void renderDarksaberGlow(float bladeLength, float glowHue, float glowSat, float glowVal)
{
if (bladeLength == 0)
return;
Expand Down Expand Up @@ -284,7 +284,12 @@ public static void renderDarksaberGlow(float bladeLength)

if (layer > 0)
{
VertexConsumerBuffer.Instance.setColor(0xFFFFFF, (int)(255 * alpha));
var color = ColorUtil.hsvToRgbInt(
getHue(glowHue, x),
getSaturation(x, glowSat),
getValue(x, glowVal)
);
VertexConsumerBuffer.Instance.setColor(color, (int)(255 * alpha));

// glow layers
RenderShapes.invertCull(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ public void renderDirect(ItemStack stack, ModelTransformation.Mode renderMode, M
private static void renderBlade(ModelTransformation.Mode renderMode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, LightsaberTag lt, boolean unstable, float lengthCoefficient, LightsaberBladeType bladeType, float length)
{
if (bladeType == LightsaberBladeType.DARKSABER)
EnergyRenderer.renderDarksaber(renderMode, matrices, vertexConsumers, light, overlay, 1.2f, lengthCoefficient);
EnergyRenderer.renderDarksaber(renderMode, matrices, vertexConsumers, light, overlay, 1.2f, lengthCoefficient, lt.bladeHue, lt.bladeSaturation, lt.bladeValue);
else if (bladeType == LightsaberBladeType.BRICK)
EnergyRenderer.renderBrick(renderMode, matrices, vertexConsumers, light, overlay, length, lengthCoefficient, lt.bladeHue, lt.bladeSaturation, lt.bladeValue);
else
Expand Down

0 comments on commit e6fdfab

Please sign in to comment.