Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id 'fabric-loom' version '1.9-SNAPSHOT'
id 'fabric-loom' version '1.11-SNAPSHOT'
id 'maven-publish'
}

Expand Down
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ org.gradle.parallel=true

# Fabric Properties
# check these on https://fabricmc.net/develop
minecraft_version=1.21.1
yarn_mappings=1.21.1+build.3
loader_version=0.16.10
minecraft_version=1.21.10
yarn_mappings=1.21.10+build.2
loader_version=0.17.3

# Mod Properties
mod_version=1.0.0
maven_group=com.github.Dusty-Development
archives_base_name=LemonLib

# Dependencies
fabric_version=0.115.0+1.21.1
fabric_version=0.135.0+1.21.10
dominion_version=0.9.0
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/net/dustley/lemon/LemonLib.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package net.dustley.lemon;

import net.dustley.lemon.content.registry.ModItems;
import net.dustley.lemon.modules.camera_effects.freeze_frames.FreezeFrameManager;
import net.dustley.lemon.modules.citrus_physics.debug.CitrusDebugRenderer;
import net.fabricmc.api.ModInitializer;

import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.util.Identifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand All @@ -20,13 +17,5 @@ public void onInitialize() {
LOGGER.info("Hello Fabric world!");

ModItems.registerModItems();
CitrusDebugRenderer.registerEvents();

/*
Freeze Frame Tick Caller
*/
ClientTickEvents.END_CLIENT_TICK.register(client -> {
FreezeFrameManager.tick();
});
}
}
11 changes: 0 additions & 11 deletions src/main/java/net/dustley/lemon/LemonLibClient.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,11 @@
package net.dustley.lemon;

import net.dustley.lemon.modules.camera_effects.freeze_frames.DefaultOverlay;
import net.dustley.lemon.modules.citrus_physics.debug.CitrusDebugRenderer;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback;

public class LemonLibClient implements ClientModInitializer {

@Override
public void onInitializeClient() {
/*
Debug Renderer
*/
CitrusDebugRenderer.registerEvents();

/*
Freeze Frame Overlay HUD Render Callback
*/
HudRenderCallback.EVENT.register(new DefaultOverlay());
}
}
21 changes: 12 additions & 9 deletions src/main/java/net/dustley/lemon/content/registry/ModItems.java
Original file line number Diff line number Diff line change
@@ -1,34 +1,37 @@
package net.dustley.lemon.content.registry;

import net.dustley.lemon.LemonLib;
import net.dustley.lemon.content.test_freezer.Freezer;
import net.dustley.lemon.content.test_shake.Shaker;
import net.dustley.lemon.content.test_stick.TestStick;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroups;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;

public class ModItems {
import java.util.function.Function;

public interface ModItems {

// Items //
public static final Item TESTER = registerItem("tester", new TestStick());
public static final Item FREEZER = registerItem("freezer", new Freezer());
public static final Item SHAKER = registerItem("shaker", new Shaker());
Item TESTER = register("tester", TestStick::new);
Item SHAKER = register("shaker", Shaker::new);

// Utility Functions //
private static Item registerItem(String name, Item item) {
return Registry.register(Registries.ITEM, LemonLib.id(name), item);
static Item register(String id, Function<Item.Settings, Item> factory) {
RegistryKey<Item> key = RegistryKey.of(RegistryKeys.ITEM, LemonLib.id(id));
Item item = factory.apply(new Item.Settings().registryKey(key));
return Registry.register(Registries.ITEM, key, item);
}

// Initializer //
public static void registerModItems() {
static void registerModItems() {
LemonLib.LOGGER.info("Registering Mod Items for " + LemonLib.MOD_ID);

ItemGroupEvents.modifyEntriesEvent(ItemGroups.OPERATOR).register(entries -> {
entries.add(TESTER);
entries.add(FREEZER);
entries.add(SHAKER);
});
}
Expand Down
20 changes: 0 additions & 20 deletions src/main/java/net/dustley/lemon/content/test_freezer/Freezer.java

This file was deleted.

This file was deleted.

11 changes: 6 additions & 5 deletions src/main/java/net/dustley/lemon/content/test_shake/Shaker.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,21 @@

import net.dustley.lemon.modules.camera_effects.screen_shake.ScreenShake;
import net.dustley.lemon.modules.camera_effects.screen_shake.ScreenShakeManager;
import net.dustley.lemon.modules.math.easing.Easing;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.DebugStickItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.Rarity;
import net.minecraft.util.TypedActionResult;
import net.minecraft.world.World;

public class Shaker extends DebugStickItem {
public Shaker() { super(new Settings().rarity(Rarity.EPIC).maxCount(1)); }
public Shaker(Item.Settings settings) {
super(settings.rarity(Rarity.EPIC).maxCount(1));
}

@Override
public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) {
public ActionResult use(World world, PlayerEntity user, Hand hand) {
ScreenShakeManager.createScreenShake(new ScreenShake(40, 0.5f));
return super.use(world, user, hand);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,23 @@
import net.dustley.lemon.modules.citrus_physics.component.constraint.single.StaticConstraint;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.DebugStickItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Item;
import net.minecraft.util.ActionResult;
import net.minecraft.util.Hand;
import net.minecraft.util.Rarity;
import net.minecraft.util.TypedActionResult;
import net.minecraft.world.World;
import org.joml.Vector2i;
import org.joml.Vector2ic;
import org.joml.Vector3d;
import org.joml.Vector3dc;

public class TestStick extends DebugStickItem {
public TestStick() { super(new Settings().rarity(Rarity.EPIC).maxCount(1)); }
public TestStick(Item.Settings settings) {
super(settings.rarity(Rarity.EPIC).maxCount(1));
}

@Override
public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) {
public ActionResult use(World world, PlayerEntity user, Hand hand) {
var physics = PhysicsWorld.getFromWorld(world);

Vector2ic size = new Vector2i(32, 32);
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
@Mixin(World.class)
public class PhysicsWorldMixin implements PhysicsWorldDuck {

@Override public PhysicsWorld getPhysics() { return physicsWorld; }
@Override public PhysicsWorld lemonLib$getPhysics() { return physicsWorld; }
@Unique PhysicsWorld physicsWorld;

@Inject(at = @At("TAIL"), method = "<init>")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package net.dustley.lemon.mixin.physics;

import net.dustley.lemon.modules.citrus_physics.PhysicsWorld;
import net.dustley.lemon.modules.citrus_physics.component.ActorComponent;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.hud.debug.DebugHudEntries;
import net.minecraft.client.render.*;
import net.minecraft.client.render.debug.DebugRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.Box;
import net.minecraft.util.math.Vec3d;
import org.joml.Vector3d;
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 java.util.concurrent.atomic.AtomicInteger;

import static java.lang.Math.abs;
import static java.lang.Math.clamp;

@Mixin(DebugRenderer.class)
public class WorldRendererMixin {

@Inject(method = "render", at = @At("TAIL"))
private void render(MatrixStack matrices, Frustum frustum, VertexConsumerProvider.Immediate vertexConsumers, double cameraX, double cameraY, double cameraZ, boolean lateDebug, CallbackInfo ci) {
MinecraftClient client = MinecraftClient.getInstance();
var physicsWorld = PhysicsWorld.getFromWorld(client.world);

if(client.debugHudEntryList.isEntryVisible(DebugHudEntries.ENTITY_HITBOXES)) {
AtomicInteger renderTokens = new AtomicInteger(50000); // In short how many particles can render at once

physicsWorld.ecsWorld.findEntitiesWith(ActorComponent.class).stream().forEach(result -> {
if(renderTokens.get() > 0) {
ActorComponent actor = result.comp();
matrices.push();

matrices.translate(-cameraX, -cameraY, -cameraZ);

var position = actor.position;
matrices.translate(position.x, position.y, position.z);

var box = Box.of(Vec3d.ZERO, actor.mass, actor.mass, actor.mass);
var vel = actor.position.sub(actor.positionCache, new Vector3d()).mul(20);

DebugRenderer.drawBox(matrices, vertexConsumers, box, (float) clamp(abs(vel.x), 0.0, 1.0), (float) clamp(abs(vel.y), 0.0, 1.0), (float) clamp(abs(vel.z), 0.0, 1.0), 1f);

renderTokens.addAndGet(-1);
matrices.pop();
}
});
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@

public interface PhysicsWorldDuck {

public PhysicsWorld getPhysics();
PhysicsWorld lemonLib$getPhysics();

}

This file was deleted.

Loading