Skip to content
This repository has been archived by the owner on Jun 18, 2024. It is now read-only.

Commit

Permalink
fish and iron perfume was added
Browse files Browse the repository at this point in the history
  • Loading branch information
anviaan committed Jul 13, 2023
1 parent 9800478 commit a6370f8
Show file tree
Hide file tree
Showing 21 changed files with 229 additions and 16 deletions.
25 changes: 21 additions & 4 deletions src/main/java/net/anvian/perfume/item/ModItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;

@SuppressWarnings("unused")
public class ModItems {
private static final int setMaxDamage = 25;

Expand All @@ -31,26 +32,42 @@ public class ModItems {
.maxCount(1)
.maxDamage(setMaxDamage)
.group(ModItemGroup.PERFUME_GROUP)
, ModStatusEffects.CarrotEffect, 3000, 0
, ModStatusEffects.CARROT_EFFECT, 3000, 0
));

public static final Item WHEAT_PERFUME = registerItem("wheat_perfume", new PerfumeBottle(
new FabricItemSettings()
.maxCount(1)
.maxDamage(setMaxDamage)
.group(ModItemGroup.PERFUME_GROUP)
, ModStatusEffects.WheatEffect, 3000, 0
, ModStatusEffects.WHEAT_EFFECT, 3000, 0
));

public static final Item FLOWER_PERFUME = registerItem("flower_perfume", new PerfumeBottle(
new FabricItemSettings()
.maxCount(1)
.maxDamage(setMaxDamage)
.group(ModItemGroup.PERFUME_GROUP)
, ModStatusEffects.FlowerEffect, 3000, 0
, ModStatusEffects.FLOWER_EFFECT, 3000, 0
));

public static Item registerItem(String name, Item item){
public static final Item FISH_PERFUME = registerItem("fish_perfume", new PerfumeBottle(
new FabricItemSettings()
.maxCount(1)
.maxDamage(setMaxDamage)
.group(ModItemGroup.PERFUME_GROUP)
, ModStatusEffects.FISH_EFFECT, 3000, 0
));

public static final Item IRON_PERFUME = registerItem("iron_perfume", new PerfumeBottle(
new FabricItemSettings()
.maxCount(1)
.maxDamage(setMaxDamage)
.group(ModItemGroup.PERFUME_GROUP)
, ModStatusEffects.IRON_EFFECT, 3000, 0
));

private static Item registerItem(String name, Item item){
return Registry.register(Registry.ITEM, new Identifier(PerfumeMod.MOD_ID, name), item);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ protected BeeInitGoalMixin(EntityType<? extends AnimalEntity> entityType, World

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(3,new ModTemptGoal(this, 1.25, ModStatusEffects.FlowerEffect, false));
this.goalSelector.add(3,new ModTemptGoal(this, 1.25, ModStatusEffects.FLOWER_EFFECT, false));
}

@Nullable
Expand Down
35 changes: 35 additions & 0 deletions src/main/java/net/anvian/perfume/mixin/CatInitGoalMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package net.anvian.perfume.mixin;

import net.anvian.perfume.custom.ModTemptGoal;
import net.anvian.perfume.statuseffect.ModStatusEffects;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.CatEntity;
import net.minecraft.entity.passive.PassiveEntity;
import net.minecraft.entity.passive.TameableEntity;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(CatEntity.class)
public class CatInitGoalMixin extends TameableEntity {
protected CatInitGoalMixin(EntityType<? extends TameableEntity> entityType, World world) {
super(entityType, world);
}

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(4,new ModTemptGoal(this, 0.6, ModStatusEffects.FISH_EFFECT, false));
}

@Nullable
@Override
public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) {
return null;
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ protected CowInitGoalMixin(EntityType<? extends AnimalEntity> entityType, World

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(3,new ModTemptGoal(this, 1.25, ModStatusEffects.WheatEffect, false));
this.goalSelector.add(3,new ModTemptGoal(this, 1.25, ModStatusEffects.WHEAT_EFFECT, false));
}

@Nullable
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/net/anvian/perfume/mixin/IronInitGoalMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package net.anvian.perfume.mixin;

import net.anvian.perfume.custom.ModTemptGoal;
import net.anvian.perfume.statuseffect.ModStatusEffects;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.GolemEntity;
import net.minecraft.entity.passive.IronGolemEntity;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(IronGolemEntity.class)
public class IronInitGoalMixin extends GolemEntity {
protected IronInitGoalMixin(EntityType<? extends GolemEntity> entityType, World world) {
super(entityType, world);
}

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(4,new ModTemptGoal(this, 1.0, ModStatusEffects.IRON_EFFECT, false));
}
}
25 changes: 25 additions & 0 deletions src/main/java/net/anvian/perfume/mixin/LlamaInitGoalMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package net.anvian.perfume.mixin;

import net.anvian.perfume.custom.ModTemptGoal;
import net.anvian.perfume.statuseffect.ModStatusEffects;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.AbstractDonkeyEntity;
import net.minecraft.entity.passive.LlamaEntity;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(LlamaEntity.class)
public class LlamaInitGoalMixin extends AbstractDonkeyEntity {
protected LlamaInitGoalMixin(EntityType<? extends AbstractDonkeyEntity> entityType, World world) {
super(entityType, world);
}

@Inject(method = "initGoals()V", at = @At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(5, new ModTemptGoal(this, 1.25, ModStatusEffects.WHEAT_EFFECT, false));
}

}
34 changes: 34 additions & 0 deletions src/main/java/net/anvian/perfume/mixin/OcelotInitGoalMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package net.anvian.perfume.mixin;

import net.anvian.perfume.custom.ModTemptGoal;
import net.anvian.perfume.statuseffect.ModStatusEffects;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.passive.OcelotEntity;
import net.minecraft.entity.passive.PassiveEntity;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.world.World;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(OcelotEntity.class)
public class OcelotInitGoalMixin extends AnimalEntity{

protected OcelotInitGoalMixin(EntityType<? extends AnimalEntity> entityType, World world) {
super(entityType, world);
}

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(3,new ModTemptGoal(this, 0.6, ModStatusEffects.FISH_EFFECT, false));
}

@Nullable
@Override
public PassiveEntity createChild(ServerWorld world, PassiveEntity entity) {
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ protected PigInitGoalMixin(EntityType<? extends AnimalEntity> entityType, World

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(3,new ModTemptGoal(this, 1.1, ModStatusEffects.CarrotEffect, false));
this.goalSelector.add(3,new ModTemptGoal(this, 1.1, ModStatusEffects.CARROT_EFFECT, false));
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ protected RabbitInitGoalMixin(EntityType<? extends AnimalEntity> entityType, Wor

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(3,new ModTemptGoal(this, 1.0, ModStatusEffects.CarrotEffect, false));
this.goalSelector.add(3,new ModTemptGoal(this, 1.0, ModStatusEffects.CARROT_EFFECT, false));
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ protected SheepInitGoalMixin(EntityType<? extends AnimalEntity> entityType, Worl

@Inject(method = "initGoals()V", at=@At("HEAD"))
private void init(CallbackInfo ci){
this.goalSelector.add(3,new ModTemptGoal(this, 1.1, ModStatusEffects.WheatEffect, false));
this.goalSelector.add(3,new ModTemptGoal(this, 1.1, ModStatusEffects.WHEAT_EFFECT, false));
}

@Nullable
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package net.anvian.perfume.statuseffect;

import net.anvian.perfume.PerfumeMod;
import net.anvian.perfume.statuseffect.effect.CarrotEffect;
import net.anvian.perfume.statuseffect.effect.FlowerEffect;
import net.anvian.perfume.statuseffect.effect.WheatEffect;
import net.anvian.perfume.statuseffect.effect.*;
import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.util.Identifier;
import net.minecraft.util.registry.Registry;

public class ModStatusEffects {
public static final StatusEffect CarrotEffect = registerStatusEffects("carrot_effect", new CarrotEffect());
public static final StatusEffect WheatEffect = registerStatusEffects("wheat_effect", new WheatEffect());
public static final StatusEffect FlowerEffect = registerStatusEffects("flower_effect", new FlowerEffect());
public static final StatusEffect CARROT_EFFECT = registerStatusEffects("carrot_effect", new CarrotEffect());
public static final StatusEffect WHEAT_EFFECT = registerStatusEffects("wheat_effect", new WheatEffect());
public static final StatusEffect FLOWER_EFFECT = registerStatusEffects("flower_effect", new FlowerEffect());
public static final StatusEffect IRON_EFFECT = registerStatusEffects("iron_effect", new IronEffect());
public static final StatusEffect FISH_EFFECT = registerStatusEffects("fish_effect", new FishEffect());

public static StatusEffect registerStatusEffects(String name, StatusEffect statusEffect){
private static StatusEffect registerStatusEffects(String name, StatusEffect statusEffect){
return Registry.register(Registry.STATUS_EFFECT, new Identifier(PerfumeMod.MOD_ID, name), statusEffect);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package net.anvian.perfume.statuseffect.effect;

import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory;

public class FishEffect extends StatusEffect {
public FishEffect() {
super(StatusEffectCategory.BENEFICIAL, 0x60856b);
}

@Override
public boolean canApplyUpdateEffect(int duration, int amplifier) {
return duration % 7 == 0;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package net.anvian.perfume.statuseffect.effect;

import net.minecraft.entity.effect.StatusEffect;
import net.minecraft.entity.effect.StatusEffectCategory;

public class IronEffect extends StatusEffect {
public IronEffect() {
super(StatusEffectCategory.BENEFICIAL, 0xa3a8ab);
}

@Override
public boolean canApplyUpdateEffect(int duration, int amplifier) {
return duration % 7 == 0;
}
}
4 changes: 4 additions & 0 deletions src/main/resources/assets/perfume/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
"effect.perfume.wheat_effect": "Wheat perfume",
"item.perfume.flower_perfume" : "Flower perfume",
"effect.perfume.flower_effect": "Flower perfume",
"item.perfume.fish_perfume" : "Fish perfume",
"effect.perfume.fish_effect": "Fish perfume",
"item.perfume.iron_perfume" : "Iron perfume",
"effect.perfume.iron_effect": "Iron perfume",

"subtitles.perfume.perfume_sound": "Sound of perfume"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "perfume:item/fish_perfume"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "perfume:item/iron_perfume"
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"type": "perfume:mesa",
"ingredients": [
{
"item": "perfume:water_perfume_bottle"
},
{
"tag": "minecraft:fishes"
}
],
"output": {
"item": "perfume:fish_perfume"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"type": "perfume:mesa",
"ingredients": [
{
"item": "perfume:water_perfume_bottle"
},
{
"item": "minecraft:iron_ingot"
}
],
"output": {
"item": "perfume:iron_perfume"
}
}
4 changes: 4 additions & 0 deletions src/main/resources/perfume.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@
"compatibilityLevel": "JAVA_17",
"mixins": [
"BeeInitGoalMixin",
"CatInitGoalMixin",
"CowInitGoalMixin",
"IronInitGoalMixin",
"LlamaInitGoalMixin",
"OcelotInitGoalMixin",
"PigInitGoalMixin",
"RabbitInitGoalMixin",
"SheepInitGoalMixin"
Expand Down

0 comments on commit a6370f8

Please sign in to comment.