Skip to content

Commit

Permalink
- 优化 Import。
Browse files Browse the repository at this point in the history
- 调整了 IC2 新能量网络的线程调度。
  • Loading branch information
KasumiNova committed Sep 27, 2024
1 parent 686a3e0 commit 7f5d0da
Show file tree
Hide file tree
Showing 50 changed files with 240 additions and 114 deletions.
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ plugins {

// Project properties
group = "github.kasuminova.stellarcore"
version = "1.4.12"
version = "1.4.13"

// Set the toolchain version to decouple the Java we run Gradle with from the Java used to compile and run the mod
java {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import github.kasuminova.stellarcore.common.CommonProxy;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.util.StellarLog;
import github.kasuminova.stellarcore.mixin.StellarCoreEarlyMixinLoader;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.*;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package github.kasuminova.stellarcore.client;

import github.kasuminova.stellarcore.client.handler.ClientEventHandler;
import github.kasuminova.stellarcore.client.pool.BakedQuadPool;
import github.kasuminova.stellarcore.client.pool.BlockFaceUVsPool;
import github.kasuminova.stellarcore.client.pool.StellarUnpackedDataPool;
import github.kasuminova.stellarcore.client.handler.ClientEventHandler;
import github.kasuminova.stellarcore.client.util.TitleUtils;
import github.kasuminova.stellarcore.common.CommonProxy;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
import com.kamefrede.rpsideas.items.components.ItemBioticSensor;
import com.llamalad7.betterchat.gui.GuiBetterChat;
import com.windanesz.ancientspellcraft.client.entity.ASFakePlayer;
import github.kasuminova.stellarcore.client.hudcaching.HUDCaching;
import github.kasuminova.stellarcore.client.pool.ResourceLocationPool;
import github.kasuminova.stellarcore.client.pool.StellarUnpackedDataPool;
import github.kasuminova.stellarcore.client.hudcaching.HUDCaching;
import github.kasuminova.stellarcore.client.util.TitleUtils;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.mod.Mods;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.util.StellarLog;
import net.minecraft.util.JsonUtils;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package github.kasuminova.stellarcore.client.resource;

import github.kasuminova.stellarcore.common.util.StellarLog;
import github.kasuminova.stellarcore.mixin.StellarCoreEarlyMixinLoader;
import github.kasuminova.stellarcore.mixin.util.StellarCoreResourcePack;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package github.kasuminova.stellarcore.client.texture;

import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.util.LargeNBTUtils;
import github.kasuminova.stellarcore.common.util.StellarLog;
import github.kasuminova.stellarcore.mixin.StellarCoreEarlyMixinLoader;
import github.kasuminova.stellarcore.mixin.minecraft.stitcher.AccessorStitcher;
import github.kasuminova.stellarcore.mixin.util.AccessorStitcherHolder;
import github.kasuminova.stellarcore.mixin.util.AccessorStitcherSlot;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package github.kasuminova.stellarcore.client.util;

import github.kasuminova.stellarcore.client.model.ParallelModelLoaderAsyncBlackList;
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;

import java.util.Optional;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package github.kasuminova.stellarcore.client.util;

import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.client.hitokoto.HitokotoAPI;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.util.StellarLog;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package github.kasuminova.stellarcore.common.bugfix;

import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.util.ContainerTECache;
import github.kasuminova.stellarcore.common.util.StellarLog;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.cleanroommc.configanytime.ConfigAnytime;
import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.client.pool.StellarUnpackedDataPool;
import github.kasuminova.stellarcore.client.model.ParallelModelLoaderAsyncBlackList;
import github.kasuminova.stellarcore.client.pool.StellarUnpackedDataPool;
import net.minecraftforge.common.config.Config;
import net.minecraftforge.common.config.ConfigManager;
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package github.kasuminova.stellarcore.common.integration.fluxnetworks;

import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.common.mod.Mods;
import github.kasuminova.stellarcore.common.util.StellarLog;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.Optional;
import sonar.fluxnetworks.common.handler.TileEntityHandler;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package github.kasuminova.stellarcore.common.util;

import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import net.minecraft.inventory.Container;
import net.minecraft.tileentity.TileEntity;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ public static HashedItemStack ofTag(final ItemStack stack) {
}

public static HashedItemStack ofTagUnsafe(final ItemStack stack) {
NBTTagCompound tag = stack.getTagCompound();
boolean hasTag = tag != null && !tag.isEmpty();
int hash;
int damage = stack.isItemStackDamageable() ? stack.getItemDamage() : stack.getHasSubtypes() ? stack.getMetadata() : 0;
final NBTTagCompound tag = stack.getTagCompound();
final boolean hasTag = tag != null && !tag.isEmpty();
final int hash;
final int damage = stack.isItemStackDamageable() ? stack.getItemDamage() : stack.getHasSubtypes() ? stack.getMetadata() : 0;
if (hasTag) {
hash = Objects.hash(stack.getItem(), damage, tag);
final int combinedHashCode = Long.hashCode(System.identityHashCode(stack.getItem()) & 0xFFFFFFFFL | (damage & 0xFFFFFFFFL) << 32);
final int tagHashCode = tag.hashCode();
hash = tagHashCode != 0 ? combinedHashCode ^ tagHashCode : combinedHashCode;
} else {
hash = Objects.hash(stack.getItem(), damage);
hash = Long.hashCode(System.identityHashCode(stack.getItem()) & 0xFFFFFFFFL | (damage & 0xFFFFFFFFL) << 32);
}
return new HashedItemStack(stack, hash, damage, hasTag);
}
Expand All @@ -37,8 +39,9 @@ public static HashedItemStack ofMeta(final ItemStack stack) {
}

public static HashedItemStack ofMetaUnsafe(final ItemStack stack) {
int metadata = stack.getMetadata();
return new HashedItemStack(stack, Objects.hash(stack.getItem(), metadata), metadata, false);
final int damage = stack.isItemStackDamageable() ? stack.getItemDamage() : stack.getHasSubtypes() ? stack.getMetadata() : 0;
final int hash = Long.hashCode(System.identityHashCode(stack.getItem()) & 0xFFFFFFFFL | (damage & 0xFFFFFFFFL) << 32);
return new HashedItemStack(stack, hash, damage, false);
}

public static String stackToString(final ItemStack stack) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package github.kasuminova.stellarcore.common.world;

import com.github.bsideup.jabel.Desugar;
import github.kasuminova.stellarcore.common.util.StellarLog;
import it.unimi.dsi.fastutil.ints.IntList;
import it.unimi.dsi.fastutil.ints.IntListIterator;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
Expand Down Expand Up @@ -90,7 +89,7 @@ private static List<RandomTickTask> getRandomTickData(Chunk chunk, TickData tick
List<RandomTickTask> enqueuedData = new ObjectArrayList<>(lcgList.size());
IntListIterator it = lcgList.iterator();
while (it.hasNext()) {
int lcg = it.nextInt();
int lcg = it.nextInt() >> 2;
int x = lcg & 15;
int y = lcg >> 16 & 15;
int z = lcg >> 8 & 15;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package github.kasuminova.stellarcore.mixin.advancedrocketry;

import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.util.StellarLog;
import net.minecraftforge.fml.common.FMLCommonHandler;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package github.kasuminova.stellarcore.mixin.advancedrocketry;

import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import net.minecraft.item.ItemStack;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package github.kasuminova.stellarcore.mixin.ancientspellcraft;

import com.windanesz.ancientspellcraft.client.entity.ASFakePlayer;
import github.kasuminova.stellarcore.StellarCore;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.common.util.StellarLog;
import net.minecraft.client.Minecraft;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@

import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import hellfirepvp.astralsorcery.common.constellation.perk.tree.nodes.key.KeyChainMining;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package github.kasuminova.stellarcore.mixin.astralsorcery;

import hellfirepvp.astralsorcery.common.util.ParticleEffectWatcher;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import java.util.Set;

@Mixin(value = ParticleEffectWatcher.class, remap = false)
public class MixinParticleEffectWatcher {

@Unique
private final Int2ObjectMap<Set<BlockPos>> stellar_core$worldWatch = new Int2ObjectOpenHashMap<>();

@Inject(method = "tick", at = @At("HEAD"), cancellable = true)
public void injectTick(final TickEvent.Type type, final Object[] context, final CallbackInfo ci) {
stellar_core$worldWatch.computeIfAbsent(((World) context[0]).provider.getDimension(), (key) -> new ObjectOpenHashSet<>()).clear();
ci.cancel();
}

@Inject(method = "mayFire", at = @At("HEAD"), cancellable = true)
public void injectMayFire(final World world, final BlockPos pos, final CallbackInfoReturnable<Boolean> cir) {
int dimId = world.provider.getDimension();
Set<BlockPos> worldPos = stellar_core$worldWatch.computeIfAbsent(dimId, (key) -> new ObjectOpenHashSet<>());
cir.setReturnValue(!worldPos.contains(pos) && worldPos.add(pos));
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package github.kasuminova.stellarcore.mixin.astralsorcery;

import com.google.common.collect.Lists;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import hellfirepvp.astralsorcery.common.constellation.perk.AbstractPerk;
import hellfirepvp.astralsorcery.common.constellation.perk.PerkConverter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import morph.avaritia.tile.TileBase;
import net.minecraft.tileentity.TileEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package github.kasuminova.stellarcore.mixin.cfm;

import com.mrcrayfish.furniture.tileentity.TileEntityKitchenCounter;
import com.mrcrayfish.furniture.tileentity.TileEntityKitchenCounterDrawer;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import net.minecraft.block.state.IBlockState;
import net.minecraft.tileentity.TileEntity;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import com.brandon3055.draconicevolution.blocks.tileentity.TileCraftingInjector;
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import github.kasuminova.stellarcore.mixin.util.ITileCraftingInjector;
import github.kasuminova.stellarcore.mixin.util.IFusionCraftingCore;
import github.kasuminova.stellarcore.mixin.util.ITileCraftingInjector;
import net.minecraft.tileentity.TileEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import javax.annotation.Nonnull;
import java.util.Collection;
import java.util.List;

@Mixin(TileConduitBundle.class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;

import javax.annotation.Nullable;
import java.util.List;

@Mixin(targets = "ic2.core.energy.grid.GridChange", remap = false)
Expand All @@ -16,6 +17,7 @@ public interface AccessorGridChange {
@Accessor
IEnergyTile getIoTile();

@Nullable
@Accessor
List<IEnergyTile> getSubTiles();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import ic2.core.item.BaseElectricItem;
import ic2.core.item.ItemIC2;
import ic2.core.ref.ItemName;
import ic2.core.util.StackUtil;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,7 @@
package github.kasuminova.stellarcore.mixin.ic2;

import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
import ic2.core.block.BlockTileEntity;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

import java.util.Collections;
import java.util.List;

@SuppressWarnings("MethodMayBeStatic")
@Mixin(BlockTileEntity.class)
Expand Down
Loading

0 comments on commit 7f5d0da

Please sign in to comment.