Fix activation range
This commit is contained in:
parent
3c924d0934
commit
7e67d95d4d
|
@ -25,4 +25,5 @@ public org/bukkit/craftbukkit/v/inventory/CraftMetaKnowledgeBook/<init>(Lorg/buk
|
||||||
public org/bukkit/craftbukkit/v/inventory/CraftMetaTropicalFishBucket
|
public org/bukkit/craftbukkit/v/inventory/CraftMetaTropicalFishBucket
|
||||||
public org/bukkit/craftbukkit/v/inventory/CraftMetaTropicalFishBucket/<init>(Lorg/bukkit/craftbukkit/v/inventory/CraftMetaItem;)V
|
public org/bukkit/craftbukkit/v/inventory/CraftMetaTropicalFishBucket/<init>(Lorg/bukkit/craftbukkit/v/inventory/CraftMetaItem;)V
|
||||||
public org/bukkit/craftbukkit/v/inventory/CraftMetaCrossbow/<init>(Lorg/bukkit/craftbukkit/v/inventory/CraftMetaItem;)V
|
public org/bukkit/craftbukkit/v/inventory/CraftMetaCrossbow/<init>(Lorg/bukkit/craftbukkit/v/inventory/CraftMetaItem;)V
|
||||||
public org/bukkit/craftbukkit/v/inventory/CraftMetaSuspiciousStew/<init>(Lorg/bukkit/craftbukkit/v/inventory/CraftMetaItem;)V
|
public org/bukkit/craftbukkit/v/inventory/CraftMetaSuspiciousStew/<init>(Lorg/bukkit/craftbukkit/v/inventory/CraftMetaItem;)V
|
||||||
|
public org/spigotmc/ActivationRange$ActivationType/boundingBox
|
|
@ -3,4 +3,6 @@ package io.izzel.arclight.impl.bridge;
|
||||||
public interface EntityBridge_ActivationRange {
|
public interface EntityBridge_ActivationRange {
|
||||||
|
|
||||||
void bridge$inactiveTick();
|
void bridge$inactiveTick();
|
||||||
|
|
||||||
|
void bridge$updateActivation();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package io.izzel.arclight.impl.mixin.optimization.general.activationrange;
|
||||||
|
|
||||||
|
import io.izzel.arclight.impl.bridge.EntityBridge_ActivationRange;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.util.ClassInheritanceMultiMap;
|
||||||
|
import net.minecraft.world.chunk.Chunk;
|
||||||
|
import org.spigotmc.ActivationRange;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.Overwrite;
|
||||||
|
|
||||||
|
@Mixin(value = ActivationRange.class, remap = false)
|
||||||
|
public class ActivationRangeMixin {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author IzzelAliz
|
||||||
|
* @reason entityLists
|
||||||
|
*/
|
||||||
|
@Overwrite
|
||||||
|
private static void activateChunkEntities(Chunk chunk) {
|
||||||
|
for (ClassInheritanceMultiMap<Entity> entityList : chunk.entityLists) {
|
||||||
|
for (Entity entity : entityList) {
|
||||||
|
((EntityBridge_ActivationRange) entity).bridge$updateActivation();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,9 +1,11 @@
|
||||||
package io.izzel.arclight.impl.mixin.optimization.general.activationrange;
|
package io.izzel.arclight.impl.mixin.optimization.general.activationrange;
|
||||||
|
|
||||||
import io.izzel.arclight.common.bridge.world.WorldBridge;
|
import io.izzel.arclight.common.bridge.world.WorldBridge;
|
||||||
|
import io.izzel.arclight.common.mod.ArclightConstants;
|
||||||
import io.izzel.arclight.impl.bridge.EntityBridge_ActivationRange;
|
import io.izzel.arclight.impl.bridge.EntityBridge_ActivationRange;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityType;
|
import net.minecraft.entity.EntityType;
|
||||||
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import org.spigotmc.ActivationRange;
|
import org.spigotmc.ActivationRange;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
@ -20,6 +22,7 @@ public abstract class EntityMixin_ActivationRange implements EntityBridge_Activa
|
||||||
@Shadow public int ticksExisted;
|
@Shadow public int ticksExisted;
|
||||||
@Shadow public abstract void remove();
|
@Shadow public abstract void remove();
|
||||||
@Shadow public World world;
|
@Shadow public World world;
|
||||||
|
@Shadow public abstract AxisAlignedBB getBoundingBox();
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
|
||||||
public ActivationRange.ActivationType activationType;
|
public ActivationRange.ActivationType activationType;
|
||||||
|
@ -43,4 +46,15 @@ public abstract class EntityMixin_ActivationRange implements EntityBridge_Activa
|
||||||
public void bridge$inactiveTick() {
|
public void bridge$inactiveTick() {
|
||||||
this.inactiveTick();
|
this.inactiveTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void bridge$updateActivation() {
|
||||||
|
if (ArclightConstants.currentTick > this.activatedTick) {
|
||||||
|
if (this.defaultActivationState) {
|
||||||
|
this.activatedTick = ArclightConstants.currentTick;
|
||||||
|
} else if (this.activationType.boundingBox.intersects(this.getBoundingBox())) {
|
||||||
|
this.activatedTick = ArclightConstants.currentTick;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
"mixins": [
|
"mixins": [
|
||||||
"ClassInheritanceMultiMapMixin",
|
"ClassInheritanceMultiMapMixin",
|
||||||
"VoxelShapesMixin",
|
"VoxelShapesMixin",
|
||||||
|
"activationrange.ActivationRangeMixin",
|
||||||
"activationrange.EntityMixin_ActivationRange",
|
"activationrange.EntityMixin_ActivationRange",
|
||||||
"activationrange.ServerWorldMixin_ActivationRange",
|
"activationrange.ServerWorldMixin_ActivationRange",
|
||||||
"activationrange.entity.AbstractArrowEntityMixin_ActivationRange",
|
"activationrange.entity.AbstractArrowEntityMixin_ActivationRange",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user