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");
|
||||
|
||||
Registry.createRegistry();
|
||||
// force Registry static initializer to be called
|
||||
Registry.dummy();
|
||||
|
||||
CREATIVE_TAB = new CreativeModeTab("otm") {
|
||||
@Override
|
||||
|
@ -51,20 +51,10 @@ public class Registry {
|
||||
DAMAGE_EVENT_HORIZON.bypassMagic().bypassArmor();
|
||||
}
|
||||
|
||||
private static ForgeRegistry<AndroidFeatureType<?>> ANDROID_FEATURES;
|
||||
private static 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");
|
||||
public static final ForgeRegistry<AndroidFeatureType<?>> ANDROID_FEATURES;
|
||||
public static final ForgeRegistry<AndroidResearchType<?>> ANDROID_RESEARCH;
|
||||
|
||||
static {
|
||||
var builder = new RegistryBuilder<AndroidFeatureType<?>>();
|
||||
builder.setName(new ResourceLocation(OverdriveThatMatters.MOD_ID, "android_features"));
|
||||
|
||||
@ -80,6 +70,8 @@ public class Registry {
|
||||
ANDROID_RESEARCH = (ForgeRegistry<AndroidResearchType<?>>) builder2.create();
|
||||
}
|
||||
|
||||
public static void dummy() {}
|
||||
|
||||
private static <T> Class<T> c(Class<?> cls) { return (Class<T>) cls; }
|
||||
|
||||
record CrateProps(MaterialColor color, ResourceLocation name) {
|
||||
|
@ -167,7 +167,7 @@ public class AndroidResearchBuilder {
|
||||
var list = new ArrayList<AndroidResearchType<?>>();
|
||||
|
||||
for (var entry : prerequisites) {
|
||||
var get = Registry.ANDROID_RESEARCH().getValue(entry);
|
||||
var get = Registry.ANDROID_RESEARCH.getValue(entry);
|
||||
|
||||
if (get != null) {
|
||||
list.add(get);
|
||||
@ -179,7 +179,7 @@ public class AndroidResearchBuilder {
|
||||
resolved_preq = List.copyOf(list);
|
||||
|
||||
for (var entry : feature_results) {
|
||||
var get = Registry.ANDROID_FEATURES().getValue(entry.id);
|
||||
var get = Registry.ANDROID_FEATURES.getValue(entry.id);
|
||||
|
||||
if (get != null) {
|
||||
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) {
|
||||
var list = new ArrayList<AndroidResearchType<?>>();
|
||||
|
||||
for (var type : Registry.ANDROID_RESEARCH()) {
|
||||
for (var type : Registry.ANDROID_RESEARCH) {
|
||||
if (type.getBlockedBy().contains(this)) {
|
||||
list.add(type);
|
||||
}
|
||||
@ -46,7 +46,7 @@ public class AndroidResearchType<T extends AndroidResearch> extends ForgeRegistr
|
||||
if (unlocks == null) {
|
||||
var list = new ArrayList<AndroidResearchType<?>>();
|
||||
|
||||
for (var type : Registry.ANDROID_RESEARCH()) {
|
||||
for (var type : Registry.ANDROID_RESEARCH) {
|
||||
if (type.getPrerequisites().contains(this)) {
|
||||
list.add(type);
|
||||
}
|
||||
|
@ -237,7 +237,7 @@ public class AndroidCapability implements ICapabilityProvider, IAndroidCapabilit
|
||||
|
||||
for (var _tag : features_nbt) {
|
||||
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)) {
|
||||
var feature = get_feature.factory(this);
|
||||
|
@ -82,7 +82,7 @@ public class AndroidCapabilityPlayer extends AndroidCapability {
|
||||
|
||||
for (var _tag : list) {
|
||||
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) {
|
||||
var instance = research.factory(this);
|
||||
|
@ -180,7 +180,7 @@ public class AndroidStationScreen extends MatteryScreen<AndroidStationMenu> impl
|
||||
Arrays.fill(rows, null);
|
||||
next_x = 0;
|
||||
|
||||
for (var research : Registry.ANDROID_RESEARCH().getValues()) {
|
||||
for (var research : Registry.ANDROID_RESEARCH.getValues()) {
|
||||
if (research.getPrerequisites().size() == 0) {
|
||||
dive(cap, research, 0);
|
||||
float max = 0;
|
||||
|
@ -26,7 +26,7 @@ public record AndroidFeaturePacket(boolean is_added, AndroidFeatureType<?> featu
|
||||
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
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) {
|
||||
@ -50,7 +50,7 @@ public record AndroidFeaturePacket(boolean is_added, AndroidFeatureType<?> featu
|
||||
|
||||
public static AndroidFeaturePacket read(FriendlyByteBuf buffer) {
|
||||
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);
|
||||
}
|
||||
|
@ -20,12 +20,12 @@ public record AndroidResearchPacket(AndroidResearchType<?> type, CompoundTag pay
|
||||
}
|
||||
|
||||
public void write(FriendlyByteBuf buffer) {
|
||||
buffer.writeInt(Registry.ANDROID_RESEARCH().getID(type));
|
||||
buffer.writeInt(Registry.ANDROID_RESEARCH.getID(type));
|
||||
buffer.writeNbt(payload);
|
||||
}
|
||||
|
||||
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) {
|
||||
|
@ -23,7 +23,7 @@ public record AndroidResearchRequestPacket(AndroidResearchType<?> research) {
|
||||
}
|
||||
|
||||
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) {
|
||||
@ -40,6 +40,6 @@ public record AndroidResearchRequestPacket(AndroidResearchType<?> research) {
|
||||
}
|
||||
|
||||
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