Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Temporal dilation #46

Merged
merged 9 commits into from
Jan 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/main/generated/assets/arcanuscontinuum/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@
"arcanuscontinuum.spell_component.arcanuscontinuum.electric_effect": "Electric Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.empty": "EMPTY",
"arcanuscontinuum.spell_component.arcanuscontinuum.enlarge_effect": "Enlarge Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.entangled_orb_shape": "Entangled Orb Shape",
"arcanuscontinuum.spell_component.arcanuscontinuum.feather_effect": "Feather Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.fire_effect": "Fire Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.float_effect": "Float Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.fortify_effect": "Fortify Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.growth_effect": "Growth Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.guardian_orb_shape": "Guardian Orb Shape",
"arcanuscontinuum.spell_component.arcanuscontinuum.guided_shot_shape": "Guided Shot Shape",
"arcanuscontinuum.spell_component.arcanuscontinuum.haste_effect": "Haste Effect",
"arcanuscontinuum.spell_component.arcanuscontinuum.heal_effect": "Heal Effect",
Expand Down Expand Up @@ -147,12 +147,12 @@
"config.arcanuscontinuum.enabled": "Enabled (Requires Restart)",
"config.arcanuscontinuum.enchantments_category": "Enchantments",
"config.arcanuscontinuum.enlargeEffectProperties": "Enlarge Effect",
"config.arcanuscontinuum.entangledOrbShapeProperties": "Entangled Orb Shape",
"config.arcanuscontinuum.featherEffectProperties": "Feather Effect",
"config.arcanuscontinuum.fireEffectProperties": "Fire Effect",
"config.arcanuscontinuum.floatEffectProperties": "Float Effect",
"config.arcanuscontinuum.fortifyEffectProperties": "Fortify Effect",
"config.arcanuscontinuum.growthEffectProperties": "Growth Effect",
"config.arcanuscontinuum.guardianOrbShapeProperties": "Guardian Orb Shape",
"config.arcanuscontinuum.hasteEffectProperties": "Haste Effect",
"config.arcanuscontinuum.healEffectProperties": "Heal Effect",
"config.arcanuscontinuum.iceEffectProperties": "Ice Effect",
Expand Down Expand Up @@ -240,7 +240,7 @@
"entity.arcanuscontinuum.aggressorb": "Aggressorb",
"entity.arcanuscontinuum.area_of_effect": "Area Of Effect",
"entity.arcanuscontinuum.beam": "Beam",
"entity.arcanuscontinuum.guardian_orb": "Guardian Orb",
"entity.arcanuscontinuum.entangled_orb": "Entangled Orb",
"entity.arcanuscontinuum.magic_projectile": "Magic Projectile",
"entity.arcanuscontinuum.magic_rune": "Magic Rune",
"entity.arcanuscontinuum.mana_shield": "Mana Shield",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"values": [
"arcanuscontinuum:aggressorb",
"arcanuscontinuum:area_of_effect",
"arcanuscontinuum:guardian_orb",
"arcanuscontinuum:entangled_orb",
"arcanuscontinuum:magic_rune",
"arcanuscontinuum:mana_shield",
"arcanuscontinuum:necro_skeleton",
Expand Down
28 changes: 0 additions & 28 deletions src/main/java/dev/cammiescorner/arcanuscontinuum/Arcanus.java
Original file line number Diff line number Diff line change
Expand Up @@ -124,18 +124,9 @@ public void onInitialize() {
SyncStatusEffectPacket.sendToAll(handler.player, ArcanusMobEffects.ANONYMITY.get(), handler.player.hasEffect(ArcanusMobEffects.ANONYMITY.get()));
});

ServerPlayConnectionEvents.DISCONNECT.register((handler, server) -> {
if(ArcanusComponents.areUpdatesBlocked(handler.player))
ArcanusComponents.setBlockUpdates(handler.player, false);
});

EntityTrackingEvents.START_TRACKING.register((trackedEntity, player) -> {
if(trackedEntity instanceof ServerPlayer playerEntity)
SyncStatusEffectPacket.sendTo(player, playerEntity, ArcanusMobEffects.ANONYMITY.get(), playerEntity.hasEffect(ArcanusMobEffects.ANONYMITY.get()));

// FIXME temporal dilation no worky
// if(trackedEntity instanceof LivingEntity livingEntity)
// SyncStatusEffectPacket.sendTo(player, livingEntity, ArcanusStatusEffects.TEMPORAL_DILATION.get(), livingEntity.hasStatusEffect(ArcanusStatusEffects.TEMPORAL_DILATION.get()));
});

EntitySleepEvents.STOP_SLEEPING.register((entity, sleepingPos) -> {
Expand Down Expand Up @@ -185,25 +176,6 @@ public void onInitialize() {

return InteractionResult.PASS;
});

// FIXME temporal dilation no worky
// ServerWorldTickEvents.END.register((server, world) -> {
// List<Entity> loadedEntityList = new ArrayList<>();
// world.iterateEntities().forEach(loadedEntityList::add);
// StatusEffect statusEffect = ArcanusStatusEffects.TEMPORAL_DILATION.get();
// float radius = 3;
//
// for(Entity entity : loadedEntityList) {
// if(ArcanusComponents.isTimeSlowed(entity)) {
// List<Entity> targets = world.getOtherEntities(entity, new Box(-radius, -radius, -radius, radius, radius, radius).offset(entity.getPos()), target -> target.squaredDistanceTo(entity) <= radius * radius);
//
// if(targets.stream().noneMatch(target -> target instanceof LivingEntity livingTarget && livingTarget.hasStatusEffect(statusEffect))) {
// ArcanusComponents.setSlowTime(entity, false);
// ArcanusComponents.setBlockUpdates(entity, false);
// }
// }
// }
// });
}

public static ResourceLocation id(String name) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -393,8 +393,8 @@ public static final class SmiteShapeProperties {
public static double potencyModifier = 0.5;
}

@Category(id = "guardianOrbShapeProperties", translation = "config.arcanuscontinuum.guardianOrbShapeProperties", sortOrder = 11)
public static final class GuardianOrbShapeProperties {
@Category(id = "entangledOrbShapeProperties", translation = "config.arcanuscontinuum.entangledOrbShapeProperties", sortOrder = 11)
public static final class EntangledOrbShapeProperties {
@ConfigEntry(id = "enabled", type = EntryType.BOOLEAN, translation = "config.arcanuscontinuum.enabled")
public static boolean enabled = true;

Expand Down Expand Up @@ -967,11 +967,10 @@ public static final class DangerSenseEffectProperties {
public static double baseChanceToActivate = 0.035;
}

// TODO uncomment this when we get temporal dilation working & set enabled to true
// @Category(id = "temporalDilationEffectProperties", translation = "config.arcanuscontinuum.temporalDilationEffectProperties", sortOrder = 7)
@Category(id = "temporalDilationEffectProperties", translation = "config.arcanuscontinuum.temporalDilationEffectProperties", sortOrder = 7)
public static final class TemporalDilationEffectProperties {
@ConfigEntry(id = "enabled", type = EntryType.BOOLEAN, translation = "config.arcanuscontinuum.enabled")
public static boolean enabled = false;
public static boolean enabled = true;

@ConfigEntry(id = "weight", type = EntryType.ENUM, translation = "config.arcanuscontinuum.weight")
public static Weight weight = Weight.NONE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import net.minecraft.world.entity.Entity;

public interface Targetable {
default boolean arcanuscontinuum$canBeTargeted() {
default boolean arcanus$canBeTargeted() {
if(this instanceof Entity self) {
return !PlayerHelper.isFakePlayer(self);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public static SpellGroup fromNbt(CompoundTag tag) {
String nbtId = nbtEffects.getString(i);
ResourceLocation correctedId = switch(nbtId) {
case "arcanuscontinuum:explosion_shape" -> ArcanusSpellComponents.BURST.getId();
case "arcanuscontinuum:guardian_orb_shape" -> ArcanusSpellComponents.GUARDIAN_ORB.getId();
case "arcanuscontinuum:guardian_orb_shape" -> ArcanusSpellComponents.ENTANGLED_ORB.getId();
case "arcanuscontinuum:aggressorb_shape" -> ArcanusSpellComponents.AGGRESSORB.getId();
default -> new ResourceLocation(nbtId);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
import dev.cammiescorner.arcanuscontinuum.client.gui.screens.SpellcraftScreen;
import dev.cammiescorner.arcanuscontinuum.client.models.armour.BattleMageArmourModel;
import dev.cammiescorner.arcanuscontinuum.client.models.armour.WizardArmourModel;
import dev.cammiescorner.arcanuscontinuum.client.models.entity.living.OpossumEntityModel;
import dev.cammiescorner.arcanuscontinuum.client.models.entity.living.WizardEntityModel;
import dev.cammiescorner.arcanuscontinuum.client.models.entity.living.OpossumModel;
import dev.cammiescorner.arcanuscontinuum.client.models.entity.living.WizardModel;
import dev.cammiescorner.arcanuscontinuum.client.models.entity.magic.*;
import dev.cammiescorner.arcanuscontinuum.client.models.feature.HaloModel;
import dev.cammiescorner.arcanuscontinuum.client.models.feature.SpellPatternModel;
Expand Down Expand Up @@ -102,18 +102,19 @@ public void onInitializeClient() {

EntityModelLayerRegistry.registerModelLayer(WizardArmourModel.MODEL_LAYER, WizardArmourModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(BattleMageArmourModel.MODEL_LAYER, BattleMageArmourModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(WizardEntityModel.MODEL_LAYER, WizardEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(OpossumEntityModel.MODEL_LAYER, OpossumEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(MagicLobEntityModel.MODEL_LAYER, MagicLobEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(MagicProjectileEntityModel.MODEL_LAYER, MagicProjectileEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(MagicRuneEntityModel.MODEL_LAYER, MagicRuneEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(AreaOfEffectEntityModel.MODEL_LAYER, AreaOfEffectEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(WizardModel.MODEL_LAYER, WizardModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(OpossumModel.MODEL_LAYER, OpossumModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(MagicLobModel.MODEL_LAYER, MagicLobModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(MagicProjectileModel.MODEL_LAYER, MagicProjectileModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(MagicRuneModel.MODEL_LAYER, MagicRuneModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(AreaOfEffectModel.MODEL_LAYER, AreaOfEffectModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(SpellPatternModel.MODEL_LAYER, SpellPatternModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(HaloModel.MODEL_LAYER, HaloModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(GuardianOrbEntityModel.MODEL_LAYER, GuardianOrbEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(PocketDimensionPortalEntityModel.MODEL_LAYER, PocketDimensionPortalEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(SpatialRiftEntitySigilModel.MODEL_LAYER, SpatialRiftEntitySigilModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(AggressorbEntityModel.MODEL_LAYER, AggressorbEntityModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(EntangledOrbModel.MODEL_LAYER, EntangledOrbModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(PocketDimensionPortalModel.MODEL_LAYER, PocketDimensionPortalModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(SpatialRiftSigilModel.MODEL_LAYER, SpatialRiftSigilModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(AggressorbModel.MODEL_LAYER, AggressorbModel::getTexturedModelData);
EntityModelLayerRegistry.registerModelLayer(TemporalDilationFieldModel.MODEL_LAYER, TemporalDilationFieldModel::getTexturedModelData);

EntityRendererRegistry.register(ArcanusEntities.WIZARD.get(), WizardEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.OPOSSUM.get(), OpossumEntityRenderer::new);
Expand All @@ -124,9 +125,10 @@ public void onInitializeClient() {
EntityRendererRegistry.register(ArcanusEntities.SMITE.get(), SmiteEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.MAGIC_RUNE.get(), MagicRuneEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.BEAM.get(), BeamEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.GUARDIAN_ORB.get(), GuardianOrbEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.ENTANGLED_ORB.get(), EntangledOrbEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.PORTAL.get(), PocketDimensionPortalEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.AGGRESSORB.get(), AggressorbEntityRenderer::new);
EntityRendererRegistry.register(ArcanusEntities.TEMPORAL_DILATION_FIELD.get(), TemporalDilationFieldRenderer::new);

ArmorRenderer.register(new WizardArmourRenderer(), ArcanusItems.WIZARD_HAT.get(), ArcanusItems.WIZARD_ROBES.get(), ArcanusItems.WIZARD_PANTS.get(), ArcanusItems.WIZARD_BOOTS.get());
ArmorRenderer.register(new BattleMageArmourRenderer(), ArcanusItems.BATTLE_MAGE_HELMET.get(), ArcanusItems.BATTLE_MAGE_CHESTPLATE.get(), ArcanusItems.BATTLE_MAGE_LEGGINGS.get(), ArcanusItems.BATTLE_MAGE_BOOTS.get());
Expand Down Expand Up @@ -323,36 +325,6 @@ public void onInitializeClient() {
}
}
});

// ClientEntityTickCallback.EVENT.register((entity, isPassengerTick) -> {
// if (ArcanusComponents.isTimeSlowed(entity)) {
// entity.setVelocity(entity.getVelocity().multiply(1d / 2d));
// entity.velocityModified = true;
// }
// });

// FIXME temporal dilation no worky
// ClientTickEvents.END.register(mcClient -> {
// ClientWorld world = mcClient.world;
//
// if(world != null && !mcClient.isPaused()) {
// List<Entity> loadedEntityList = new ArrayList<>();
// world.getEntities().forEach(loadedEntityList::add);
// StatusEffect statusEffect = ArcanusStatusEffects.TEMPORAL_DILATION.get();
// float radius = 3;
//
// for(Entity entity : loadedEntityList) {
// if(ArcanusComponents.isTimeSlowed(entity)) {
// List<Entity> targets = world.getOtherEntities(entity, new Box(-radius, -radius, -radius, radius, radius, radius).offset(entity.getPos()), target -> target.squaredDistanceTo(entity) <= radius * radius);
//
// if(targets.stream().noneMatch(target -> target instanceof LivingEntity livingTarget && livingTarget.hasStatusEffect(statusEffect))) {
// ArcanusComponents.setSlowTime(entity, false);
// ArcanusComponents.setBlockUpdates(entity, false);
// }
// }
// }
// }
// });
}

public static void renderBolts(LivingEntity entity, Vec3 startPos, PoseStack matrices, MultiBufferSource vertices) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import dev.cammiescorner.arcanuscontinuum.Arcanus;
import dev.cammiescorner.arcanuscontinuum.common.entities.living.OpossumEntity;
import dev.cammiescorner.arcanuscontinuum.common.entities.living.Opossum;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;
import net.minecraft.util.Mth;

public class OpossumEntityModel extends EntityModel<OpossumEntity> {
public class OpossumModel extends EntityModel<Opossum> {
public static final ModelLayerLocation MODEL_LAYER = new ModelLayerLocation(Arcanus.id("opossum"), "main");
public final ModelPart head;
public final ModelPart hat;
Expand All @@ -23,7 +23,7 @@ public class OpossumEntityModel extends EntityModel<OpossumEntity> {
public final ModelPart tailBase;
public final ModelPart tailEnd;

public OpossumEntityModel(ModelPart root) {
public OpossumModel(ModelPart root) {
this.head = root.getChild("head");
this.hat = head.getChild("hat");
this.body = root.getChild("body");
Expand Down Expand Up @@ -70,7 +70,7 @@ public void renderToBuffer(PoseStack matrices, VertexConsumer vertexConsumer, in
}

@Override
public void setupAnim(OpossumEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
public void setupAnim(Opossum entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) {
head.xRot = headPitch * 0.017453292F;
head.yRot = netHeadYaw * 0.017453292F;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import dev.cammiescorner.arcanuscontinuum.Arcanus;
import dev.cammiescorner.arcanuscontinuum.common.entities.living.WizardEntity;
import dev.cammiescorner.arcanuscontinuum.common.entities.living.Wizard;
import net.minecraft.client.model.ArmedModel;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.HeadedModel;
Expand All @@ -14,7 +14,7 @@
import net.minecraft.util.Mth;
import net.minecraft.world.entity.HumanoidArm;

public class WizardEntityModel extends EntityModel<WizardEntity> implements ArmedModel, HeadedModel {
public class WizardModel extends EntityModel<Wizard> implements ArmedModel, HeadedModel {
public static final ModelLayerLocation MODEL_LAYER = new ModelLayerLocation(Arcanus.id("wizard"), "main");
public final ModelPart head;
public final ModelPart leftArm;
Expand All @@ -23,7 +23,7 @@ public class WizardEntityModel extends EntityModel<WizardEntity> implements Arme
public final ModelPart leftLeg;
public final ModelPart rightLeg;

public WizardEntityModel(ModelPart root) {
public WizardModel(ModelPart root) {
this.head = root.getChild("head");
this.leftArm = root.getChild("leftArm");
this.rightArm = root.getChild("rightArm");
Expand Down Expand Up @@ -73,7 +73,7 @@ public void renderToBuffer(PoseStack matrices, VertexConsumer vertexConsumer, in
}

@Override
public void setupAnim(WizardEntity wizard, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
public void setupAnim(Wizard wizard, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
rightArm.xRot = Mth.cos(limbAngle * 0.6662F + (float) Math.PI) * 2.0F * limbDistance * 0.5F;
leftArm.xRot = Mth.cos(limbAngle * 0.6662F) * 2.0F * limbDistance * 0.5F;
rightArm.yRot = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import dev.cammiescorner.arcanuscontinuum.Arcanus;
import dev.cammiescorner.arcanuscontinuum.common.entities.magic.AggressorbEntity;
import dev.cammiescorner.arcanuscontinuum.common.entities.magic.Aggressorb;
import net.minecraft.client.model.EntityModel;
import net.minecraft.client.model.geom.ModelLayerLocation;
import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.*;

public class AggressorbEntityModel extends EntityModel<AggressorbEntity> {
public class AggressorbModel extends EntityModel<Aggressorb> {
public static final ModelLayerLocation MODEL_LAYER = new ModelLayerLocation(Arcanus.id("aggressorb"), "main");
public final ModelPart cube1;
public final ModelPart cube2;
public final ModelPart cube3;

public AggressorbEntityModel(ModelPart root) {
public AggressorbModel(ModelPart root) {
this.cube1 = root.getChild("cube1");
this.cube2 = root.getChild("cube2");
this.cube3 = root.getChild("cube3");
Expand All @@ -41,7 +41,7 @@ public void renderToBuffer(PoseStack matrices, VertexConsumer vertexConsumer, in
}

@Override
public void setupAnim(AggressorbEntity entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
public void setupAnim(Aggressorb entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {

}
}
Loading
Loading