Skip to content

Commit fc02cfb

Browse files
committed
Reimplement dispenser behaviors
Signed-off-by: Noaaan <[email protected]>
1 parent bb49ecd commit fc02cfb

File tree

5 files changed

+12
-31
lines changed

5 files changed

+12
-31
lines changed

src/main/java/nourl/mythicmetals/MythicMetals.java

-26
Original file line numberDiff line numberDiff line change
@@ -147,36 +147,10 @@ public static void registerPrometheumAttributeEvent() {
147147
});
148148
}
149149

150-
// TODO - Now determined by projectile items themselves. Override ProjectileItem#getProjectileSettings() and use builder
151150
private void registerDispenserBehaviour() {
152151
DispenserBlock.registerBehavior(() -> MythicTools.STAR_PLATINUM_ARROW, new ProjectileDispenserBehavior(MythicTools.STAR_PLATINUM_ARROW));
153-
// @Override
154-
// protected ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
155-
// var arrow = new StarPlatinumArrowEntity(MythicEntities.STAR_PLATINUM_ARROW_ENTITY_TYPE, world);
156-
// arrow.setPos(position.getX(), position.getY(), position.getZ());
157-
// arrow.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
158-
// return arrow;
159-
// }
160-
// });
161-
162152
DispenserBlock.registerBehavior(() -> MythicTools.RUNITE_ARROW, new ProjectileDispenserBehavior(MythicTools.RUNITE_ARROW));
163-
// @Override
164-
// private ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
165-
// var arrow = new RuniteArrowEntity(MythicEntities.RUNITE_ARROW_ENTITY_TYPE, world);
166-
// arrow.setPos(position.getX(), position.getY(), position.getZ());
167-
// arrow.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
168-
// return arrow;
169-
// }
170-
171153
DispenserBlock.registerBehavior(() -> MythicTools.TIPPED_RUNITE_ARROW, new ProjectileDispenserBehavior(MythicTools.TIPPED_RUNITE_ARROW));
172-
// @Override
173-
// protected ProjectileEntity createProjectile(World world, Position position, ItemStack stack) {
174-
// var arrow = new RuniteArrowEntity(MythicEntities.RUNITE_ARROW_ENTITY_TYPE, world);
175-
// arrow.setPos(position.getX(), position.getY(), position.getZ());
176-
// arrow.initFromStack(stack);
177-
// arrow.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
178-
// return arrow;
179-
// }
180154
}
181155

182156

src/main/java/nourl/mythicmetals/item/RuniteArrowItem.java

+8
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,12 @@ public ProjectileEntity createEntity(World world, Position pos, ItemStack stack,
2525
entity.pickupType = PersistentProjectileEntity.PickupPermission.ALLOWED;
2626
return entity;
2727
}
28+
29+
@Override
30+
public ProjectileItem.Settings getProjectileSettings() {
31+
return new ProjectileItem.Settings.Builder()
32+
.power(1.4f)
33+
.uncertainty(5.0f)
34+
.build();
35+
}
2836
}

src/main/java/nourl/mythicmetals/item/TippedRuniteArrowItem.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
import net.minecraft.client.item.TooltipType;
44
import net.minecraft.component.DataComponentTypes;
55
import net.minecraft.component.type.PotionContentsComponent;
6-
import net.minecraft.item.Item;
7-
import net.minecraft.item.ItemStack;
6+
import net.minecraft.item.*;
87
import net.minecraft.potion.Potion;
98
import net.minecraft.potion.Potions;
109
import net.minecraft.text.Text;

src/main/java/nourl/mythicmetals/mixin/BowItemMixin.java src/main/java/nourl/mythicmetals/mixin/RangedWeaponItemMixin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
import java.util.List;
1515

1616
@Mixin(RangedWeaponItem.class)
17-
public abstract class BowItemMixin {
17+
public abstract class RangedWeaponItemMixin {
1818

19-
// Increases the velocity of Runite Arrows
19+
// Increases the velocity of Runite Arrows when shot from Ranged Weapons
2020
// Also decreases divergence, leading to better accuracy
2121
@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"))
2222
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) {

src/main/resources/mythicmetals.mixins.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"ApplyBonusLootFunctionMixin",
1212
"AreaEffectCloudEntityMixin",
1313
"ArmorItemMixin",
14-
"BowItemMixin",
14+
"RangedWeaponItemMixin",
1515
"CampfireBlockMixin",
1616
"ConduitBlockEntityMixin",
1717
"CreeperEntityMixin",

0 commit comments

Comments
 (0)