Moving to source sets

This commit is contained in:
Sebastian Hartte
2020-07-01 23:36:51 +02:00
parent f2e3d81fd7
commit 2642ced86b
2924 changed files with 794 additions and 796 deletions
+178
View File
@@ -0,0 +1,178 @@
package appeng.core;
import appeng.api.features.IRegistryContainer;
import appeng.api.networking.IGridCacheRegistry;
import appeng.api.networking.energy.IEnergyGrid;
import appeng.api.networking.pathing.IPathingGrid;
import appeng.api.networking.security.ISecurityGrid;
import appeng.api.networking.storage.IStorageGrid;
import appeng.api.networking.ticking.ITickManager;
import appeng.api.parts.CableRenderMode;
import appeng.bootstrap.components.ITileEntityRegistrationComponent;
import appeng.client.render.effects.ParticleTypes;
import appeng.core.features.registries.cell.BasicCellHandler;
import appeng.core.features.registries.cell.BasicItemCellGuiHandler;
import appeng.core.features.registries.cell.CreativeCellHandler;
import appeng.core.stats.AdvancementTriggers;
import appeng.core.stats.AeStats;
import appeng.core.sync.BasePacket;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.network.TargetPoint;
import appeng.hooks.TickHandler;
import appeng.hooks.ToolItemHook;
import appeng.me.cache.*;
import appeng.mixins.CriteriaRegisterMixin;
import appeng.recipes.handlers.*;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.RecipeType;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.World;
public abstract class AppEngBase implements AppEng {
protected AdvancementTriggers advancementTriggers;
// WTF is this doing? Should this be a ThreadLocal???
private PlayerEntity renderModeBased;
public AppEngBase() {
if (AppEng.instance() != null) {
throw new IllegalStateException();
}
AEConfig.load(FabricLoader.getInstance().getConfigDirectory());
CreativeTab.init();
// FIXME FABRIC new FacadeItemGroup(); // This call has a side-effect (adding it to the creative screen)
AeStats.register();
advancementTriggers = new AdvancementTriggers(CriteriaRegisterMixin::callRegister);
ToolItemHook.install();
Api.INSTANCE = new Api();
registerTileEntities();
registerParticleTypes();
registerRecipeTypes();
registerRecipeSerializers();
setupInternalRegistries();
}
public static void setupInternalRegistries() {
// TODO: Do not use the internal API
final Api api = Api.INSTANCE;
final IRegistryContainer registries = api.registries();
final IGridCacheRegistry gcr = registries.gridCache();
gcr.registerGridCache(ITickManager.class, TickManagerCache::new);
gcr.registerGridCache(IEnergyGrid.class, EnergyGridCache::new);
gcr.registerGridCache(IPathingGrid.class, PathGridCache::new);
gcr.registerGridCache(IStorageGrid.class, GridStorageCache::new);
// FIXME FABRIC gcr.registerGridCache(P2PCache.class, P2PCache.class);
// FIXME FABRIC gcr.registerGridCache(ISpatialCache.class, SpatialPylonCache.class);
gcr.registerGridCache(ISecurityGrid.class, SecurityCache::new);
// FIXME FABRIC gcr.registerGridCache(ICraftingGrid.class, CraftingGridCache.class);
registries.cell().addCellHandler(new BasicCellHandler());
registries.cell().addCellHandler(new CreativeCellHandler());
registries.cell().addCellGuiHandler(new BasicItemCellGuiHandler());
// FIXME FABRIC registries.cell().addCellGuiHandler(new BasicFluidCellGuiHandler());
registries.matterCannon().registerAmmoItem(api.definitions().materials().matterBall().item(), 32);
}
protected void registerParticleTypes() {
Registry.register(Registry.PARTICLE_TYPE, AppEng.makeId("charged_ore_fx"), ParticleTypes.CHARGED_ORE);
Registry.register(Registry.PARTICLE_TYPE, AppEng.makeId("crafting_fx"), ParticleTypes.CRAFTING);
Registry.register(Registry.PARTICLE_TYPE, AppEng.makeId("energy_fx"), ParticleTypes.ENERGY);
Registry.register(Registry.PARTICLE_TYPE, AppEng.makeId("lightning_arc_fx"), ParticleTypes.LIGHTNING_ARC);
Registry.register(Registry.PARTICLE_TYPE, AppEng.makeId("lightning_fx"), ParticleTypes.LIGHTNING);
Registry.register(Registry.PARTICLE_TYPE, AppEng.makeId("matter_cannon_fx"), ParticleTypes.MATTER_CANNON);
Registry.register(Registry.PARTICLE_TYPE, AppEng.makeId("vibrant_fx"), ParticleTypes.VIBRANT);
}
private void registerTileEntities() {
final ApiDefinitions definitions = Api.INSTANCE.definitions();
definitions.getRegistry().getBootstrapComponents(ITileEntityRegistrationComponent.class)
.forEachRemaining(ITileEntityRegistrationComponent::register);
}
private static <T extends Recipe<?>> RecipeType<T> registerRecipeType(String id) {
Identifier fullId = AppEng.makeId(id);
return Registry.register(Registry.RECIPE_TYPE, fullId, new AERecipeType<>(fullId));
}
private void registerRecipeTypes() {
GrinderRecipe.TYPE = registerRecipeType("grinder");
InscriberRecipe.TYPE = registerRecipeType("inscriber");
}
private void registerRecipeSerializers() {
Registry.register(Registry.RECIPE_SERIALIZER, AppEng.makeId("quartz_knife"), QuartzKnifeRecipeSerializer.INSTANCE);
Registry.register(Registry.RECIPE_SERIALIZER, AppEng.makeId("grinder"), GrinderRecipeSerializer.INSTANCE);
Registry.register(Registry.RECIPE_SERIALIZER, AppEng.makeId("inscriber"), InscriberRecipeSerializer.INSTANCE);
// FIXME FABRIC FacadeItem facadeItem = (FacadeItem) Api.INSTANCE.definitions().items().facade().item();
// FIXME FABRIC r.registerAll(DisassembleRecipe.SERIALIZER,
// FIXME FABRIC FacadeRecipe.getSerializer(facadeItem));
}
@Override
public AdvancementTriggers getAdvancementTriggers() {
return advancementTriggers;
}
@Override
public void sendToAllNearExcept(final PlayerEntity p, final double x, final double y, final double z,
final double dist, final World w, final BasePacket packet) {
if (w.isClient()) {
return;
}
NetworkHandler.instance().sendToAllAround(packet, new TargetPoint(
x, y, z, dist, w
));
}
@Override
public CableRenderMode getRenderMode() {
if (this.renderModeBased == null) {
return CableRenderMode.STANDARD;
}
return this.renderModeForPlayer(this.renderModeBased);
}
// FIXME this is some hot shit _FOR WHAT_?
@Override
public void updateRenderMode(final PlayerEntity player) {
this.renderModeBased = player;
}
protected CableRenderMode renderModeForPlayer(final PlayerEntity player) {
if (player != null) {
for (int x = 0; x < PlayerInventory.getHotbarSize(); x++) {
final ItemStack is = player.inventory.getStack(x);
// FIXME FABRIC if (!is.isEmpty() && is.getItem() instanceof NetworkToolItem) {
// FIXME FABRIC final CompoundTag c = is.getTag();
// FIXME FABRIC if (c != null && c.getBoolean("hideFacades")) {
// FIXME FABRIC return CableRenderMode.CABLE_VIEW;
// FIXME FABRIC }
// FIXME FABRIC }
}
}
return CableRenderMode.STANDARD;
}
}