Skip to content

Commit 5be343f

Browse files
committed
Merge branch 'dev/0.8' of https://github.com/IntelligenceModding/AdvancedPeripherals into feat/keyboard
2 parents 9b0f17a + 35671f1 commit 5be343f

File tree

66 files changed

+2442
-1260
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2442
-1260
lines changed

build.gradle

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ import net.darkhax.curseforgegradle.TaskPublishCurseForge
33
import java.text.SimpleDateFormat
44

55
plugins {
6-
id "maven-publish"
6+
id 'checkstyle'
7+
id 'com.github.breadmoirai.github-release' version '2.5.2'
8+
id 'com.modrinth.minotaur' version '2.+'
9+
id 'java'
10+
id 'maven-publish'
711
id 'net.darkhax.curseforgegradle' version '1.1.16'
8-
id 'org.jetbrains.changelog' version '1.2.1'
9-
id "com.modrinth.minotaur" version "2.+"
10-
id "org.jetbrains.kotlin.jvm" version "1.6.10"
1112
id 'net.minecraftforge.gradle' version '[6.0.18,6.2)'
13+
id 'org.jetbrains.changelog' version '1.2.1'
14+
id 'org.jetbrains.kotlin.jvm' version '1.6.10'
1215
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
1316
id 'org.spongepowered.mixin' version '0.7.+'
14-
id "com.github.breadmoirai.github-release" version "2.5.2"
15-
id 'checkstyle'
16-
id 'java'
1717
}
1818

1919
java {
@@ -213,8 +213,6 @@ repositories {
213213
name = "Create maven"
214214
url = "https://maven.tterrag.com/"
215215
content {
216-
includeGroup("com.simibubi.create")
217-
includeGroup("com.jozufozu.flywheel")
218216
includeGroup("com.tterrag.registrate")
219217
}
220218
}
@@ -338,8 +336,8 @@ dependencies {
338336
runtimeOnly fg.deobf("vazkii.patchouli:Patchouli:${patchouli_version}")
339337

340338
// Create
341-
compileOnly fg.deobf("com.simibubi.create:create-${minecraft_version}:${create_version}:all")
342-
runtimeOnly fg.deobf("com.simibubi.create:create-${minecraft_version}:${create_version}:all")
339+
compileOnly fg.deobf("curse.maven:create-328085:${create_version}")
340+
runtimeOnly fg.deobf("curse.maven:create-328085:${create_version}")
343341

344342
// DimStorage
345343
compileOnly fg.deobf("curse.maven:dimstorage-353882:${dimstorage_version}")
@@ -379,12 +377,16 @@ dependencies {
379377
compileOnly("org.joml:joml:1.10.4")
380378
compileOnly("org.joml:joml-primitives:1.10.0")
381379
// compileOnly fg.deobf("org.valkyrienskies:valkyrienskies-119-common:${vs2_version}")
382-
compileOnly fg.deobf("org.valkyrienskies:valkyrienskies-119-forge:${vs2_version}")
380+
compileOnly fg.deobf("org.valkyrienskies:valkyrienskies-119-forge:${vs2_version}") {
381+
transitive = false
382+
}
383383
compileOnly "org.valkyrienskies.core:api:${vs_core_version}"
384384
compileOnly "org.valkyrienskies.core:api-game:${vs_core_version}"
385385
compileOnly "org.valkyrienskies.core:util:${vs_core_version}"
386386
compileOnly "org.valkyrienskies.core:impl:${vs_core_version}"
387-
runtimeOnly fg.deobf("org.valkyrienskies:valkyrienskies-119-forge:${vs2_version}")
387+
runtimeOnly fg.deobf("org.valkyrienskies:valkyrienskies-119-forge:${vs2_version}") {
388+
transitive = false
389+
}
388390
runtimeOnly fg.deobf("curse.maven:valkyrien-skies-258371:${valkyrien_skies_version}")
389391
runtimeOnly fg.deobf("curse.maven:eureka-ships-654384:${eureka_ships_version}")
390392
runtimeOnly fg.deobf("curse.maven:clockwork-807792:${clockwork_version}")

gradle.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ mod_version=0.8r
1111
minecraft_version=1.19.2
1212
mod_artifact_suffix=
1313

14-
forge_version=43.4.0
14+
forge_version=43.5.0
1515
loader_version=43
1616

1717
release_type=release
@@ -36,7 +36,8 @@ appliedenergistics_version=12.9.12
3636
appliedmekanistics_version=4734608
3737
botania_version=1.19.2-440-FORGE
3838
clockwork_version=5171528
39-
create_version=0.5.1.f-46
39+
#v0.5.1
40+
create_version=5797604
4041
createca_version=5099757
4142
curios_version=1.19.2-5.1.4.1
4243
dimstorage_version=3927875

src/main/java/de/srendi/advancedperipherals/client/ClientRegistry.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import net.minecraftforge.client.event.ModelEvent;
2222
import net.minecraftforge.client.event.RegisterGuiOverlaysEvent;
2323
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
24+
import net.minecraftforge.eventbus.api.EventPriority;
2425
import net.minecraftforge.eventbus.api.SubscribeEvent;
2526
import net.minecraftforge.fml.common.Mod;
2627
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
@@ -74,7 +75,7 @@ public static void registeringRenderers(EntityRenderersEvent.RegisterRenderers e
7475
event.registerBlockEntityRenderer(APBlockEntityTypes.DISTANCE_DETECTOR.get(), DistanceDetectorRenderer::new);
7576
}
7677

77-
@SubscribeEvent
78+
@SubscribeEvent(priority = EventPriority.LOWEST)
7879
public static void registeringOverlays(RegisterGuiOverlaysEvent event) {
7980
event.registerAboveAll(SaddleTurtleOverlay.ID, SADDLE_TURTLE_OVERLAY);
8081
event.registerAboveAll(OverlayModuleOverlay.ID, OVERLAY_MODULE_OVERLAY);

src/main/java/de/srendi/advancedperipherals/client/smartglasses/OverlayModuleLevelRenderer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import de.srendi.advancedperipherals.client.RenderUtil;
1212
import de.srendi.advancedperipherals.client.smartglasses.objects.threedim.IThreeDObjectRenderer;
1313
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.three_dim.ThreeDimensionalObject;
14-
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.RenderableObject;
14+
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.RenderableObject;
1515
import de.srendi.advancedperipherals.common.util.EnumColor;
1616
import net.minecraft.client.Minecraft;
1717
import net.minecraft.client.renderer.GameRenderer;
@@ -65,7 +65,7 @@ public static void renderLevelState(RenderLevelStageEvent event) {
6565
}
6666

6767
//TODO Everything below here is just for debugging and testing. Will be removed before we push to production
68-
BlockPos blockPos = new BlockPos(2, 10, 0);
68+
BlockPos blockPos = new BlockPos(2, 100, 0);
6969

7070
float[] colors = EnumColor.DARK_PURPLE.getRgb();
7171

@@ -87,7 +87,7 @@ public static void renderLevelState(RenderLevelStageEvent event) {
8787
posestack.pushPose();
8888
colors = EnumColor.WHITE.getRgb();
8989

90-
blockPos = new BlockPos(0, 10, 0);
90+
blockPos = new BlockPos(0, 100, 0);
9191
posestack.translate(-view.x + blockPos.getX(), -view.y + blockPos.getY(), -view.z + blockPos.getZ());
9292

9393
RenderUtil.drawSphere(posestack, boxVertexConsumer, 2f, 0f, 0f, 0f, 270f, 0f, 0f, colors[0], colors[1], colors[2], 0.4f, 16, 128);
@@ -101,7 +101,7 @@ public static void renderLevelState(RenderLevelStageEvent event) {
101101
posestack.pushPose();
102102

103103
colors = EnumColor.WHITE.getRgb();
104-
blockPos = new BlockPos(6, 10, 0);
104+
blockPos = new BlockPos(6, 100, 0);
105105
posestack.translate(-view.x + blockPos.getX(), -view.y + blockPos.getY(), -view.z + blockPos.getZ());
106106

107107
RenderUtil.drawTorus(posestack, boxVertexConsumer, 1f, 0.4f, 0f, 0f, 0f, 0f, 0f, 0f, colors[0], colors[1], colors[2], 1f, 48, 48);

src/main/java/de/srendi/advancedperipherals/client/smartglasses/OverlayModuleOverlay.java

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22

33
import com.mojang.blaze3d.vertex.PoseStack;
44
import de.srendi.advancedperipherals.client.smartglasses.objects.twodim.ITwoDObjectRenderer;
5-
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.RenderableObject;
5+
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.RenderableObject;
6+
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.RectangleObject;
7+
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.TextObject;
68
import net.minecraftforge.client.gui.overlay.ForgeGui;
79
import net.minecraftforge.client.gui.overlay.IGuiOverlay;
810

911
import java.util.ArrayList;
1012
import java.util.HashMap;
1113
import java.util.List;
1214
import java.util.Map;
15+
import java.util.TreeMap;
1316

1417
public class OverlayModuleOverlay implements IGuiOverlay {
1518
public static final String ID = "overlay_module_overlay";
@@ -18,28 +21,34 @@ public class OverlayModuleOverlay implements IGuiOverlay {
1821
public void render(ForgeGui gui, PoseStack poseStack, float partialTick, int screenWidth, int screenHeight) {
1922
poseStack.pushPose();
2023

21-
Map<Class<? extends RenderableObject>, List<RenderableObject>> batches = new HashMap<>();
24+
Map<Integer, Map<Class<? extends RenderableObject>, List<RenderableObject>>> prioritizedBatches = new TreeMap<>();
2225

2326
for (RenderableObject object : OverlayObjectHolder.getObjects()) {
24-
if (!object.isEnabled() || !(object.getRenderObject() instanceof ITwoDObjectRenderer))
27+
if (!object.isEnabled() || !(object.getRenderObject() instanceof ITwoDObjectRenderer)) {
2528
continue;
29+
}
2630

31+
// We need to sort the objects by their weight, some things can't be rendered before something else.
32+
// For example, when texts are rendered before our circles, rectangles, etc., the other objects can't be transparent anymore
33+
int weight = object.getRenderObject().getWeight();
2734
Class<? extends RenderableObject> objectClass = object.getClass();
2835

29-
if (batches.containsKey(objectClass)) {
30-
batches.get(objectClass).add(object);
31-
continue;
32-
}
36+
// Get or create the batch map for the current weight
37+
Map<Class<? extends RenderableObject>, List<RenderableObject>> batchesForWeight = prioritizedBatches.computeIfAbsent(weight, k -> new HashMap<>());
3338

34-
List<RenderableObject> newBatchArray = new ArrayList<>();
35-
newBatchArray.add(object);
36-
batches.put(objectClass, newBatchArray);
37-
}
39+
List<RenderableObject> batch = batchesForWeight.computeIfAbsent(objectClass, k -> new ArrayList<>());
3840

39-
for (List<RenderableObject> batch : batches.values()) {
40-
((ITwoDObjectRenderer) batch.get(0).getRenderObject()).renderBatch(batch, gui, poseStack, partialTick, screenWidth, screenHeight);
41+
batch.add(object);
4142
}
4243

44+
for (Map<Class<? extends RenderableObject>, List<RenderableObject>> batchesForWeight : prioritizedBatches.values()) {
45+
for (List<RenderableObject> batch : batchesForWeight.values()) {
46+
47+
if (!batch.isEmpty()) {
48+
((ITwoDObjectRenderer) batch.get(0).getRenderObject()).renderBatch(batch, gui, poseStack, partialTick, screenWidth, screenHeight);
49+
}
50+
}
51+
}
4352
poseStack.popPose();
4453

4554
}

src/main/java/de/srendi/advancedperipherals/client/smartglasses/OverlayObjectHolder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.three_dim.TorusObject;
88
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.CircleObject;
99
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.ItemObject;
10+
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.LineObject;
1011
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.RectangleObject;
11-
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.RenderableObject;
12+
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.RenderableObject;
1213
import de.srendi.advancedperipherals.common.smartglasses.modules.overlay.objects.two_dim.TextObject;
1314

1415
import java.util.Collection;
@@ -49,6 +50,7 @@ public static void registerDecodeObjects() {
4950
ObjectDecodeRegistry.register(CircleObject.TYPE_ID, CircleObject::decode);
5051
ObjectDecodeRegistry.register(TextObject.TYPE_ID, TextObject::decode);
5152
ObjectDecodeRegistry.register(ItemObject.TYPE_ID, ItemObject::decode);
53+
ObjectDecodeRegistry.register(LineObject.TYPE_ID, LineObject::decode);
5254

5355
ObjectDecodeRegistry.register(BoxObject.TYPE_ID, BoxObject::decode);
5456
ObjectDecodeRegistry.register(BlockObject.TYPE_ID, BlockObject::decode);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
11
package de.srendi.advancedperipherals.client.smartglasses.objects;
22

33
public interface IObjectRenderer {
4+
/**
5+
* Get the weight of the renderer. Lower weight means higher priority and it will render first.
6+
* Some things need to be rendered before others to prevent color and opacity issues.
7+
* @return the weight of the renderer.
8+
*/
9+
default int getWeight() {
10+
return 100;
11+
}
12+
413
}

src/main/java/de/srendi/advancedperipherals/client/smartglasses/objects/threedim/BlockRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void renderBatch(List<ThreeDimensionalObject> batch, RenderLevelStageEven
3636
BlockObject block = (BlockObject) obj;
3737

3838
poseStack.translate(-view.x + block.getX(), -view.y + block.getY(), -view.z + block.getZ());
39-
poseStack.mulPose(new Quaternion(block.xRot, block.yRot, block.zRot, true));
39+
poseStack.mulPose(new Quaternion(block.rotX, block.rotY, block.rotZ, true));
4040
poseStack.translate(-0.5f, -0.5f, -0.5f);
4141
float alpha = block.opacity;
4242
float red = RenderUtil.getRed(block.color);

src/main/java/de/srendi/advancedperipherals/client/smartglasses/objects/threedim/BoxRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void renderBatch(List<ThreeDimensionalObject> batch, RenderLevelStageEven
3535
float blue = RenderUtil.getBlue(box.color);
3636

3737
poseStack.translate(-view.x + box.getX(), -view.y + box.getY(), -view.z + box.getZ());
38-
RenderUtil.drawBox(poseStack, bufferBuilder, red, green, blue, alpha, box.x, box.y, box.z, obj.xRot, obj.yRot, obj.zRot, obj.maxX, obj.maxY, obj.maxZ);
38+
RenderUtil.drawBox(poseStack, bufferBuilder, red, green, blue, alpha, box.x, box.y, box.z, obj.rotX, obj.rotY, obj.rotZ, obj.maxX, obj.maxY, obj.maxZ);
3939
BufferUploader.drawWithShader(bufferBuilder.end());
4040
onPostRender(obj);
4141

src/main/java/de/srendi/advancedperipherals/client/smartglasses/objects/threedim/SphereRenderer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void renderBatch(List<ThreeDimensionalObject> batch, RenderLevelStageEven
3636
float blue = RenderUtil.getRed(sphere.color);
3737

3838
poseStack.translate(-view.x, -view.y, -view.z);
39-
RenderUtil.drawSphere(poseStack, boxVertexConsumer, sphere.radius, sphere.x, sphere.y, sphere.z, sphere.xRot, sphere.yRot, sphere.zRot, red, green, blue, alpha, sphere.sectors, sphere.stacks);
39+
RenderUtil.drawSphere(poseStack, boxVertexConsumer, sphere.radius, sphere.x, sphere.y, sphere.z, sphere.rotX, sphere.rotY, sphere.rotZ, red, green, blue, alpha, sphere.sectors, sphere.stacks);
4040
onPostRender(obj);
4141

4242
poseStack.popPose();

0 commit comments

Comments
 (0)