rename group-id and artifact-id, fix recording points render
This commit is contained in:
parent
8242b2c601
commit
45998bbe2e
@ -14,5 +14,5 @@ fabric_version=0.102.0+1.21
|
||||
|
||||
# Mod Properties
|
||||
mod_version = 1.1.2+1.21
|
||||
maven_group = themixray.repeating.mod
|
||||
maven_group = ru.themixray
|
||||
archives_base_name = repeating-mod
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod;
|
||||
package ru.themixray.repeating_mod;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod;
|
||||
package ru.themixray.repeating_mod;
|
||||
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
||||
@ -15,13 +15,13 @@ import net.minecraft.util.math.Vec3d;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import themixray.repeating.mod.event.events.DelayEvent;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import themixray.repeating.mod.event.events.InputEvent;
|
||||
import themixray.repeating.mod.event.events.MoveEvent;
|
||||
import themixray.repeating.mod.render.RenderHelper;
|
||||
import themixray.repeating.mod.render.RenderSystem;
|
||||
import themixray.repeating.mod.render.buffer.WorldBuffer;
|
||||
import ru.themixray.repeating_mod.event.events.DelayEvent;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.event.events.InputEvent;
|
||||
import ru.themixray.repeating_mod.event.events.MoveEvent;
|
||||
import ru.themixray.repeating_mod.render.RenderHelper;
|
||||
import ru.themixray.repeating_mod.render.RenderSystem;
|
||||
import ru.themixray.repeating_mod.render.buffer.WorldBuffer;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
@ -35,21 +35,21 @@ public class Main implements ClientModInitializer {
|
||||
public static final FabricLoader loader = FabricLoader.getInstance();
|
||||
public static Main me;
|
||||
|
||||
public RecordList record_list;
|
||||
public RecordState now_record;
|
||||
public ru.themixray.repeating_mod.RecordList record_list;
|
||||
public ru.themixray.repeating_mod.RecordState now_record;
|
||||
|
||||
public boolean is_recording = false;
|
||||
public long last_record = -1;
|
||||
public TickTask move_tick = null;
|
||||
public ru.themixray.repeating_mod.TickTask move_tick = null;
|
||||
|
||||
public TickTask replay_tick = null;
|
||||
public ru.themixray.repeating_mod.TickTask replay_tick = null;
|
||||
public boolean is_replaying = false;
|
||||
public boolean loop_replay = false;
|
||||
public static InputEvent input_replay = null;
|
||||
|
||||
public long living_ticks = 0;
|
||||
|
||||
public static RepeatingScreen menu;
|
||||
public static ru.themixray.repeating_mod.RepeatingScreen menu;
|
||||
private static KeyBinding menu_key;
|
||||
private static KeyBinding toggle_replay_key;
|
||||
private static KeyBinding toggle_record_key;
|
||||
@ -58,7 +58,7 @@ public class Main implements ClientModInitializer {
|
||||
|
||||
public static Random rand = new Random();
|
||||
|
||||
public EasyConfig conf;
|
||||
public ru.themixray.repeating_mod.EasyConfig conf;
|
||||
public File records_folder;
|
||||
|
||||
@Override
|
||||
@ -71,11 +71,11 @@ public class Main implements ClientModInitializer {
|
||||
records_folder = new File(FabricLoader.getInstance().getGameDir().toFile(),"repeating_mod_records");
|
||||
if (!records_folder.exists()) records_folder.mkdir();
|
||||
|
||||
record_list = new RecordList(records_folder);
|
||||
record_list = new ru.themixray.repeating_mod.RecordList(records_folder);
|
||||
record_list.loadRecords();
|
||||
|
||||
RenderSystem.init();
|
||||
WorldRenderEvents.LAST.register(context -> {
|
||||
WorldRenderEvents.AFTER_ENTITIES.register(context -> {
|
||||
WorldBuffer buffer = RenderHelper.startTri(context);
|
||||
if (now_record != null) {
|
||||
Vec3d start_pos = now_record.getStartRecordPos();
|
||||
@ -88,13 +88,13 @@ public class Main implements ClientModInitializer {
|
||||
});
|
||||
|
||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||
TickTask.tickTasks(TickTask.TickAt.CLIENT_EVENT);
|
||||
ru.themixray.repeating_mod.TickTask.tickTasks(ru.themixray.repeating_mod.TickTask.TickAt.CLIENT_EVENT);
|
||||
});
|
||||
|
||||
Map<String,String> def = new HashMap<>();
|
||||
def.put("record_pos_delay", String.valueOf(record_pos_delay));
|
||||
|
||||
conf = new EasyConfig(loader.getConfigDir(),"repeating-mod",def);
|
||||
conf = new ru.themixray.repeating_mod.EasyConfig(loader.getConfigDir(),"repeating-mod",def);
|
||||
|
||||
record_pos_delay = Long.parseLong(conf.data.get("record_pos_delay"));
|
||||
|
||||
@ -108,7 +108,7 @@ public class Main implements ClientModInitializer {
|
||||
"key.repeating-mod.toggle_record",InputUtil.Type.KEYSYM,
|
||||
-1,"text.repeating-mod.name"));
|
||||
|
||||
menu = new RepeatingScreen();
|
||||
menu = new ru.themixray.repeating_mod.RepeatingScreen();
|
||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||
if (menu_key.wasPressed())
|
||||
client.setScreen(menu);
|
||||
@ -132,7 +132,7 @@ public class Main implements ClientModInitializer {
|
||||
}
|
||||
});
|
||||
|
||||
new TickTask(0,0) {
|
||||
new ru.themixray.repeating_mod.TickTask(0,0) {
|
||||
@Override
|
||||
public void run() {
|
||||
living_ticks++;
|
||||
@ -142,7 +142,7 @@ public class Main implements ClientModInitializer {
|
||||
System.setProperty("java.awt.headless", "false");
|
||||
}
|
||||
|
||||
public void setNowRecord(RecordState record) {
|
||||
public void setNowRecord(ru.themixray.repeating_mod.RecordState record) {
|
||||
now_record = record;
|
||||
}
|
||||
|
||||
@ -177,7 +177,7 @@ public class Main implements ClientModInitializer {
|
||||
now_record.setStartRecordPos(start_pos);
|
||||
|
||||
if (record_pos_delay > 0) {
|
||||
move_tick = new TickTask(
|
||||
move_tick = new ru.themixray.repeating_mod.TickTask(
|
||||
record_pos_delay,
|
||||
record_pos_delay) {
|
||||
@Override
|
||||
@ -277,7 +277,7 @@ public class Main implements ClientModInitializer {
|
||||
|
||||
List<RecordEvent> events = now_record.getEvents();
|
||||
|
||||
replay_tick = new TickTask(0,0, TickTask.TickAt.CLIENT_EVENT) {
|
||||
replay_tick = new ru.themixray.repeating_mod.TickTask(0,0, ru.themixray.repeating_mod.TickTask.TickAt.CLIENT_EVENT) {
|
||||
public int replay_index = 0;
|
||||
|
||||
@Override
|
@ -1,12 +1,9 @@
|
||||
package themixray.repeating.mod;
|
||||
package ru.themixray.repeating_mod;
|
||||
|
||||
import net.minecraft.text.Text;
|
||||
import themixray.repeating.mod.widget.RecordListWidget;
|
||||
import ru.themixray.repeating_mod.widget.RecordListWidget;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
public class RecordList {
|
@ -1,10 +1,9 @@
|
||||
package themixray.repeating.mod;
|
||||
package ru.themixray.repeating_mod;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod;
|
||||
package ru.themixray.repeating_mod;
|
||||
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod;
|
||||
package ru.themixray.repeating_mod;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
@ -11,7 +11,7 @@ import net.minecraft.client.gui.tooltip.Tooltip;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.client.gui.widget.SliderWidget;
|
||||
import net.minecraft.text.Text;
|
||||
import themixray.repeating.mod.widget.RecordListWidget;
|
||||
import ru.themixray.repeating_mod.widget.RecordListWidget;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
@ -20,7 +20,7 @@ import java.util.List;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class RepeatingScreen extends Screen {
|
||||
private static List<RenderListener> render_listeners = new ArrayList<>();
|
||||
private static List<ru.themixray.repeating_mod.RenderListener> render_listeners = new ArrayList<>();
|
||||
|
||||
public ButtonWidget record_btn;
|
||||
public ButtonWidget loop_btn;
|
||||
@ -34,18 +34,18 @@ public class RepeatingScreen extends Screen {
|
||||
super(Text.empty());
|
||||
}
|
||||
|
||||
public static void addRenderListener(RenderListener render) {
|
||||
public static void addRenderListener(ru.themixray.repeating_mod.RenderListener render) {
|
||||
render_listeners.add(render);
|
||||
}
|
||||
|
||||
public static void removeRenderListener(RenderListener render) {
|
||||
public static void removeRenderListener(ru.themixray.repeating_mod.RenderListener render) {
|
||||
render_listeners.remove(render);
|
||||
}
|
||||
|
||||
public void updateButtons() {
|
||||
if (was_build) {
|
||||
record_btn.setMessage(Text.translatable("text.repeating-mod." + ((Main.me.is_recording) ? "stop_record" : "start_record")));
|
||||
loop_btn.setMessage(Text.translatable("text.repeating-mod." + ((Main.me.loop_replay) ? "off_loop" : "on_loop")));
|
||||
record_btn.setMessage(Text.translatable("text.repeating-mod." + ((ru.themixray.repeating_mod.Main.me.is_recording) ? "stop_record" : "start_record")));
|
||||
loop_btn.setMessage(Text.translatable("text.repeating-mod." + ((ru.themixray.repeating_mod.Main.me.loop_replay) ? "off_loop" : "on_loop")));
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ public class RepeatingScreen extends Screen {
|
||||
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
|
||||
renderBackground(context, mouseX, mouseY, delta);
|
||||
|
||||
for (RenderListener l : render_listeners) {
|
||||
for (ru.themixray.repeating_mod.RenderListener l : render_listeners) {
|
||||
if (l.beforeRender()) {
|
||||
l.render(context, mouseX, mouseY, delta);
|
||||
}
|
||||
@ -61,7 +61,7 @@ public class RepeatingScreen extends Screen {
|
||||
|
||||
super.render(context, mouseX, mouseY, delta);
|
||||
|
||||
for (RenderListener l : render_listeners) {
|
||||
for (ru.themixray.repeating_mod.RenderListener l : render_listeners) {
|
||||
if (!l.beforeRender()) {
|
||||
l.render(context, mouseX, mouseY, delta);
|
||||
}
|
||||
@ -70,7 +70,7 @@ public class RepeatingScreen extends Screen {
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
RecordListWidget list_widget = Main.me.record_list.getWidget();
|
||||
RecordListWidget list_widget = ru.themixray.repeating_mod.Main.me.record_list.getWidget();
|
||||
|
||||
list_widget.setX(width / 2 + 2);
|
||||
list_widget.setY(height / 2 - list_widget.getHeight() / 2);
|
||||
@ -79,10 +79,10 @@ public class RepeatingScreen extends Screen {
|
||||
|
||||
record_btn = ButtonWidget.builder(
|
||||
Text.translatable("text.repeating-mod.start_record"), button -> {
|
||||
if (!Main.me.is_replaying) {
|
||||
if (Main.me.is_recording)
|
||||
Main.me.stopRecording();
|
||||
else Main.me.startRecording();
|
||||
if (!ru.themixray.repeating_mod.Main.me.is_replaying) {
|
||||
if (ru.themixray.repeating_mod.Main.me.is_recording)
|
||||
ru.themixray.repeating_mod.Main.me.stopRecording();
|
||||
else ru.themixray.repeating_mod.Main.me.startRecording();
|
||||
updateButtons();
|
||||
}
|
||||
})
|
||||
@ -91,7 +91,7 @@ public class RepeatingScreen extends Screen {
|
||||
.build();
|
||||
|
||||
loop_btn = ButtonWidget.builder(Text.empty(), button -> {
|
||||
Main.me.loop_replay = !Main.me.loop_replay;
|
||||
ru.themixray.repeating_mod.Main.me.loop_replay = !ru.themixray.repeating_mod.Main.me.loop_replay;
|
||||
updateButtons();
|
||||
})
|
||||
.dimensions(width / 2 - 120, height / 2 - 10, 120, 20)
|
||||
@ -100,9 +100,9 @@ public class RepeatingScreen extends Screen {
|
||||
|
||||
pos_delay_slider = new SliderWidget(
|
||||
width / 2 - 120, height / 2 + 12, 120, 20,
|
||||
(Main.me.record_pos_delay < 0) ? Text.translatable("text.repeating-mod.nan_pos_delay") :
|
||||
Text.translatable("text.repeating-mod.pos_delay", String.valueOf(Main.me.record_pos_delay)),
|
||||
(Main.me.record_pos_delay+1d)/101d) {
|
||||
(ru.themixray.repeating_mod.Main.me.record_pos_delay < 0) ? Text.translatable("text.repeating-mod.nan_pos_delay") :
|
||||
Text.translatable("text.repeating-mod.pos_delay", String.valueOf(ru.themixray.repeating_mod.Main.me.record_pos_delay)),
|
||||
(ru.themixray.repeating_mod.Main.me.record_pos_delay+1d)/101d) {
|
||||
|
||||
@Override
|
||||
protected void updateMessage() {
|
||||
@ -116,9 +116,9 @@ public class RepeatingScreen extends Screen {
|
||||
double v = value*101d-1d;
|
||||
if (v <= 1) setMessage(Text.translatable("text.repeating-mod.nan_pos_delay"));
|
||||
else setMessage(Text.translatable("text.repeating-mod.pos_delay", String.valueOf((long) v)));
|
||||
Main.me.record_pos_delay = (long) v;
|
||||
Main.me.conf.data.put("record_pos_delay",String.valueOf(Main.me.record_pos_delay));
|
||||
Main.me.conf.save();
|
||||
ru.themixray.repeating_mod.Main.me.record_pos_delay = (long) v;
|
||||
ru.themixray.repeating_mod.Main.me.conf.data.put("record_pos_delay",String.valueOf(ru.themixray.repeating_mod.Main.me.record_pos_delay));
|
||||
ru.themixray.repeating_mod.Main.me.conf.save();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -148,7 +148,7 @@ public class RepeatingScreen extends Screen {
|
||||
if (files != null) {
|
||||
for (File file : files) {
|
||||
try {
|
||||
Main.me.setNowRecord(Main.me.record_list.cloneRecord(file));
|
||||
ru.themixray.repeating_mod.Main.me.setNowRecord(ru.themixray.repeating_mod.Main.me.record_list.cloneRecord(file));
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod;
|
||||
package ru.themixray.repeating_mod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
@ -1,6 +1,6 @@
|
||||
package themixray.repeating.mod.event;
|
||||
package ru.themixray.repeating_mod.event;
|
||||
|
||||
import themixray.repeating.mod.event.events.*;
|
||||
import ru.themixray.repeating_mod.event.events.*;
|
||||
|
||||
public abstract class RecordEvent {
|
||||
public abstract void replay();
|
@ -1,6 +1,6 @@
|
||||
package themixray.repeating.mod.event;
|
||||
package ru.themixray.repeating_mod.event;
|
||||
|
||||
import themixray.repeating.mod.event.events.*;
|
||||
import ru.themixray.repeating_mod.event.events.*;
|
||||
|
||||
public enum RecordEventType {
|
||||
BLOCK_BREAK('b',"block_break",BlockBreakEvent.class),
|
@ -1,8 +1,8 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class BlockBreakEvent extends RecordEvent {
|
||||
public BlockPos pos;
|
@ -1,12 +1,12 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.hit.BlockHitResult;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class BlockInteractEvent extends RecordEvent {
|
||||
public Hand hand;
|
@ -1,6 +1,6 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class DelayEvent extends RecordEvent {
|
||||
public long delay;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiCharTypeEvent extends RecordEvent {
|
||||
private char chr;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiCloseEvent extends RecordEvent {
|
||||
public GuiCloseEvent() {}
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiKeyPressEvent extends RecordEvent {
|
||||
private int keyCode;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiKeyReleaseEvent extends RecordEvent {
|
||||
private int keyCode;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiMouseClickEvent extends RecordEvent {
|
||||
private double mouseX;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiMouseDragEvent extends RecordEvent {
|
||||
private double mouseX;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiMouseMoveEvent extends RecordEvent {
|
||||
private double mouseX;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiMouseReleaseEvent extends RecordEvent {
|
||||
private double mouseX;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class GuiMouseScrollEvent extends RecordEvent {
|
||||
private double mouseX;
|
@ -1,7 +1,7 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class InputEvent extends RecordEvent {
|
||||
public Boolean sneaking;
|
@ -1,9 +1,9 @@
|
||||
package themixray.repeating.mod.event.events;
|
||||
package ru.themixray.repeating_mod.event.events;
|
||||
|
||||
import net.minecraft.entity.MovementType;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.RecordEvent;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.RecordEvent;
|
||||
|
||||
public class MoveEvent extends RecordEvent {
|
||||
public Vec3d vec;
|
@ -1,12 +1,12 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.TickTask;
|
||||
|
||||
@Mixin(MinecraftClient.class)
|
||||
public abstract class ClientMixin {
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
@ -6,7 +6,7 @@ import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.Main;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
|
||||
import java.util.UUID;
|
||||
|
@ -1,11 +1,11 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.minecraft.client.input.KeyboardInput;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.Main;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
|
||||
@Mixin(KeyboardInput.class)
|
||||
public abstract class InputMixin {
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
|
||||
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
|
||||
@ -9,10 +9,10 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.event.events.BlockBreakEvent;
|
||||
import themixray.repeating.mod.event.events.BlockInteractEvent;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.events.BlockBreakEvent;
|
||||
import ru.themixray.repeating_mod.event.events.BlockInteractEvent;
|
||||
import ru.themixray.repeating_mod.TickTask;
|
||||
|
||||
@Mixin(ClientPlayerEntity.class)
|
||||
public abstract class MovementMixin {
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.minecraft.client.network.ClientPlayNetworkHandler;
|
||||
import net.minecraft.network.listener.ServerPlayPacketListener;
|
@ -1,18 +1,12 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientEntityEvents;
|
||||
import net.minecraft.client.network.ClientPlayerEntity;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.network.ClientConnection;
|
||||
import net.minecraft.text.Text;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.Main;
|
||||
|
||||
import java.util.UUID;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
|
||||
@Mixin(ClientConnection.class)
|
||||
public abstract class PlayerMixin {
|
@ -1,11 +1,11 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.minecraft.client.render.*;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
import ru.themixray.repeating_mod.TickTask;
|
||||
|
||||
@Mixin(GameRenderer.class)
|
||||
public abstract class RendererMixin {
|
@ -1,20 +1,15 @@
|
||||
package themixray.repeating.mod.mixin;
|
||||
package ru.themixray.repeating_mod.mixin;
|
||||
|
||||
import net.minecraft.client.gui.AbstractParentElement;
|
||||
import net.minecraft.client.gui.Drawable;
|
||||
import net.minecraft.client.gui.Element;
|
||||
import net.minecraft.client.gui.ParentElement;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.render.GameRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.TickTask;
|
||||
import themixray.repeating.mod.event.events.*;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.event.events.*;
|
||||
|
||||
@Mixin(Screen.class)
|
||||
public abstract class ScreenMixin extends AbstractParentElement implements Drawable {
|
@ -1,10 +1,10 @@
|
||||
package themixray.repeating.mod.render;
|
||||
package ru.themixray.repeating_mod.render;
|
||||
|
||||
import lombok.experimental.UtilityClass;
|
||||
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import themixray.repeating.mod.render.buffer.WorldBuffer;
|
||||
import themixray.repeating.mod.render.shader.ShaderManager;
|
||||
import org.joml.Vector3f;
|
||||
import ru.themixray.repeating_mod.render.buffer.WorldBuffer;
|
||||
import ru.themixray.repeating_mod.render.shader.ShaderManager;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
@ -27,8 +27,8 @@ public class RenderHelper {
|
||||
}
|
||||
|
||||
public void drawLine(WorldBuffer buffer, float x1, float y1, float z1, float x2, float y2, float z2, Color color) {
|
||||
buffer.vert(x1, y1, z1, color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(x2, y2, z2, color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(new Vector3f(x1, y1, z1), color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(new Vector3f(x2, y2, z2), color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
}
|
||||
|
||||
public static WorldBuffer startTri(WorldRenderContext context) {
|
||||
@ -49,9 +49,9 @@ public class RenderHelper {
|
||||
}
|
||||
|
||||
public void drawTri(WorldBuffer buffer, float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, Color color) {
|
||||
buffer.vert(x1, y1, z1, color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(x2, y2, z2, color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(x3, y3, z3, color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(new Vector3f(x1, y1, z1), color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(new Vector3f(x2, y2, z2), color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
buffer.vert(new Vector3f(x3, y3, z3), color.getRed() / 255f, color.getGreen() / 255f, color.getBlue() / 255f, color.getAlpha() / 255f);
|
||||
}
|
||||
|
||||
public static void drawRectFromTri(WorldBuffer buffer,
|
@ -1,8 +1,8 @@
|
||||
package themixray.repeating.mod.render;
|
||||
package ru.themixray.repeating_mod.render;
|
||||
|
||||
import lombok.experimental.UtilityClass;
|
||||
import themixray.repeating.mod.render.buffer.BufferManager;
|
||||
import themixray.repeating.mod.render.shader.ShaderManager;
|
||||
import ru.themixray.repeating_mod.render.buffer.BufferManager;
|
||||
import ru.themixray.repeating_mod.render.shader.ShaderManager;
|
||||
|
||||
@UtilityClass
|
||||
public class RenderSystem {
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod.render.buffer;
|
||||
package ru.themixray.repeating_mod.render.buffer;
|
||||
|
||||
import lombok.experimental.UtilityClass;
|
||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
|
@ -1,14 +1,11 @@
|
||||
package themixray.repeating.mod.render.buffer;
|
||||
package ru.themixray.repeating_mod.render.buffer;
|
||||
|
||||
import lombok.Getter;
|
||||
import org.joml.Vector3f;
|
||||
|
||||
public class Vertex {
|
||||
@Getter
|
||||
private float x;
|
||||
@Getter
|
||||
private float y;
|
||||
@Getter
|
||||
private float z;
|
||||
private Vector3f pos;
|
||||
@Getter
|
||||
private float r;
|
||||
@Getter
|
||||
@ -18,10 +15,8 @@ public class Vertex {
|
||||
@Getter
|
||||
private float a;
|
||||
|
||||
public Vertex(float x, float y, float z, float r, float g, float b, float a) {
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
public Vertex(Vector3f pos, float r, float g, float b, float a) {
|
||||
this.pos = pos;
|
||||
this.r = r;
|
||||
this.g = g;
|
||||
this.b = b;
|
@ -1,11 +1,12 @@
|
||||
package themixray.repeating.mod.render.buffer;
|
||||
package ru.themixray.repeating_mod.render.buffer;
|
||||
|
||||
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.joml.Matrix4f;
|
||||
import org.joml.Quaternionf;
|
||||
import org.joml.Vector3f;
|
||||
import org.lwjgl.BufferUtils;
|
||||
import themixray.repeating.mod.render.shader.Shader;
|
||||
import ru.themixray.repeating_mod.render.shader.Shader;
|
||||
|
||||
import java.nio.FloatBuffer;
|
||||
import java.util.ArrayList;
|
||||
@ -18,17 +19,19 @@ public class WorldBuffer {
|
||||
private final int drawMode;
|
||||
private final Shader shader;
|
||||
private FloatBuffer projectionMatrix;
|
||||
private final Vec3d cameraPos;
|
||||
private final Vector3f cameraPos;
|
||||
private final Quaternionf cameraRot;
|
||||
|
||||
public WorldBuffer(int drawMode, Shader shader, WorldRenderContext worldRenderContext) {
|
||||
this.drawMode = drawMode;
|
||||
this.shader = shader;
|
||||
this.cameraPos = worldRenderContext.camera().getPos();
|
||||
makeProjectionMatrix(worldRenderContext.projectionMatrix(), worldRenderContext.matrixStack().peek().getPositionMatrix());
|
||||
this.cameraPos = worldRenderContext.camera().getPos().toVector3f();
|
||||
this.cameraRot = worldRenderContext.camera().getRotation().invert();
|
||||
this.projectionMatrix = worldRenderContext.projectionMatrix().mul(worldRenderContext.matrixStack().peek().getPositionMatrix()).get(BufferUtils.createFloatBuffer(16));
|
||||
}
|
||||
|
||||
public void vert(float x, float y, float z, float r, float g, float b, float a) {
|
||||
vertices.add(new Vertex(x - (float) cameraPos.x, y - (float) cameraPos.y, z - (float) cameraPos.z, r, g, b, a));
|
||||
public void vert(Vector3f pos, float r, float g, float b, float a) {
|
||||
vertices.add(new Vertex(cameraRot.transform(pos.sub(cameraPos)), r, g, b, a));
|
||||
}
|
||||
|
||||
public void draw() {
|
||||
@ -36,7 +39,7 @@ public class WorldBuffer {
|
||||
BufferManager.bindBuffer();
|
||||
|
||||
BufferManager.writeBuffer(getBuffer());
|
||||
applyProjectionMatrix();
|
||||
shader.uniformMatrix4f("u_projection", projectionMatrix);
|
||||
|
||||
glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0);
|
||||
glEnableVertexAttribArray(0);
|
||||
@ -55,12 +58,12 @@ public class WorldBuffer {
|
||||
private FloatBuffer getBuffer() {
|
||||
FloatBuffer floatBuffer = BufferUtils.createFloatBuffer(vertices.size() * 7);
|
||||
ArrayList<Float> floats = new ArrayList<>();
|
||||
for (Vertex vertex : vertices) {
|
||||
floats.add(vertex.getX());
|
||||
floats.add(vertex.getY());
|
||||
floats.add(vertex.getZ());
|
||||
for (ru.themixray.repeating_mod.render.buffer.Vertex vertex : vertices) {
|
||||
floats.add(vertex.getPos().x);
|
||||
floats.add(vertex.getPos().y);
|
||||
floats.add(vertex.getPos().z);
|
||||
}
|
||||
for (Vertex vertex : vertices) {
|
||||
for (ru.themixray.repeating_mod.render.buffer.Vertex vertex : vertices) {
|
||||
floats.add(vertex.getR());
|
||||
floats.add(vertex.getG());
|
||||
floats.add(vertex.getB());
|
||||
@ -71,12 +74,4 @@ public class WorldBuffer {
|
||||
floatBuffer.put(ArrayUtils.toPrimitive(floatArray));
|
||||
return floatBuffer.flip();
|
||||
}
|
||||
|
||||
private void makeProjectionMatrix(Matrix4f projectionMatrix, Matrix4f viewModelMatrix) {
|
||||
this.projectionMatrix = projectionMatrix.mul(viewModelMatrix).get(BufferUtils.createFloatBuffer(16));
|
||||
}
|
||||
|
||||
private void applyProjectionMatrix() {
|
||||
shader.uniformMatrix4f("u_projection", projectionMatrix);
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod.render.shader;
|
||||
package ru.themixray.repeating_mod.render.shader;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@ -12,8 +12,8 @@ public class Shader {
|
||||
|
||||
|
||||
public Shader(String name) {
|
||||
int v = ShaderManager.loadShaderProgram(name, ShaderManager.ShaderType.VERTEX);
|
||||
int f = ShaderManager.loadShaderProgram(name, ShaderManager.ShaderType.FRAGMENT);
|
||||
int v = ru.themixray.repeating_mod.render.shader.ShaderManager.loadShaderProgram(name, ru.themixray.repeating_mod.render.shader.ShaderManager.ShaderType.VERTEX);
|
||||
int f = ru.themixray.repeating_mod.render.shader.ShaderManager.loadShaderProgram(name, ru.themixray.repeating_mod.render.shader.ShaderManager.ShaderType.FRAGMENT);
|
||||
this.id = glCreateProgram();
|
||||
glAttachShader(id, v);
|
||||
glAttachShader(id, f);
|
@ -1,4 +1,4 @@
|
||||
package themixray.repeating.mod.render.shader;
|
||||
package ru.themixray.repeating_mod.render.shader;
|
||||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.mojang.blaze3d.platform.TextureUtil;
|
||||
@ -27,14 +27,14 @@ import static org.lwjgl.opengl.GL33.*;
|
||||
@UtilityClass
|
||||
public class ShaderManager {
|
||||
@Getter
|
||||
private Shader positionColorShader;
|
||||
private ru.themixray.repeating_mod.render.shader.Shader positionColorShader;
|
||||
|
||||
public void init() {
|
||||
ClientLifecycleEvents.CLIENT_STARTED.register(client -> loadShaders());
|
||||
}
|
||||
|
||||
private void loadShaders() {
|
||||
positionColorShader = new Shader("position_color");
|
||||
positionColorShader = new ru.themixray.repeating_mod.render.shader.Shader("position_color");
|
||||
}
|
||||
|
||||
public int loadShaderProgram(String name, ShaderType type) {
|
@ -1,22 +1,14 @@
|
||||
package themixray.repeating.mod.widget;
|
||||
package ru.themixray.repeating_mod.widget;
|
||||
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.Drawable;
|
||||
import net.minecraft.client.gui.Element;
|
||||
import net.minecraft.client.gui.Selectable;
|
||||
import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder;
|
||||
import net.minecraft.client.gui.tooltip.Tooltip;
|
||||
import net.minecraft.client.gui.widget.*;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.text.Text;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.RecordState;
|
||||
import themixray.repeating.mod.RepeatingScreen;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.RecordState;
|
||||
import ru.themixray.repeating_mod.RepeatingScreen;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class RecordListWidget extends ScrollableWidget {
|
||||
private LinkedList<RecordWidget> widgets = new LinkedList<>();
|
@ -1,17 +1,14 @@
|
||||
package themixray.repeating.mod.widget;
|
||||
package ru.themixray.repeating_mod.widget;
|
||||
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.Drawable;
|
||||
import net.minecraft.client.gui.tooltip.Tooltip;
|
||||
import net.minecraft.client.gui.widget.*;
|
||||
import net.minecraft.text.Style;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.text.TextColor;
|
||||
import net.minecraft.util.Formatting;
|
||||
import themixray.repeating.mod.Main;
|
||||
import themixray.repeating.mod.RecordState;
|
||||
import themixray.repeating.mod.RenderListener;
|
||||
import themixray.repeating.mod.RepeatingScreen;
|
||||
import ru.themixray.repeating_mod.Main;
|
||||
import ru.themixray.repeating_mod.RecordState;
|
||||
import ru.themixray.repeating_mod.RepeatingScreen;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.IOException;
|
@ -19,7 +19,7 @@
|
||||
"environment": "client",
|
||||
"entrypoints": {
|
||||
"client": [
|
||||
"themixray.repeating.mod.Main"
|
||||
"ru.themixray.repeating_mod.Main"
|
||||
]
|
||||
},
|
||||
"mixins": [
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"required": true,
|
||||
"minVersion": "0.8",
|
||||
"package": "themixray.repeating.mod.mixin",
|
||||
"package": "ru.themixray.repeating_mod.mixin",
|
||||
"compatibilityLevel": "JAVA_17",
|
||||
"mixins": [
|
||||
],
|
||||
|
Loading…
x
Reference in New Issue
Block a user