Skip to content

Commit 94b6b59

Browse files
committed
Fixed #9, #14, #16, #18, bumped version to 1.18.2-1.1.6
1 parent 14fef24 commit 94b6b59

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+664
-398
lines changed

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ org.gradle.daemon=false
1212
# Mod Properties
1313
maven_group=limonblaze.originsclasses
1414
archives_base_name=origins-classes-forge
15-
mod_version=1.1.5.1
15+
mod_version=1.1.6
1616
mod_id=origins_classes
1717
mod_author=LimonBlaze
1818
mc_requirements=[1.18.2,1.19)
19-
forge_requirements=[40.1.14,)
19+
forge_requirements=[40.1,)
2020
origins_requirements=[1.18.2-1.4.1,)
2121

2222
# Dependencies

src/main/java/limonblaze/originsclasses/OriginsClasses.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@
22

33
import limonblaze.originsclasses.client.OriginsClassesClient;
44
import limonblaze.originsclasses.common.OriginsClassesCommon;
5-
import limonblaze.originsclasses.common.registry.OriginsClassesActions;
6-
import limonblaze.originsclasses.common.registry.OriginsClassesAttributes;
75
import limonblaze.originsclasses.common.registry.OriginsClassesConditions;
86
import limonblaze.originsclasses.common.registry.OriginsClassesPowers;
97
import limonblaze.originsclasses.util.ClientConfig;
108
import net.minecraft.resources.ResourceLocation;
11-
import net.minecraft.world.entity.EntityType;
12-
import net.minecraftforge.event.entity.EntityAttributeModificationEvent;
139
import net.minecraftforge.eventbus.api.IEventBus;
1410
import net.minecraftforge.fml.ModLoadingContext;
1511
import net.minecraftforge.fml.common.Mod;
@@ -27,14 +23,11 @@ public class OriginsClasses {
2723
public OriginsClasses() {
2824
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.SPEC);
2925
IEventBus modBus = FMLJavaModLoadingContext.get().getModEventBus();
30-
OriginsClassesAttributes.ATTRIBUTES.register(modBus);
31-
OriginsClassesActions.ENTITY_ACTIONS.register(modBus);
3226
OriginsClassesConditions.BIENTITY_CONDITIONS.register(modBus);
3327
OriginsClassesConditions.ENTITY_CONDITIONS.register(modBus);
3428
OriginsClassesConditions.BLOCK_CONDITIONS.register(modBus);
3529
OriginsClassesConditions.ITEM_CONDITIONS.register(modBus);
3630
OriginsClassesPowers.POWER_FACTORIES.register(modBus);
37-
modBus.addListener(this::attachAttributes);
3831
modBus.addListener(OriginsClassesCommon::setup);
3932
modBus.addListener(OriginsClassesClient::setup);
4033
LOGGER.info("Origins:Classes " + ModLoadingContext.get().getActiveContainer().getModInfo().getVersion() + " has initialized. Time for work!");
@@ -48,9 +41,5 @@ public static ResourceLocation legacyIdentifier(String path) {
4841
return new ResourceLocation(LEGACY_MODID, path);
4942
}
5043

51-
public void attachAttributes(EntityAttributeModificationEvent event) {
52-
event.getTypes().forEach(type -> event.add(type, OriginsClassesAttributes.PROJECTILE_STRENGTH.get()));
53-
event.add(EntityType.PLAYER, OriginsClassesAttributes.MINING_SPEED.get());
54-
}
5544

5645
}

src/main/java/limonblaze/originsclasses/common/apoli/action/entity/AttributeAction.java

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package limonblaze.originsclasses.common.apoli.configuration;
2+
3+
import com.mojang.serialization.Codec;
4+
import com.mojang.serialization.codecs.RecordCodecBuilder;
5+
import io.github.edwinmindcraft.apoli.api.IDynamicFeatureConfiguration;
6+
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemAction;
7+
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemCondition;
8+
import io.github.edwinmindcraft.calio.api.network.CalioCodecHelper;
9+
import limonblaze.originsclasses.common.event.ModifyCraftResultEvent;
10+
import limonblaze.originsclasses.util.OriginsClassesDataTypes;
11+
import net.minecraft.core.Holder;
12+
13+
import java.util.EnumSet;
14+
15+
public record ModifyCraftResultConfiguration(EnumSet<ModifyCraftResultEvent.CraftingResultType> craftingResultTypes,
16+
Holder<ConfiguredItemCondition<?, ?>> itemCondition,
17+
Holder<ConfiguredItemAction<?, ?>> itemAction) implements IDynamicFeatureConfiguration {
18+
19+
public static final Codec<ModifyCraftResultConfiguration> CODEC = RecordCodecBuilder.create(instance -> instance.group(
20+
CalioCodecHelper.optionalField(OriginsClassesDataTypes.CRAFTING_RESULT_TYPE_SET, "crafting_result_type", EnumSet.allOf(ModifyCraftResultEvent.CraftingResultType.class))
21+
.forGetter(ModifyCraftResultConfiguration::craftingResultTypes),
22+
ConfiguredItemCondition.optional("item_condition")
23+
.forGetter(ModifyCraftResultConfiguration::itemCondition),
24+
ConfiguredItemAction.optional("item_action")
25+
.forGetter(ModifyCraftResultConfiguration::itemAction)
26+
).apply(instance, ModifyCraftResultConfiguration::new));
27+
28+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package limonblaze.originsclasses.common.apoli.power;
2+
3+
import io.github.edwinmindcraft.apoli.api.component.IPowerContainer;
4+
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemAction;
5+
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemCondition;
6+
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredPower;
7+
import io.github.edwinmindcraft.apoli.api.power.factory.PowerFactory;
8+
import io.github.edwinmindcraft.apoli.common.power.ModifyCraftingPower;
9+
import limonblaze.originsclasses.common.apoli.configuration.ModifyCraftResultConfiguration;
10+
import limonblaze.originsclasses.common.event.ModifyCraftResultEvent;
11+
import limonblaze.originsclasses.common.registry.OriginsClassesPowers;
12+
import net.minecraft.core.Holder;
13+
import net.minecraft.world.entity.player.Player;
14+
import net.minecraft.world.item.ItemStack;
15+
import net.minecraft.world.level.Level;
16+
import org.apache.commons.lang3.mutable.Mutable;
17+
import org.apache.commons.lang3.mutable.MutableObject;
18+
19+
import java.util.List;
20+
21+
public class ModifyCraftResultPower extends PowerFactory<ModifyCraftResultConfiguration> {
22+
23+
public ModifyCraftResultPower() {
24+
super(ModifyCraftResultConfiguration.CODEC);
25+
}
26+
27+
public static boolean check(
28+
ConfiguredPower<ModifyCraftResultConfiguration, ModifyCraftResultPower> cp,
29+
Level level, ItemStack stack, ModifyCraftResultEvent.CraftingResultType type) {
30+
return cp.getConfiguration().craftingResultTypes().contains(type) &&
31+
ConfiguredItemCondition.check(cp.getConfiguration().itemCondition(), level, stack);
32+
}
33+
34+
public static ItemStack modify(Player player, ItemStack stack, ModifyCraftResultEvent.CraftingResultType type) {
35+
Mutable<ItemStack> mutable = new MutableObject<>(stack);
36+
IPowerContainer.getPowers(player, OriginsClassesPowers.MODIFY_CRAFT_RESULT.get())
37+
.stream()
38+
.filter(cp -> check(cp, player.level, stack, type))
39+
.map(cp -> cp.getConfiguration().itemAction())
40+
.forEach(action -> ConfiguredItemAction.execute(action, player.level, mutable));
41+
return mutable.getValue();
42+
}
43+
44+
}

src/main/java/limonblaze/originsclasses/common/apoli/power/ModifyCraftedFoodPower.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,13 @@ public static boolean check(ConfiguredPower<ModifyCraftedFoodConfiguration, Modi
2424
return cp.getConfiguration().craftingResultTypes().contains(type) && ConfiguredItemCondition.check(cp.getConfiguration().itemCondition(), level, stack);
2525
}
2626

27-
public static void modify(Player player, ItemStack stack, ModifyCraftResultEvent.CraftingResultType type) {
27+
public static ItemStack modify(Player player, ItemStack stack, ModifyCraftResultEvent.CraftingResultType type) {
2828
ListTag tag = new ListTag();
2929
IPowerContainer.getPowers(player, OriginsClassesPowers.MODIFY_CRAFTED_FOOD.get()).stream()
3030
.filter(cp -> check(cp, player.level, stack, type))
3131
.forEach(cp -> tag.add(StringTag.valueOf(cp.getConfiguration().modifyFoodPower().power().toString())));
3232
if(!tag.isEmpty()) stack.getOrCreateTagElement(NbtUtils.ORIGINS_CLASSES).put(NbtUtils.MODIFY_FOOD_POWERS, tag);
33+
return stack;
3334
}
3435

3536
}

src/main/java/limonblaze/originsclasses/common/data/tag/OriginsClassesItemTags.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/main/java/limonblaze/originsclasses/common/event/ModifyCraftResultEvent.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import net.minecraftforge.event.entity.player.PlayerEvent;
66

77
public class ModifyCraftResultEvent extends PlayerEvent {
8-
private final ItemStack crafted;
8+
private ItemStack crafted;
99
private final CraftingResultType type;
1010

1111
public ModifyCraftResultEvent(Player player, ItemStack crafted, CraftingResultType type) {
@@ -14,6 +14,10 @@ public ModifyCraftResultEvent(Player player, ItemStack crafted, CraftingResultTy
1414
this.type = type;
1515
}
1616

17+
public void setCrafted(ItemStack crafted) {
18+
this.crafted = crafted;
19+
}
20+
1721
public ItemStack getCrafted() {
1822
return crafted;
1923
}
@@ -23,7 +27,7 @@ public CraftingResultType getType() {
2327
}
2428

2529
public enum CraftingResultType {
26-
CRAFTING, SMELTING, COOKING_POT, SKILLET
30+
CRAFTING, SMELTING, COOKING_POT, SKILLET, TETRA
2731
}
2832

2933
}

src/main/java/limonblaze/originsclasses/common/event/PowerEventHandler.java

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
import io.github.edwinmindcraft.apoli.common.power.ModifyFoodPower;
77
import limonblaze.originsclasses.common.OriginsClassesCommon;
88
import limonblaze.originsclasses.common.apoli.power.ActionOnTamePower;
9+
import limonblaze.originsclasses.common.apoli.power.ModifyCraftResultPower;
910
import limonblaze.originsclasses.common.apoli.power.ModifyCraftedFoodPower;
10-
import limonblaze.originsclasses.common.apoli.power.MultiMinePower;
11-
import limonblaze.originsclasses.common.data.tag.OriginsClassesEntityTypeTags;
1211
import limonblaze.originsclasses.common.network.S2CInfiniteTrader;
13-
import limonblaze.originsclasses.common.registry.OriginsClassesAttributes;
1412
import limonblaze.originsclasses.common.registry.OriginsClassesPowers;
13+
import limonblaze.originsclasses.common.tag.OriginsClassesEntityTypeTags;
1514
import limonblaze.originsclasses.mixin.accessor.LivingEntityAccessor;
1615
import limonblaze.originsclasses.util.*;
1716
import net.minecraft.ChatFormatting;
@@ -28,22 +27,19 @@
2827
import net.minecraft.world.entity.OwnableEntity;
2928
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
3029
import net.minecraft.world.entity.player.Player;
31-
import net.minecraft.world.entity.projectile.AbstractArrow;
3230
import net.minecraft.world.item.ItemStack;
3331
import net.minecraft.world.item.PotionItem;
3432
import net.minecraft.world.item.TippedArrowItem;
3533
import net.minecraft.world.level.Level;
3634
import net.minecraft.world.level.block.BonemealableBlock;
3735
import net.minecraft.world.level.block.state.BlockState;
3836
import net.minecraftforge.event.enchanting.EnchantmentLevelSetEvent;
39-
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
4037
import net.minecraftforge.event.entity.living.AnimalTameEvent;
4138
import net.minecraftforge.event.entity.living.BabyEntitySpawnEvent;
4239
import net.minecraftforge.event.entity.living.LivingDropsEvent;
4340
import net.minecraftforge.event.entity.living.PotionEvent;
4441
import net.minecraftforge.event.entity.player.BonemealEvent;
4542
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
46-
import net.minecraftforge.event.entity.player.PlayerEvent;
4743
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
4844
import net.minecraftforge.eventbus.api.Event;
4945
import net.minecraftforge.eventbus.api.EventPriority;
@@ -138,21 +134,6 @@ public static void onInteractEntity(PlayerInteractEvent.EntityInteract event) {
138134
}
139135
}
140136

141-
//Multimine & MiningSpeed
142-
@SubscribeEvent(priority = EventPriority.HIGHEST)
143-
public static void onBreakSpeed(PlayerEvent.BreakSpeed event) {
144-
double multiplier = event.getPlayer().getAttributeValue(OriginsClassesAttributes.MINING_SPEED.get());
145-
event.setNewSpeed(MultiMinePower.modifyBreakingSpeed((float) (event.getNewSpeed() * multiplier), event.getPlayer(), event.getPos(), event.getState()));
146-
}
147-
148-
//ProjectileStrength
149-
@SubscribeEvent
150-
public static void onArrowShoots(EntityJoinWorldEvent event) {
151-
if(event.getEntity() instanceof AbstractArrow arrow && arrow.getOwner() instanceof LivingEntity owner) {
152-
arrow.setBaseDamage(arrow.getBaseDamage() * owner.getAttributeValue(OriginsClassesAttributes.PROJECTILE_STRENGTH.get()));
153-
}
154-
}
155-
156137
//ModifyEntityLoot
157138
@SubscribeEvent
158139
public static void onLivingDrops(LivingDropsEvent event) {
@@ -165,14 +146,16 @@ public static void onLivingDrops(LivingDropsEvent event) {
165146
}
166147
}
167148

168-
//ModifyCraftedFood
149+
//ModifyCraftedFood, ModifyCraftResult
169150
@SubscribeEvent
170-
public static void onFoodCrafted(ModifyCraftResultEvent event) {
151+
public static void onItemCrafted(ModifyCraftResultEvent event) {
171152
Player player = event.getPlayer();
172153
ItemStack stack = event.getCrafted();
173154
if(stack.getFoodProperties(player) != null) {
174-
ModifyCraftedFoodPower.modify(player, stack, event.getType());
155+
stack = ModifyCraftedFoodPower.modify(player, stack, event.getType());
175156
}
157+
stack = ModifyCraftResultPower.modify(player, stack, event.getType());
158+
event.setCrafted(stack);
176159
}
177160

178161
@SubscribeEvent

src/main/java/limonblaze/originsclasses/common/registry/OriginsClassesActions.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/main/java/limonblaze/originsclasses/common/registry/OriginsClassesAttributes.java

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)