Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cleanup/java-hacks #145

Merged
merged 7 commits into from
Feb 9, 2025
Merged
Changes from 1 commit
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
Prev Previous commit
Next Next commit
Removed EnumFactory.
mineLdiver committed Jan 3, 2025
commit f98d080b7c1c371649012e9f302163599de4939c

This file was deleted.

Original file line number Diff line number Diff line change
@@ -5,16 +5,13 @@
import net.minecraft.block.Material;
import net.minecraft.class_238;
import net.minecraft.entity.Entity;
import net.modificationstation.stationapi.api.factory.EnumFactory;
import net.modificationstation.stationapi.mixin.entity.EntityTypeAccessor;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class EntityTypeFactory {
private static int nextId = class_238.values().length;

public static class_238 create(String typeName, Class<? extends Entity> typeSuperClass, int unusedInt, Material spawnMaterial, boolean unusedBoolean) {
return EnumFactory.addEnum(
class_238.class, typeName,
new Class[] { Class.class, int.class, Material.class, boolean.class },
typeSuperClass, unusedInt, spawnMaterial, unusedBoolean
);
return EntityTypeAccessor.stationapi_create(typeName, nextId++, typeSuperClass, unusedInt, spawnMaterial, unusedBoolean);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package net.modificationstation.stationapi.mixin.entity;

import net.minecraft.block.Material;
import net.minecraft.class_238;
import net.minecraft.entity.Entity;
import net.modificationstation.stationapi.api.util.Util;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;

@Mixin(class_238.class)
public interface EntityTypeAccessor {
@Invoker("<init>")
static class_238 stationapi_create(String typeName, int id, Class<? extends Entity> typeSuperClass, int unusedInt, Material spawnMaterial, boolean unusedBoolean) {
return Util.assertMixin();
}
}
Original file line number Diff line number Diff line change
@@ -4,7 +4,8 @@
"package": "net.modificationstation.stationapi.mixin.entity",
"compatibilityLevel": "JAVA_17",
"mixins": [
"EntityRegistryMixin"
"EntityRegistryMixin",
"EntityTypeAccessor"
],
"server": [
"server.ServerEntityTrackerMixin",
Original file line number Diff line number Diff line change
@@ -3,15 +3,13 @@
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import net.minecraft.client.option.Option;
import net.modificationstation.stationapi.api.factory.EnumFactory;
import net.modificationstation.stationapi.mixin.keybinding.client.OptionAccessor;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class OptionFactory {
private static int nextId = Option.values().length;

public static Option create(String optionName, String translationKey, boolean slider, boolean toggle) {
return EnumFactory.addEnum(
Option.class, optionName,
new Class[] { String.class, boolean.class, boolean.class },
translationKey, slider, toggle
);
return OptionAccessor.stationapi_create(optionName, nextId++, translationKey, slider, toggle);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package net.modificationstation.stationapi.mixin.keybinding.client;

import net.minecraft.client.option.Option;
import net.modificationstation.stationapi.api.util.Util;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;

@Mixin(Option.class)
public interface OptionAccessor {
@Invoker("<init>")
static Option stationapi_create(String optionName, int id, String translationKey, boolean slider, boolean toggle) {
return Util.assertMixin();
}
}
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@
"client": [
"client.GameOptionsMixin",
"client.MinecraftMixin",
"client.OptionAccessor",
"client.ScreenMixin"
],
"injectors": {
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package net.modificationstation.stationapi.api.item.tool;

import net.minecraft.item.ToolMaterial;
import net.modificationstation.stationapi.api.factory.EnumFactory;
import net.modificationstation.stationapi.mixin.tools.ToolMaterialAccessor;

public class ToolMaterialFactory {
private static int nextId = ToolMaterial.values().length;

public static ToolMaterial create(String materialName, int miningLevel, int durability, float miningSpeed, int attackDamage) {
return EnumFactory.addEnum(
ToolMaterial.class, materialName,
new Class[] { int.class, int.class, float.class, int.class },
miningLevel, durability, miningSpeed, attackDamage
);
return ToolMaterialAccessor.stationapi_create(materialName, nextId++, miningLevel, durability, miningSpeed, attackDamage);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package net.modificationstation.stationapi.mixin.tools;

import net.minecraft.item.ToolMaterial;
import net.modificationstation.stationapi.api.util.Util;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;

@Mixin(ToolMaterial.class)
public interface ToolMaterialAccessor {
@Invoker("<init>")
static ToolMaterial stationapi_create(String materialName, int id, int miningLevel, int itemDurability, float miningSpeed, int attackDamage) {
return Util.assertMixin();
}
}
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@
"ShovelItemMixin",
"SwordItemMixin",
"ToolItemMixin",
"ToolMaterialAccessor",
"ToolMaterialMixin"
],
"server": [