Skip to content
Draft
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
64 changes: 42 additions & 22 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
subprojects {
allprojects {
apply plugin: "java"
}

group = "net.meshmc"
version = project.meshVersion
archivesBaseName = project.name
group = project.mavenGroup
version = project.modVersion
archivesBaseName = project.modid

subprojects {
repositories {
mavenCentral()
maven {
Expand All @@ -25,26 +27,44 @@ subprojects {
}
}

// copy the main artifacts to root build folder after build
if(project.name == "mesh-loader") {
tasks.getByName("build").doLast {
copy {
from "${project.rootProject.rootDir}/${project.name}/build/libs/${project.name}-${project.meshVersion}.jar"
into "${project.rootProject.rootDir}/build"
}
}
} else if(project.name != "mesh-core") {
// standalone artifacts
tasks.getByName("build").doLast {
copy {
from "${project.rootProject.rootDir}/${project.name}/build/libs/${project.name}-${project.meshVersion}-standalone.jar"
into "${project.rootProject.rootDir}/build"
}
}
dependencies {
implementation "net.meshmc:mesh-loader:$loaderVersion"
implementation "dev.tigr:simpleevents:1.3"
}
}

configurations {
embeddedLibs
embeddedJars
}

clean {
delete "${project.rootProject.rootDir}/build"
repositories {
maven {
name = "MeshMC"
url = "https://maven.meshmc.net"
}
}

dependencies {
embeddedLibs "dev.tigr:simpleevents:1.3"

embeddedLibs(project(":core")) {
transitive = false
}

subprojects.forEach {
if(it.name.matches("v[0-9]+_[0-9]+_([0-9]+|x)")) embeddedJars(it) {
transitive = false
}
}
}

jar {
from {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
configurations.embeddedLibs.collect {
it.isDirectory() ? it : zipTree(it)
}
}
from(configurations.embeddedJars)
}
32 changes: 32 additions & 0 deletions core/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
group = project.mavenGroup
version = project.modVersion
archivesBaseName = project.modid + "-" + project.name

repositories {
mavenCentral()
maven {
name = "MeshMC"
url = "https://maven.meshmc.net"
}
}

dependencies {
implementation "org.apache.logging.log4j:log4j-api:2.17.0"
implementation "com.google.guava:guava:31.0.1-jre"
implementation 'io.netty:netty-all:4.1.86.Final'
implementation "com.mojang:authlib:1.5.21"
implementation "org.joml:joml:1.10.4"
}

processResources {
inputs.property "version", project.version

filesMatching("${project.modid}.mesh.json") {
expand "version": project.version
}
}

jar {
exclude "net/meshmc/mesh/MeshStatics.class"
exclude "net/meshmc/mesh/statics/*"
}
13 changes: 13 additions & 0 deletions core/src/main/java/net/meshmc/mesh/IMesh.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package net.meshmc.mesh;

import net.meshmc.mesh.api.client.Minecraft;
import net.meshmc.mesh.api.render.Renderer;
import net.meshmc.mesh.api.util.Utilities;

public interface IMesh {
Minecraft getMinecraft();

Renderer getRenderer();

Utilities getUtilities();
}
43 changes: 43 additions & 0 deletions core/src/main/java/net/meshmc/mesh/MeshAPI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package net.meshmc.mesh;

import dev.tigr.simpleevents.EventManager;
import net.meshmc.mesh.api.client.Minecraft;
import net.meshmc.mesh.api.render.Renderer;
import net.meshmc.mesh.api.util.Utilities;
import net.meshmc.mesh.event.MeshEventManager;
import net.meshmc.mesh.loader.MeshLoader;
import net.meshmc.mesh.loader.Mod;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class MeshAPI implements Mod.Initializer {
private static final Logger LOGGER = LogManager.getLogger("Mesh API");
private static final EventManager EVENT_MANAGER = new MeshEventManager();

@Mod.Interface
private static IMesh MESH;

@Override
public void init(Mod mod) {
LOGGER.info("Mesh API loaded in {} {}!",
MeshLoader.getInstance().getRuntime().name().toLowerCase(),
MeshLoader.getInstance().getGameVersion());
// TODO: HANDLE VERSION NOT LOADED
}

public static EventManager getEventManager() {
return EVENT_MANAGER;
}

public static Minecraft getMinecraft() {
return MESH.getMinecraft();
}

public static Renderer getRenderer() {
return MESH.getRenderer();
}

public static Utilities getUtilities() {
return MESH.getUtilities();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,7 @@ default boolean startRidingEntity(Entity entity) {
void handleStatus(byte status);

// animateDamage
void performHurtAnimation();
void performHurtAnimation(float damageTiltYaw);

// TODO: HELD ITEMS AND ARMOR (ItemStack)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public interface EntityLiving extends Entity {
int getMaxHurtTime();
void setMaxHurtTime(int value);

float getAttackedAtYaw(); // knockbackVelocity?
Float getAttackedAtYaw(); // knockbackVelocity?
void setAttackedAtYaw(float value);

int getDeathTime();
Expand All @@ -48,13 +48,13 @@ public interface EntityLiving extends Entity {
int getLastAttackedTicks();
void setLastAttackedTicks(int value);

float getPrevSwingDistance();
Float getPrevSwingDistance();
void setPrevSwingDistance(float value);

float getSwingDistance();
Float getSwingDistance();
void setSwingDistance(float value);

float getLimbAngle();
Float getLimbAngle();
void setLimbAngle(float value);

// TODO: maxHurtResistantTime? defaultMaxHealt?
Expand All @@ -79,7 +79,7 @@ public interface EntityLiving extends Entity {
float getPrevHeadYaw();
void setPrevHeadYaw(float value);

float getAirStrafingSpeed();
Float getAirStrafingSpeed();
void setAirStrafingSpeed(float value);

EntityPlayer getAttackingPlayer();
Expand Down Expand Up @@ -246,7 +246,7 @@ public interface EntityLiving extends Entity {

void fallDamage(float fallDistance, float damageMultiplier);

void hurtAnimation();
void hurtAnimation(float hurtTiltYaw);

int getArmorValue();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ static CPacketChatMessage create(String message) {
}

String getMessage();
void setMessage(String message);
// void setMessage(String message);

@Nullable
@GameVersion.OnlyOn(value = GameVersion.v1_19, minimumVersion = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
* @author Makrennel 2022/02/09
*/
public interface CPacketUseBlock extends Packet.Client {
static CPacketUseBlock createCPacketUseBlock(Hand hand, BlockPos blockPos, Facing facing, Vec3d vector, boolean insideBlock) {
return StaticPackets.createCPacketUseBlock(hand, blockPos, facing, vector, insideBlock);
static CPacketUseBlock createCPacketUseBlock(Hand hand, BlockPos blockPos, Facing facing, Vec3d vector, boolean insideBlock, int sequence) {
return StaticPackets.createCPacketUseBlock(hand, blockPos, facing, vector, insideBlock, sequence);
}

BlockPos getBlockPos();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
* @author Makrennel 2022/02/09
*/
public interface CPacketUseItem extends Packet.Client {
static CPacketUseItem create(Hand hand) {
return StaticPackets.createCPacketUseItem(hand);
static CPacketUseItem create(Hand hand, int sequence) {
return StaticPackets.createCPacketUseItem(hand, sequence);
}

Hand getHand();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ enum Flag {
void removeFlag(Flag flag);

@Nullable
@GameVersion.OnlyOn(value = GameVersion.v1_17, minimumVersion = true)
@GameVersion.OnlyOn(value = {GameVersion.v1_17, GameVersion.v1_17_1, GameVersion.v1_18, GameVersion.v1_18_1, GameVersion.v1_18_2})
Boolean getShouldDismount();
@GameVersion.OnlyOn(value = GameVersion.v1_17, minimumVersion = true)
@GameVersion.OnlyOn(value = {GameVersion.v1_17, GameVersion.v1_17_1, GameVersion.v1_18, GameVersion.v1_18_1, GameVersion.v1_18_2})
void setShouldDismount(boolean value);
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ public interface RenderState {

RenderState scissor(boolean state);

RenderState texture(boolean state);
// RenderState texture(boolean state);
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package net.meshmc.mesh.api.render.buffer;

import net.meshmc.mesh.api.render.Camera;

import java.nio.FloatBuffer;
import org.joml.Matrix4f;

/**
* Provides an interface for manipulating the opengl matrix stack
Expand All @@ -19,9 +18,9 @@ public interface MatrixStack {

void rotate(float angle, float x, float y, float z);

FloatBuffer getProjectionMatrix();
Matrix4f getProjectionMatrix();

FloatBuffer getModelMatrix();
Matrix4f getModelMatrix();

default void translate(Camera camera) {
translate(-camera.getX(), -camera.getY(), -camera.getZ());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,19 @@
package net.meshmc.mesh.event;

import dev.tigr.simpleevents.EventManager;
import net.meshmc.mesh.Mesh;
import net.meshmc.mesh.MeshAPI;
import net.meshmc.mesh.api.util.Profiler;

/**
* This provides event profiling on top of the event manager
* @author Tigermouthbear 1/10/22
*/
public class MeshEventManager extends EventManager {
private final Mesh mesh;

public MeshEventManager(Mesh mesh) {
this.mesh = mesh;
}

@Override
public <T> T post(T event) {
if(event instanceof MeshEvent) {
MeshEvent meshEvent = (MeshEvent) event;
Profiler<?> profiler = mesh.getMinecraft().getProfiler();
Profiler<?> profiler = MeshAPI.getMinecraft().getProfiler();
profiler.pushSection("mesh_" + meshEvent.getName() + (meshEvent.getEra() != null ? "_" + meshEvent.getEra().name().toLowerCase() : ""));
T out = super.post(event);
profiler.popSection();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package net.meshmc.mesh.event.events.network;

import io.netty.channel.ChannelHandlerContext;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.GenericFutureListener;
import net.meshmc.mesh.api.network.Packet;
import net.meshmc.mesh.event.MeshEvent;
import org.jetbrains.annotations.Nullable;

public class NetworkConnectionEvent extends MeshEvent {
public NetworkConnectionEvent(String name, Era era) {
Expand All @@ -25,13 +22,14 @@ public channelRead0(Era era, ChannelHandlerContext channelHandlerContext, Packet

public static class sendPacket extends NetworkConnectionEvent {
public final Packet packet;
@Nullable
public final GenericFutureListener<? extends Future<? super Void>> callback;
// TODO: 1.19.4 PacketCallback?
// @Nullable
// public final GenericFutureListener<? extends Future<? super Void>> callback;

public sendPacket(Era era, Packet packet, @Nullable GenericFutureListener<? extends Future<? super Void>> callback) {
public sendPacket(Era era, Packet packet) {
super("sendPacket", era);
this.packet = packet;
this.callback = callback;
// this.callback = callback;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public static CPacketSteerBoat createCPacketSteerBoat(ByteBuf buf) {
}

// Use Block
public static CPacketUseBlock createCPacketUseBlock(Hand hand, BlockPos blockPos, Facing facing, Vec3d vector, boolean insideBlock) {
public static CPacketUseBlock createCPacketUseBlock(Hand hand, BlockPos blockPos, Facing facing, Vec3d vector, boolean insideBlock, int sequence) {
throw new RuntimeException();
}

Expand All @@ -141,7 +141,7 @@ public static CPacketUseEntity createCPacketUseEntity(ByteBuf buf) {
}

// Use Item
public static CPacketUseItem createCPacketUseItem(Hand hand) {
public static CPacketUseItem createCPacketUseItem(Hand hand, int sequence) {
throw new RuntimeException();
}

Expand Down
Loading