Make registries be statically initialized
This commit is contained in:
parent
bd02a3186d
commit
ac0c72abb1
@ -69,7 +69,8 @@ public class OverdriveThatMatters {
|
|||||||
|
|
||||||
// LOGGER.info("Registered event handlers");
|
// LOGGER.info("Registered event handlers");
|
||||||
|
|
||||||
Registry.createRegistry();
|
// force Registry static initializer to be called
|
||||||
|
Registry.dummy();
|
||||||
|
|
||||||
CREATIVE_TAB = new CreativeModeTab("otm") {
|
CREATIVE_TAB = new CreativeModeTab("otm") {
|
||||||
@Override
|
@Override
|
||||||
|
@ -51,20 +51,10 @@ public class Registry {
|
|||||||
DAMAGE_EVENT_HORIZON.bypassMagic().bypassArmor();
|
DAMAGE_EVENT_HORIZON.bypassMagic().bypassArmor();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ForgeRegistry<AndroidFeatureType<?>> ANDROID_FEATURES;
|
public static final ForgeRegistry<AndroidFeatureType<?>> ANDROID_FEATURES;
|
||||||
private static ForgeRegistry<AndroidResearchType<?>> ANDROID_RESEARCH;
|
public static final ForgeRegistry<AndroidResearchType<?>> ANDROID_RESEARCH;
|
||||||
|
|
||||||
public static ForgeRegistry<AndroidFeatureType<?>> ANDROID_FEATURES() {
|
|
||||||
return ANDROID_FEATURES;
|
|
||||||
}
|
|
||||||
public static ForgeRegistry<AndroidResearchType<?>> ANDROID_RESEARCH() {
|
|
||||||
return ANDROID_RESEARCH;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void createRegistry() {
|
|
||||||
if (ANDROID_FEATURES != null)
|
|
||||||
throw new IllegalStateException("Already has registry");
|
|
||||||
|
|
||||||
|
static {
|
||||||
var builder = new RegistryBuilder<AndroidFeatureType<?>>();
|
var builder = new RegistryBuilder<AndroidFeatureType<?>>();
|
||||||
builder.setName(new ResourceLocation(OverdriveThatMatters.MOD_ID, "android_features"));
|
builder.setName(new ResourceLocation(OverdriveThatMatters.MOD_ID, "android_features"));
|
||||||
|
|
||||||
@ -80,6 +70,8 @@ public class Registry {
|
|||||||
ANDROID_RESEARCH = (ForgeRegistry<AndroidResearchType<?>>) builder2.create();
|
ANDROID_RESEARCH = (ForgeRegistry<AndroidResearchType<?>>) builder2.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void dummy() {}
|
||||||
|
|
||||||
private static <T> Class<T> c(Class<?> cls) { return (Class<T>) cls; }
|
private static <T> Class<T> c(Class<?> cls) { return (Class<T>) cls; }
|
||||||
|
|
||||||
record CrateProps(MaterialColor color, ResourceLocation name) {
|
record CrateProps(MaterialColor color, ResourceLocation name) {
|
||||||
|
@ -167,7 +167,7 @@ public class AndroidResearchBuilder {
|
|||||||
var list = new ArrayList<AndroidResearchType<?>>();
|
var list = new ArrayList<AndroidResearchType<?>>();
|
||||||
|
|
||||||
for (var entry : prerequisites) {
|
for (var entry : prerequisites) {
|
||||||
var get = Registry.ANDROID_RESEARCH().getValue(entry);
|
var get = Registry.ANDROID_RESEARCH.getValue(entry);
|
||||||
|
|
||||||
if (get != null) {
|
if (get != null) {
|
||||||
list.add(get);
|
list.add(get);
|
||||||
@ -179,7 +179,7 @@ public class AndroidResearchBuilder {
|
|||||||
resolved_preq = List.copyOf(list);
|
resolved_preq = List.copyOf(list);
|
||||||
|
|
||||||
for (var entry : feature_results) {
|
for (var entry : feature_results) {
|
||||||
var get = Registry.ANDROID_FEATURES().getValue(entry.id);
|
var get = Registry.ANDROID_FEATURES.getValue(entry.id);
|
||||||
|
|
||||||
if (get != null) {
|
if (get != null) {
|
||||||
resolved_features.add(new ResolvedFeature(get, entry.level, entry.callback));
|
resolved_features.add(new ResolvedFeature(get, entry.level, entry.callback));
|
||||||
|
@ -27,7 +27,7 @@ public class AndroidResearchType<T extends AndroidResearch> extends ForgeRegistr
|
|||||||
if (blocking == null) {
|
if (blocking == null) {
|
||||||
var list = new ArrayList<AndroidResearchType<?>>();
|
var list = new ArrayList<AndroidResearchType<?>>();
|
||||||
|
|
||||||
for (var type : Registry.ANDROID_RESEARCH()) {
|
for (var type : Registry.ANDROID_RESEARCH) {
|
||||||
if (type.getBlockedBy().contains(this)) {
|
if (type.getBlockedBy().contains(this)) {
|
||||||
list.add(type);
|
list.add(type);
|
||||||
}
|
}
|
||||||
@ -46,7 +46,7 @@ public class AndroidResearchType<T extends AndroidResearch> extends ForgeRegistr
|
|||||||
if (unlocks == null) {
|
if (unlocks == null) {
|
||||||
var list = new ArrayList<AndroidResearchType<?>>();
|
var list = new ArrayList<AndroidResearchType<?>>();
|
||||||
|
|
||||||
for (var type : Registry.ANDROID_RESEARCH()) {
|
for (var type : Registry.ANDROID_RESEARCH) {
|
||||||
if (type.getPrerequisites().contains(this)) {
|
if (type.getPrerequisites().contains(this)) {
|
||||||
list.add(type);
|
list.add(type);
|
||||||
}
|
}
|
||||||
|
@ -237,7 +237,7 @@ public class AndroidCapability implements ICapabilityProvider, IAndroidCapabilit
|
|||||||
|
|
||||||
for (var _tag : features_nbt) {
|
for (var _tag : features_nbt) {
|
||||||
if (_tag instanceof CompoundTag tag) {
|
if (_tag instanceof CompoundTag tag) {
|
||||||
var get_feature = Registry.ANDROID_FEATURES().getValue(new ResourceLocation(tag.getString("id")));
|
var get_feature = Registry.ANDROID_FEATURES.getValue(new ResourceLocation(tag.getString("id")));
|
||||||
|
|
||||||
if (get_feature != null && get_feature.isApplicable(this)) {
|
if (get_feature != null && get_feature.isApplicable(this)) {
|
||||||
var feature = get_feature.factory(this);
|
var feature = get_feature.factory(this);
|
||||||
|
@ -82,7 +82,7 @@ public class AndroidCapabilityPlayer extends AndroidCapability {
|
|||||||
|
|
||||||
for (var _tag : list) {
|
for (var _tag : list) {
|
||||||
if (_tag instanceof CompoundTag tag) {
|
if (_tag instanceof CompoundTag tag) {
|
||||||
var research = Registry.ANDROID_RESEARCH().getValue(new ResourceLocation(tag.getString("id")));
|
var research = Registry.ANDROID_RESEARCH.getValue(new ResourceLocation(tag.getString("id")));
|
||||||
|
|
||||||
if (research != null) {
|
if (research != null) {
|
||||||
var instance = research.factory(this);
|
var instance = research.factory(this);
|
||||||
|
@ -180,7 +180,7 @@ public class AndroidStationScreen extends MatteryScreen<AndroidStationMenu> impl
|
|||||||
Arrays.fill(rows, null);
|
Arrays.fill(rows, null);
|
||||||
next_x = 0;
|
next_x = 0;
|
||||||
|
|
||||||
for (var research : Registry.ANDROID_RESEARCH().getValues()) {
|
for (var research : Registry.ANDROID_RESEARCH.getValues()) {
|
||||||
if (research.getPrerequisites().size() == 0) {
|
if (research.getPrerequisites().size() == 0) {
|
||||||
dive(cap, research, 0);
|
dive(cap, research, 0);
|
||||||
float max = 0;
|
float max = 0;
|
||||||
|
@ -26,7 +26,7 @@ public record AndroidFeaturePacket(boolean is_added, AndroidFeatureType<?> featu
|
|||||||
|
|
||||||
public void write(FriendlyByteBuf buffer) {
|
public void write(FriendlyByteBuf buffer) {
|
||||||
buffer.writeBoolean(is_added);
|
buffer.writeBoolean(is_added);
|
||||||
buffer.writeInt(Registry.ANDROID_FEATURES().getID(feature));
|
buffer.writeInt(Registry.ANDROID_FEATURES.getID(feature));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void play(Supplier<NetworkEvent.Context> context) {
|
public void play(Supplier<NetworkEvent.Context> context) {
|
||||||
@ -50,7 +50,7 @@ public record AndroidFeaturePacket(boolean is_added, AndroidFeatureType<?> featu
|
|||||||
|
|
||||||
public static AndroidFeaturePacket read(FriendlyByteBuf buffer) {
|
public static AndroidFeaturePacket read(FriendlyByteBuf buffer) {
|
||||||
var is_added = buffer.readBoolean();
|
var is_added = buffer.readBoolean();
|
||||||
var feature = Objects.requireNonNull(Registry.ANDROID_FEATURES().getValue(buffer.readInt()));
|
var feature = Objects.requireNonNull(Registry.ANDROID_FEATURES.getValue(buffer.readInt()));
|
||||||
|
|
||||||
return new AndroidFeaturePacket(is_added, feature);
|
return new AndroidFeaturePacket(is_added, feature);
|
||||||
}
|
}
|
||||||
|
@ -20,12 +20,12 @@ public record AndroidResearchPacket(AndroidResearchType<?> type, CompoundTag pay
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void write(FriendlyByteBuf buffer) {
|
public void write(FriendlyByteBuf buffer) {
|
||||||
buffer.writeInt(Registry.ANDROID_RESEARCH().getID(type));
|
buffer.writeInt(Registry.ANDROID_RESEARCH.getID(type));
|
||||||
buffer.writeNbt(payload);
|
buffer.writeNbt(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AndroidResearchPacket read(FriendlyByteBuf buffer) {
|
public static AndroidResearchPacket read(FriendlyByteBuf buffer) {
|
||||||
return new AndroidResearchPacket(Registry.ANDROID_RESEARCH().getValue(buffer.readInt()), buffer.readNbt());
|
return new AndroidResearchPacket(Registry.ANDROID_RESEARCH.getValue(buffer.readInt()), buffer.readNbt());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void play(Supplier<NetworkEvent.Context> context) {
|
public void play(Supplier<NetworkEvent.Context> context) {
|
||||||
|
@ -23,7 +23,7 @@ public record AndroidResearchRequestPacket(AndroidResearchType<?> research) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void write(FriendlyByteBuf buffer) {
|
public void write(FriendlyByteBuf buffer) {
|
||||||
buffer.writeInt(Registry.ANDROID_RESEARCH().getID(research));
|
buffer.writeInt(Registry.ANDROID_RESEARCH.getID(research));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void play(Supplier<NetworkEvent.Context> context) {
|
public void play(Supplier<NetworkEvent.Context> context) {
|
||||||
@ -40,6 +40,6 @@ public record AndroidResearchRequestPacket(AndroidResearchType<?> research) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static AndroidResearchRequestPacket read(FriendlyByteBuf buffer) {
|
public static AndroidResearchRequestPacket read(FriendlyByteBuf buffer) {
|
||||||
return new AndroidResearchRequestPacket(Objects.requireNonNull(Registry.ANDROID_RESEARCH().getValue(buffer.readInt())));
|
return new AndroidResearchRequestPacket(Objects.requireNonNull(Registry.ANDROID_RESEARCH.getValue(buffer.readInt())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user