Compare commits

..

No commits in common. "71883d93e97ab72c1f41b6bfbcbdf7fcf6ed2617" and "301d8b192a8e70cf42367bb52b1b12ce675ca457" have entirely different histories.

2 changed files with 13 additions and 65 deletions

View File

@ -1,34 +1,26 @@
package com.jenny.advancedarrows.items; package com.jenny.advancedarrows.items;
import net.minecraft.ChatFormatting;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.projectile.AbstractArrow; import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.item.ArrowItem; import net.minecraft.world.item.ArrowItem;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.List;
import static com.jenny.advancedarrows.advancedArrows.MODID;
public abstract class ArrowAbstract extends ArrowItem { public abstract class ArrowAbstract extends ArrowItem {
public ArrowAbstract(Properties properties){ public ArrowAbstract(Properties properties){
super(properties); super(properties);
} }
@Override /*@Override
public void appendHoverText(@NotNull ItemStack pStack, @NotNull TooltipContext pContext, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pTooltipFlag) { public void appendHoverText(@NotNull ItemStack pStack, @Nullable Level pLevel, @NotNull List<Component> pTooltipComponents, @NotNull TooltipFlag pIsAdvanced) {
String key = String.format("tooltip.%s.%s", MODID, this); String key = String.format("tooltip.%s.%s", MODID, this);
MutableComponent toolTip = Component.translatable(key); MutableComponent toolTip = Component.translatable(key);
if (!toolTip.getString().equals(key)) { if (!toolTip.getString().equals(key)) {
pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE)); pTooltipComponents.add(toolTip.withStyle(ChatFormatting.DARK_BLUE));
super.appendHoverText(pStack, pContext, pTooltipComponents, pTooltipFlag); super.appendHoverText(pStack, pLevel, pTooltipComponents, pIsAdvanced);
} }
} }*/
@Override @Override
@NotNull @NotNull

View File

@ -1,23 +1,12 @@
package com.jenny.advancedarrows.items; package com.jenny.advancedarrows.items;
import com.jenny.advancedarrows.entities.baseArrow; import net.minecraft.core.dispenser.ProjectileDispenseBehavior;
import com.jenny.advancedarrows.entities.entities;
import net.minecraft.core.Direction;
import net.minecraft.core.Position;
import net.minecraft.core.dispenser.BlockSource;
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.DispenserBlock; import net.minecraft.world.level.block.DispenserBlock;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.registries.RegistryObject;
import org.jetbrains.annotations.NotNull;
import static com.jenny.advancedarrows.advancedArrows.MODID; import static com.jenny.advancedarrows.advancedArrows.MODID;
@ -39,46 +28,13 @@ public class items {
public static void registerDispenser() { public static void registerDispenser() {
class ArrowDispenseBehaviour extends DefaultDispenseItemBehavior { DispenserBlock.registerBehavior(ARROW_INCENDIARY.get(), new ProjectileDispenseBehavior(items.ARROW_INCENDIARY.get()));
private final ArrowAbstract.DispenseConfig dispenseConfig; /*DispenserBlock.registerBehavior(ARROW_RICOCHET.get(), new ArrowDispenseBehaviour(entities.ARROW_RICOCHET.get()));
private final EntityType<? extends baseArrow> arrowType; DispenserBlock.registerBehavior(ARROW_KINETIC.get(), new ArrowDispenseBehaviour(entities.ARROW_KINETIC.get()));
DispenserBlock.registerBehavior(ARROW_SHARPENED.get(), new ArrowDispenseBehaviour(entities.ARROW_SHARPENED.get()));
public ArrowDispenseBehaviour(@NotNull ArrowAbstract arrowItem, EntityType<? extends baseArrow> arrow) { DispenserBlock.registerBehavior(ARROW_SWITCH.get(), new ArrowDispenseBehaviour(entities.ARROW_SWITCH.get()));
this.dispenseConfig = arrowItem.createDispenseConfig(); DispenserBlock.registerBehavior(ARROW_BREACHING.get(), new ArrowDispenseBehaviour(entities.ARROW_BREACHING.get()));
this.arrowType = arrow; DispenserBlock.registerBehavior(ARROW_HOMING.get(), new ArrowDispenseBehaviour(entities.ARROW_HOMING.get()));
} DispenserBlock.registerBehavior(ARROW_ENDER.get(), new ArrowDispenseBehaviour(entities.ARROW_ENDER.get()));*/
@Override
public @NotNull ItemStack execute(@NotNull BlockSource pBlockSource, @NotNull ItemStack pItem) {
Level level = pBlockSource.level();
Direction dir = pBlockSource.state().getValue(DispenserBlock.FACING);
Position pos = this.dispenseConfig.positionFunction().getDispensePosition(pBlockSource, dir);
AbstractArrow arrowEntity = arrowType.create(level);
assert arrowEntity != null;
arrowEntity.setPos(new Vec3(pos.x(), pos.y(), pos.z()));
arrowEntity.setDeltaMovement(dir.getStepX(), dir.getStepY(), dir.getStepZ());
level.addFreshEntity(arrowEntity);
pItem.shrink(1);
return pItem;
}
}
DispenserBlock.registerBehavior(ARROW_INCENDIARY.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_INCENDIARY.get(), entities.ARROW_INCENDIARY.get()));
DispenserBlock.registerBehavior(ARROW_RICOCHET.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_RICOCHET.get(), entities.ARROW_RICOCHET.get()));
DispenserBlock.registerBehavior(ARROW_KINETIC.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_KINETIC.get(), entities.ARROW_KINETIC.get()));
DispenserBlock.registerBehavior(ARROW_SHARPENED.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_SHARPENED.get(), entities.ARROW_SHARPENED.get()));
DispenserBlock.registerBehavior(ARROW_SWITCH.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_SWITCH.get(), entities.ARROW_SWITCH.get()));
DispenserBlock.registerBehavior(ARROW_BREACHING.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_BREACHING.get(), entities.ARROW_BREACHING.get()));
DispenserBlock.registerBehavior(ARROW_HOMING.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_HOMING.get(), entities.ARROW_HOMING.get()));
DispenserBlock.registerBehavior(ARROW_ENDER.get(), new ArrowDispenseBehaviour(
(ArrowAbstract) items.ARROW_ENDER.get(), entities.ARROW_ENDER.get()));
} }
} }