Skip to content

Commit

Permalink
Reimplement dispenser behaviors
Browse files Browse the repository at this point in the history
Signed-off-by: Noaaan <[email protected]>
  • Loading branch information
Noaaan committed Jun 15, 2024
1 parent bb49ecd commit fc02cfb
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 31 deletions.
26 changes: 0 additions & 26 deletions src/main/java/nourl/mythicmetals/MythicMetals.java
Original file line number Diff line number Diff line change
Expand Up @@ -147,36 +147,10 @@ public static void registerPrometheumAttributeEvent() {
});
}

// TODO - Now determined by projectile items themselves. Override ProjectileItem#getProjectileSettings() and use builder
private void registerDispenserBehaviour() {
DispenserBlock.registerBehavior(() -> MythicTools.STAR_PLATINUM_ARROW, new ProjectileDispenserBehavior(MythicTools.STAR_PLATINUM_ARROW));
// @Override
// protected ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
// var arrow = new StarPlatinumArrowEntity(MythicEntities.STAR_PLATINUM_ARROW_ENTITY_TYPE, world);
// arrow.setPos(position.getX(), position.getY(), position.getZ());
// arrow.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
// return arrow;
// }
// });

DispenserBlock.registerBehavior(() -> MythicTools.RUNITE_ARROW, new ProjectileDispenserBehavior(MythicTools.RUNITE_ARROW));
// @Override
// private ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
// var arrow = new RuniteArrowEntity(MythicEntities.RUNITE_ARROW_ENTITY_TYPE, world);
// arrow.setPos(position.getX(), position.getY(), position.getZ());
// arrow.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
// return arrow;
// }

DispenserBlock.registerBehavior(() -> MythicTools.TIPPED_RUNITE_ARROW, new ProjectileDispenserBehavior(MythicTools.TIPPED_RUNITE_ARROW));
// @Override
// protected ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
// var arrow = new RuniteArrowEntity(MythicEntities.RUNITE_ARROW_ENTITY_TYPE, world);
// arrow.setPos(position.getX(), position.getY(), position.getZ());
// arrow.initFromStack(stack);
// arrow.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
// return arrow;
// }
}


Expand Down
8 changes: 8 additions & 0 deletions src/main/java/nourl/mythicmetals/item/RuniteArrowItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,12 @@ public ProjectileEntity createEntity(World world, Position pos, ItemStack stack,
entity.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
return entity;
}

@Override
public ProjectileItem.Settings getProjectileSettings() {
return new ProjectileItem.Settings.Builder()
.power(1.4f)
.uncertainty(5.0f)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
import net.minecraft.client.item.TooltipType;
import net.minecraft.component.DataComponentTypes;
import net.minecraft.component.type.PotionContentsComponent;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.*;
import net.minecraft.potion.Potion;
import net.minecraft.potion.Potions;
import net.minecraft.text.Text;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import java.util.List;

@Mixin(RangedWeaponItem.class)
public abstract class BowItemMixin {
public abstract class RangedWeaponItemMixin {

// Increases the velocity of Runite Arrows
// Increases the velocity of Runite Arrows when shot from Ranged Weapons
// Also decreases divergence, leading to better accuracy
@ModifyArgs(method = "shootAll", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/RangedWeaponItem;shoot(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/entity/projectile/ProjectileEntity;IFFFLnet/minecraft/entity/LivingEntity;)V"))
private void mythicmetals$modifyArrowsForRunite(Args args, World world, LivingEntity shooter, Hand hand, ItemStack stack, List<ItemStack> projectiles, float speed, float divergence, boolean critical, @Nullable LivingEntity target) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/mythicmetals.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"ApplyBonusLootFunctionMixin",
"AreaEffectCloudEntityMixin",
"ArmorItemMixin",
"BowItemMixin",
"RangedWeaponItemMixin",
"CampfireBlockMixin",
"ConduitBlockEntityMixin",
"CreeperEntityMixin",
Expand Down

0 comments on commit fc02cfb

Please sign in to comment.