Skip to content

Commit

Permalink
Fixed #9, #14, #16, #18, bumped version to 1.18.2-1.1.6
Browse files Browse the repository at this point in the history
  • Loading branch information
RaymondBlaze committed Aug 17, 2022
1 parent 14fef24 commit 94b6b59
Show file tree
Hide file tree
Showing 64 changed files with 664 additions and 398 deletions.
4 changes: 2 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ org.gradle.daemon=false
# Mod Properties
maven_group=limonblaze.originsclasses
archives_base_name=origins-classes-forge
mod_version=1.1.5.1
mod_version=1.1.6
mod_id=origins_classes
mod_author=LimonBlaze
mc_requirements=[1.18.2,1.19)
forge_requirements=[40.1.14,)
forge_requirements=[40.1,)
origins_requirements=[1.18.2-1.4.1,)

# Dependencies
Expand Down
11 changes: 0 additions & 11 deletions src/main/java/limonblaze/originsclasses/OriginsClasses.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@

import limonblaze.originsclasses.client.OriginsClassesClient;
import limonblaze.originsclasses.common.OriginsClassesCommon;
import limonblaze.originsclasses.common.registry.OriginsClassesActions;
import limonblaze.originsclasses.common.registry.OriginsClassesAttributes;
import limonblaze.originsclasses.common.registry.OriginsClassesConditions;
import limonblaze.originsclasses.common.registry.OriginsClassesPowers;
import limonblaze.originsclasses.util.ClientConfig;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.EntityType;
import net.minecraftforge.event.entity.EntityAttributeModificationEvent;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
Expand All @@ -27,14 +23,11 @@ public class OriginsClasses {
public OriginsClasses() {
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, ClientConfig.SPEC);
IEventBus modBus = FMLJavaModLoadingContext.get().getModEventBus();
OriginsClassesAttributes.ATTRIBUTES.register(modBus);
OriginsClassesActions.ENTITY_ACTIONS.register(modBus);
OriginsClassesConditions.BIENTITY_CONDITIONS.register(modBus);
OriginsClassesConditions.ENTITY_CONDITIONS.register(modBus);
OriginsClassesConditions.BLOCK_CONDITIONS.register(modBus);
OriginsClassesConditions.ITEM_CONDITIONS.register(modBus);
OriginsClassesPowers.POWER_FACTORIES.register(modBus);
modBus.addListener(this::attachAttributes);
modBus.addListener(OriginsClassesCommon::setup);
modBus.addListener(OriginsClassesClient::setup);
LOGGER.info("Origins:Classes " + ModLoadingContext.get().getActiveContainer().getModInfo().getVersion() + " has initialized. Time for work!");
Expand All @@ -48,9 +41,5 @@ public static ResourceLocation legacyIdentifier(String path) {
return new ResourceLocation(LEGACY_MODID, path);
}

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

}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package limonblaze.originsclasses.common.apoli.configuration;

import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import io.github.edwinmindcraft.apoli.api.IDynamicFeatureConfiguration;
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemAction;
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemCondition;
import io.github.edwinmindcraft.calio.api.network.CalioCodecHelper;
import limonblaze.originsclasses.common.event.ModifyCraftResultEvent;
import limonblaze.originsclasses.util.OriginsClassesDataTypes;
import net.minecraft.core.Holder;

import java.util.EnumSet;

public record ModifyCraftResultConfiguration(EnumSet<ModifyCraftResultEvent.CraftingResultType> craftingResultTypes,
Holder<ConfiguredItemCondition<?, ?>> itemCondition,
Holder<ConfiguredItemAction<?, ?>> itemAction) implements IDynamicFeatureConfiguration {

public static final Codec<ModifyCraftResultConfiguration> CODEC = RecordCodecBuilder.create(instance -> instance.group(
CalioCodecHelper.optionalField(OriginsClassesDataTypes.CRAFTING_RESULT_TYPE_SET, "crafting_result_type", EnumSet.allOf(ModifyCraftResultEvent.CraftingResultType.class))
.forGetter(ModifyCraftResultConfiguration::craftingResultTypes),
ConfiguredItemCondition.optional("item_condition")
.forGetter(ModifyCraftResultConfiguration::itemCondition),
ConfiguredItemAction.optional("item_action")
.forGetter(ModifyCraftResultConfiguration::itemAction)
).apply(instance, ModifyCraftResultConfiguration::new));

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package limonblaze.originsclasses.common.apoli.power;

import io.github.edwinmindcraft.apoli.api.component.IPowerContainer;
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemAction;
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredItemCondition;
import io.github.edwinmindcraft.apoli.api.power.configuration.ConfiguredPower;
import io.github.edwinmindcraft.apoli.api.power.factory.PowerFactory;
import io.github.edwinmindcraft.apoli.common.power.ModifyCraftingPower;
import limonblaze.originsclasses.common.apoli.configuration.ModifyCraftResultConfiguration;
import limonblaze.originsclasses.common.event.ModifyCraftResultEvent;
import limonblaze.originsclasses.common.registry.OriginsClassesPowers;
import net.minecraft.core.Holder;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import org.apache.commons.lang3.mutable.Mutable;
import org.apache.commons.lang3.mutable.MutableObject;

import java.util.List;

public class ModifyCraftResultPower extends PowerFactory<ModifyCraftResultConfiguration> {

public ModifyCraftResultPower() {
super(ModifyCraftResultConfiguration.CODEC);
}

public static boolean check(
ConfiguredPower<ModifyCraftResultConfiguration, ModifyCraftResultPower> cp,
Level level, ItemStack stack, ModifyCraftResultEvent.CraftingResultType type) {
return cp.getConfiguration().craftingResultTypes().contains(type) &&
ConfiguredItemCondition.check(cp.getConfiguration().itemCondition(), level, stack);
}

public static ItemStack modify(Player player, ItemStack stack, ModifyCraftResultEvent.CraftingResultType type) {
Mutable<ItemStack> mutable = new MutableObject<>(stack);
IPowerContainer.getPowers(player, OriginsClassesPowers.MODIFY_CRAFT_RESULT.get())
.stream()
.filter(cp -> check(cp, player.level, stack, type))
.map(cp -> cp.getConfiguration().itemAction())
.forEach(action -> ConfiguredItemAction.execute(action, player.level, mutable));
return mutable.getValue();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,13 @@ public static boolean check(ConfiguredPower<ModifyCraftedFoodConfiguration, Modi
return cp.getConfiguration().craftingResultTypes().contains(type) && ConfiguredItemCondition.check(cp.getConfiguration().itemCondition(), level, stack);
}

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

}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import net.minecraftforge.event.entity.player.PlayerEvent;

public class ModifyCraftResultEvent extends PlayerEvent {
private final ItemStack crafted;
private ItemStack crafted;
private final CraftingResultType type;

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

public void setCrafted(ItemStack crafted) {
this.crafted = crafted;
}

public ItemStack getCrafted() {
return crafted;
}
Expand All @@ -23,7 +27,7 @@ public CraftingResultType getType() {
}

public enum CraftingResultType {
CRAFTING, SMELTING, COOKING_POT, SKILLET
CRAFTING, SMELTING, COOKING_POT, SKILLET, TETRA
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,11 @@
import io.github.edwinmindcraft.apoli.common.power.ModifyFoodPower;
import limonblaze.originsclasses.common.OriginsClassesCommon;
import limonblaze.originsclasses.common.apoli.power.ActionOnTamePower;
import limonblaze.originsclasses.common.apoli.power.ModifyCraftResultPower;
import limonblaze.originsclasses.common.apoli.power.ModifyCraftedFoodPower;
import limonblaze.originsclasses.common.apoli.power.MultiMinePower;
import limonblaze.originsclasses.common.data.tag.OriginsClassesEntityTypeTags;
import limonblaze.originsclasses.common.network.S2CInfiniteTrader;
import limonblaze.originsclasses.common.registry.OriginsClassesAttributes;
import limonblaze.originsclasses.common.registry.OriginsClassesPowers;
import limonblaze.originsclasses.common.tag.OriginsClassesEntityTypeTags;
import limonblaze.originsclasses.mixin.accessor.LivingEntityAccessor;
import limonblaze.originsclasses.util.*;
import net.minecraft.ChatFormatting;
Expand All @@ -28,22 +27,19 @@
import net.minecraft.world.entity.OwnableEntity;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.PotionItem;
import net.minecraft.world.item.TippedArrowItem;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.BonemealableBlock;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.event.enchanting.EnchantmentLevelSetEvent;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.living.AnimalTameEvent;
import net.minecraftforge.event.entity.living.BabyEntitySpawnEvent;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.entity.living.PotionEvent;
import net.minecraftforge.event.entity.player.BonemealEvent;
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.eventbus.api.Event;
import net.minecraftforge.eventbus.api.EventPriority;
Expand Down Expand Up @@ -138,21 +134,6 @@ public static void onInteractEntity(PlayerInteractEvent.EntityInteract event) {
}
}

//Multimine & MiningSpeed
@SubscribeEvent(priority = EventPriority.HIGHEST)
public static void onBreakSpeed(PlayerEvent.BreakSpeed event) {
double multiplier = event.getPlayer().getAttributeValue(OriginsClassesAttributes.MINING_SPEED.get());
event.setNewSpeed(MultiMinePower.modifyBreakingSpeed((float) (event.getNewSpeed() * multiplier), event.getPlayer(), event.getPos(), event.getState()));
}

//ProjectileStrength
@SubscribeEvent
public static void onArrowShoots(EntityJoinWorldEvent event) {
if(event.getEntity() instanceof AbstractArrow arrow && arrow.getOwner() instanceof LivingEntity owner) {
arrow.setBaseDamage(arrow.getBaseDamage() * owner.getAttributeValue(OriginsClassesAttributes.PROJECTILE_STRENGTH.get()));
}
}

//ModifyEntityLoot
@SubscribeEvent
public static void onLivingDrops(LivingDropsEvent event) {
Expand All @@ -165,14 +146,16 @@ public static void onLivingDrops(LivingDropsEvent event) {
}
}

//ModifyCraftedFood
//ModifyCraftedFood, ModifyCraftResult
@SubscribeEvent
public static void onFoodCrafted(ModifyCraftResultEvent event) {
public static void onItemCrafted(ModifyCraftResultEvent event) {
Player player = event.getPlayer();
ItemStack stack = event.getCrafted();
if(stack.getFoodProperties(player) != null) {
ModifyCraftedFoodPower.modify(player, stack, event.getType());
stack = ModifyCraftedFoodPower.modify(player, stack, event.getType());
}
stack = ModifyCraftResultPower.modify(player, stack, event.getType());
event.setCrafted(stack);
}

@SubscribeEvent
Expand Down

This file was deleted.

This file was deleted.

Loading

0 comments on commit 94b6b59

Please sign in to comment.