Compare commits
1 Commits
master
...
v1.21.8-00
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ead63957c |
@@ -3,6 +3,7 @@ package org.walruslab.kepler;
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
|
||||
public class Kepler implements ModInitializer {
|
||||
public static final String MOD_ID = "kepler";
|
||||
|
||||
@Override
|
||||
public void onInitialize() {
|
||||
|
||||
@@ -2,15 +2,17 @@ package org.walruslab.kepler.client;
|
||||
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientEntityEvents;
|
||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import org.walruslab.kepler.render.TrajectoryRenderer;
|
||||
import org.walruslab.kepler.rhythm.hud.render.RhythmHudRenderer;
|
||||
import org.walruslab.kepler.trajectory.TrajectoryRenderer;
|
||||
|
||||
public class KeplerClient implements ClientModInitializer {
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
var renderer = new TrajectoryRenderer();
|
||||
// var hudRenderer = new RhythmHudRenderer();
|
||||
// hudRenderer.setupRenderer();
|
||||
ClientEntityEvents.ENTITY_LOAD.register((entity, _a) -> {
|
||||
if (entity instanceof PlayerEntity) renderer.setupRenderLine((PlayerEntity) entity);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package org.walruslab.kepler.rhythm.hud.model;
|
||||
|
||||
import org.joml.Vector3f;
|
||||
|
||||
public record RhythmHudNote(
|
||||
Vector3f color,
|
||||
float angle,
|
||||
float distance,
|
||||
float noteStart,
|
||||
float noteEnd
|
||||
) {
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package org.walruslab.kepler.rhythm.hud.render;
|
||||
|
||||
import com.mojang.blaze3d.pipeline.RenderPipeline;
|
||||
import net.minecraft.client.gl.RenderPipelines;
|
||||
import net.minecraft.client.gui.ScreenRect;
|
||||
import net.minecraft.client.gui.render.state.SimpleGuiElementRenderState;
|
||||
import net.minecraft.client.render.VertexConsumer;
|
||||
import net.minecraft.client.texture.TextureSetup;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.joml.Matrix3x2fStack;
|
||||
import org.joml.Vector2f;
|
||||
import org.joml.Vector4f;
|
||||
|
||||
public record GuiScreenQuad(ScreenRect scissorArea, Matrix3x2fStack pose, Vector2f v1, Vector2f v2, Vector2f v3, Vector2f v4, Vector4f color) implements SimpleGuiElementRenderState {
|
||||
@Override
|
||||
public void setupVertices(VertexConsumer vertices, float depth) {
|
||||
vertices.vertex(pose, v1.x, v1.y, depth).color(color.x, color.y, color.z, color.w);
|
||||
vertices.vertex(pose, v2.x, v2.y, depth).color(color.x, color.y, color.z, color.w);
|
||||
vertices.vertex(pose, v3.x, v3.y, depth).color(color.x, color.y, color.z, color.w);
|
||||
vertices.vertex(pose, v4.x, v4.y, depth).color(color.x, color.y, color.z, color.w);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderPipeline pipeline() {
|
||||
return RenderPipelines.GUI;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TextureSetup textureSetup() {
|
||||
return TextureSetup.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable ScreenRect bounds() {
|
||||
var minX = (int) Math.min(Math.min(v1.x, v2.x), Math.min(v3.x, v4.x));
|
||||
var maxX = (int) Math.max(Math.max(v1.x, v2.x), Math.max(v3.x, v4.x));
|
||||
|
||||
var minY = (int) Math.min(Math.min(v1.y, v2.y), Math.min(v3.y, v4.y));
|
||||
var maxY = (int) Math.max(Math.max(v1.y, v2.y), Math.max(v3.y, v4.y));
|
||||
|
||||
return new ScreenRect(minX, minY, maxX - minX, maxY - minY);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package org.walruslab.kepler.rhythm.hud.render;
|
||||
|
||||
import com.mojang.blaze3d.pipeline.RenderPipeline;
|
||||
import net.fabricmc.fabric.api.client.rendering.v1.hud.HudElementRegistry;
|
||||
import net.minecraft.client.gl.RenderPipelines;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.ScreenRect;
|
||||
import net.minecraft.client.gui.render.state.SimpleGuiElementRenderState;
|
||||
import net.minecraft.client.render.*;
|
||||
import net.minecraft.client.texture.TextureSetup;
|
||||
import net.minecraft.util.Identifier;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.walruslab.kepler.Kepler;
|
||||
import org.walruslab.kepler.rhythm.hud.model.RhythmHudNote;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RhythmHudRenderer {
|
||||
public void setupRenderer() {
|
||||
HudElementRegistry.addLast(Identifier.of(Kepler.MOD_ID, "minco_hud"), this::handleRenderCallback);
|
||||
}
|
||||
|
||||
private void handleRenderCallback(DrawContext drawContext, RenderTickCounter tickCounter) {
|
||||
System.out.println("asdf");
|
||||
var mats = drawContext.getMatrices();
|
||||
|
||||
drawContext.state.addSimpleElement(new SimpleGuiElementRenderState() {
|
||||
@Override
|
||||
public @Nullable ScreenRect bounds() {
|
||||
return new ScreenRect(10, 10, 50, 60);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setupVertices(VertexConsumer vertices, float depth) {
|
||||
vertices.vertex(mats, 20.0f, 10.0f, depth).color(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
vertices.vertex(mats, 10.0f, 20.0f, depth).color(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
vertices.vertex(mats, 20.0f, 30.0f, depth).color(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
vertices.vertex(mats, 30.0f, 20.0f, depth).color(1.0f, 1.0f, 1.0f, 0.5f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderPipeline pipeline() {
|
||||
return RenderPipelines.GUI;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TextureSetup textureSetup() {
|
||||
return TextureSetup.empty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable ScreenRect scissorArea() {
|
||||
return drawContext.scissorStack.peekLast();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void renderHud(List<RhythmHudNote> state) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,7 @@
|
||||
package org.walruslab.kepler.render;
|
||||
package org.walruslab.kepler.trajectory;
|
||||
|
||||
import net.minecraft.entity.projectile.ArrowEntity;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.walruslab.kepler.trajectory.Trajectory;
|
||||
import org.walruslab.kepler.trajectory.TrajectoryHit;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.walruslab.kepler.render;
|
||||
package org.walruslab.kepler.trajectory;
|
||||
|
||||
import com.mojang.blaze3d.opengl.GlStateManager;
|
||||
import com.mojang.blaze3d.vertex.VertexFormat;
|
||||
@@ -21,7 +21,6 @@ import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.util.math.Vec3i;
|
||||
import org.joml.Vector3f;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.walruslab.kepler.trajectory.TrajectoryHit;
|
||||
import org.walruslab.kepler.trajectory.item.ShootableItemFactory;
|
||||
|
||||
import java.util.List;
|
||||
Reference in New Issue
Block a user