Push some experimental new features
|
@ -16,7 +16,7 @@ plugins {
|
|||
apply plugin: 'net.minecraftforge.gradle'
|
||||
|
||||
|
||||
version = '1.1.0'
|
||||
version = '1.1.1'
|
||||
group = 'dev.zontreck.shapedaionresources' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
archivesBaseName = 'shapedaionresources'
|
||||
|
||||
|
|
|
@ -1,30 +1,65 @@
|
|||
package dev.zontreck.shapedaionresources;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.mojang.logging.LogUtils;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.player.Inventory;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.ModLoadingContext;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.config.ModConfig;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
||||
import net.minecraftforge.event.server.ServerStartingEvent;
|
||||
import net.minecraftforge.event.world.BiomeLoadingEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import dev.zontreck.shapedaionresources.blocks.ModBlocks;
|
||||
import dev.zontreck.shapedaionresources.configs.SARServerConfig;
|
||||
import dev.zontreck.shapedaionresources.items.ModItems;
|
||||
import dev.zontreck.shapedaionresources.ore.OreGenerator;
|
||||
|
||||
// The value here should match an entry in the META-INF/mods.toml file
|
||||
@Mod("shapedaionresources")
|
||||
public class ShapedAionResources
|
||||
{
|
||||
// Directly reference a slf4j logger
|
||||
public static final Logger LOGGER = LogUtils.getLogger();
|
||||
public static final String FIRST_JOIN_TAG = "dev.zontreck.shapedaionresources.firstjoin";
|
||||
public static final String MOD_ID = "shapedaionresources";
|
||||
|
||||
|
||||
public ShapedAionResources()
|
||||
{
|
||||
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
// Register the setup method for modloading
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
|
||||
bus.addListener(this::setup);
|
||||
|
||||
ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, SARServerConfig.SPEC, "aion-rss-server.toml");
|
||||
|
||||
|
||||
|
||||
// Register ourselves for server and other game events we are interested in
|
||||
|
||||
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
|
||||
|
||||
ModBlocks.register(bus);
|
||||
ModItems.register(bus);
|
||||
}
|
||||
|
||||
private void setup(final FMLCommonSetupEvent event)
|
||||
|
@ -39,5 +74,49 @@ public class ShapedAionResources
|
|||
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void biomeLoadingEvent(final BiomeLoadingEvent ev){
|
||||
//OreGenerator.generateOres(ev);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onSpawn(EntityJoinWorldEvent ev){
|
||||
Level w = ev.getWorld();
|
||||
if(w.isClientSide){
|
||||
return;
|
||||
}
|
||||
|
||||
Entity e = ev.getEntity();
|
||||
if(!(e instanceof Player))return;
|
||||
|
||||
Player p = (Player)e;
|
||||
|
||||
if(firstJoin(p)){
|
||||
// Do first join actions here
|
||||
|
||||
/*for (Entry<String,Integer> ent : SARServerConfig.INITIAL_ITEMS_TO_GIVE_ON_FIRST_JOIN.get().entrySet()) {
|
||||
|
||||
Inventory i = p.getInventory();
|
||||
|
||||
|
||||
}*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean firstJoin(Player p){
|
||||
|
||||
Set<String> tags = p.getTags();
|
||||
|
||||
if(tags.contains(ShapedAionResources.FIRST_JOIN_TAG)){
|
||||
return false;
|
||||
}
|
||||
|
||||
//p.addTag(ShapedAionResources.FIRST_JOIN_TAG);
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package dev.zontreck.shapedaionresources.blocks;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import dev.zontreck.shapedaionresources.ShapedAionResources;
|
||||
import dev.zontreck.shapedaionresources.items.ModItems;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.OreBlock;
|
||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class ModBlocks {
|
||||
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, ShapedAionResources.MOD_ID);
|
||||
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ShapedAionResources.MOD_ID);
|
||||
|
||||
public static void register(IEventBus bus){
|
||||
BLOCKS.register(bus);
|
||||
ITEMS.register(bus);
|
||||
ShapedAionResources.LOGGER.info("Registering all blocks...");
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static final RegistryObject<Block> AION_ORE_BLOCK = BLOCKS.register("aion_ore_block", () -> new OreBlock(BlockBehaviour.Properties.of(Material.METAL)));
|
||||
|
||||
public static final RegistryObject<Item> AION_ORE_BLOCK_I = ITEMS.register("aion_ore_block", () -> new BlockItem(AION_ORE_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
|
||||
|
||||
public static final RegistryObject<Block> AION_BLOCK = BLOCKS.register("aion_block", () -> new Block(BlockBehaviour.Properties.of(Material.HEAVY_METAL).explosionResistance(10000).requiresCorrectToolForDrops().strength(9f)));
|
||||
|
||||
public static final RegistryObject<Item> AION_BLOCK_I = ITEMS.register("aion_block", () -> new BlockItem(AION_BLOCK.get(), new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package dev.zontreck.shapedaionresources.configs;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraftforge.common.ForgeConfigSpec;
|
||||
|
||||
public class SARServerConfig {
|
||||
public static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder();
|
||||
public static final ForgeConfigSpec SPEC;
|
||||
|
||||
public static final ForgeConfigSpec.ConfigValue<List<ItemStack>> INITIAL_ITEMS_TO_GIVE_ON_FIRST_JOIN;
|
||||
|
||||
|
||||
static {
|
||||
List<ItemStack> defaults = new ArrayList<ItemStack>();
|
||||
|
||||
BUILDER.push("Configuration for Shaped Aion Cubes Resources");
|
||||
INITIAL_ITEMS_TO_GIVE_ON_FIRST_JOIN = BUILDER.comment("What items, identified by modid:item, to give to a brand new user on the server").define("New Player Gear", defaults);
|
||||
|
||||
BUILDER.pop();
|
||||
SPEC=BUILDER.build();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package dev.zontreck.shapedaionresources.items;
|
||||
|
||||
import dev.zontreck.shapedaionresources.ShapedAionResources;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class ModItems {
|
||||
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ShapedAionResources.MOD_ID);
|
||||
|
||||
public static final RegistryObject<Item> AION_FRAGMENT = ITEMS.register("aion_fragment", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
|
||||
|
||||
public static final RegistryObject<Item> AION_CRYSTAL = ITEMS.register("aion_crystal", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
|
||||
|
||||
|
||||
public static final RegistryObject<Item> AION_RAW_ORE = ITEMS.register("aion_ore", () -> new Item(new Item.Properties().tab(CreativeModeTab.TAB_MISC)));
|
||||
|
||||
|
||||
public static void register(IEventBus bus){
|
||||
ITEMS.register(bus);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package dev.zontreck.shapedaionresources.ore;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.world.level.levelgen.placement.BiomeFilter;
|
||||
import net.minecraft.world.level.levelgen.placement.CountPlacement;
|
||||
import net.minecraft.world.level.levelgen.placement.InSquarePlacement;
|
||||
import net.minecraft.world.level.levelgen.placement.PlacementModifier;
|
||||
import net.minecraft.world.level.levelgen.placement.RarityFilter;
|
||||
|
||||
public class ModdedOrePlacement {
|
||||
public static List<PlacementModifier> orePlacement(PlacementModifier p_195347_, PlacementModifier p_195348_) {
|
||||
return List.of(p_195347_, InSquarePlacement.spread(), p_195348_, BiomeFilter.biome());
|
||||
}
|
||||
|
||||
public static List<PlacementModifier> commonOrePlacement(int p_195344_, PlacementModifier p_195345_) {
|
||||
return orePlacement(CountPlacement.of(p_195344_), p_195345_);
|
||||
}
|
||||
|
||||
public static List<PlacementModifier> rareOrePlacement(int p_195350_, PlacementModifier p_195351_) {
|
||||
return orePlacement(RarityFilter.onAverageOnceEvery(p_195350_), p_195351_);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package dev.zontreck.shapedaionresources.ore;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import dev.zontreck.shapedaionresources.blocks.ModBlocks;
|
||||
import net.minecraft.core.Holder;
|
||||
import net.minecraft.data.worldgen.features.FeatureUtils;
|
||||
import net.minecraft.data.worldgen.features.OreFeatures;
|
||||
import net.minecraft.data.worldgen.placement.PlacementUtils;
|
||||
import net.minecraft.data.worldgen.placement.VegetationPlacements;
|
||||
import net.minecraft.world.level.levelgen.GenerationStep;
|
||||
import net.minecraft.world.level.levelgen.VerticalAnchor;
|
||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||
import net.minecraft.world.level.levelgen.feature.OreFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration;
|
||||
import net.minecraft.world.level.levelgen.placement.HeightRangePlacement;
|
||||
import net.minecraft.world.level.levelgen.placement.PlacedFeature;
|
||||
import net.minecraftforge.event.world.BiomeLoadingEvent;
|
||||
|
||||
public class OreGenerator {
|
||||
public static final List<ConfiguredFeature<OreConfiguration, OreFeature>> OVERWORLD_ORES = new ArrayList();
|
||||
|
||||
|
||||
public static final List<OreConfiguration.TargetBlockState> OVERWORLD_AION_ORE = List.of(OreConfiguration.target(OreFeatures.STONE_ORE_REPLACEABLES, ModBlocks.AION_ORE_BLOCK.get().defaultBlockState()), OreConfiguration.target(OreFeatures.DEEPSLATE_ORE_REPLACEABLES, ModBlocks.AION_ORE_BLOCK.get().defaultBlockState()));
|
||||
|
||||
public static final Holder<ConfiguredFeature<OreConfiguration, ?>> AION_ORE = FeatureUtils.register("aion_ore_block", Feature.ORE, new OreConfiguration(OVERWORLD_AION_ORE, 9));
|
||||
|
||||
|
||||
//public static final Holder<PlacedFeature> EBONY_PLACED = PlacementUtils.register("ebony_placed",
|
||||
//ModConfiguredFeatures.EBONY_SPAWN, VegetationPlacements.treePlacement(
|
||||
//PlacementUtils.countExtra(3, 0.1f, 2)));
|
||||
|
||||
//public static final Holder<PlacedFeature> PINK_ROSE_PLACED = PlacementUtils.register("pink_rose_placed",
|
||||
//ModConfiguredFeatures.PINK_ROSE, RarityFilter.onAverageOnceEvery(16),
|
||||
//InSquarePlacement.spread(), PlacementUtils.HEIGHTMAP, BiomeFilter.biome());
|
||||
|
||||
public static final Holder<PlacedFeature> AION_ORE_PLACED = PlacementUtils.register("aion_ore_placed",
|
||||
AION_ORE, ModdedOrePlacement.commonOrePlacement(6, // VeinsPerChunk
|
||||
HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-40), VerticalAnchor.aboveBottom(40))));
|
||||
|
||||
public static void generateOres(final BiomeLoadingEvent ev){
|
||||
List<Holder<PlacedFeature>> base = ev.getGeneration().getFeatures(GenerationStep.Decoration.UNDERGROUND_ORES);
|
||||
|
||||
base.add(AION_ORE_PLACED);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "shapedaionresources:block/aion_block"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "shapedaionresources:block/aion_ore_block"
|
||||
}
|
||||
}
|
||||
}
|
BIN
src/main/resources/assets/shapedaionresources/icon.png
Normal file
After Width: | Height: | Size: 173 KiB |
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"itemGroup.refinedfabric.materials": "RefinedFabric Materials",
|
||||
"itemGroup.refinedfabric.tools": "RefinedFabric Utilities",
|
||||
"itemGroup.refinedfabric.blocks": "RefinedFabric Blocks",
|
||||
|
||||
"item.shapedaionresources.aion_ore": "Raw Aion Ore",
|
||||
"item.shapedaionresources.aion_crystal": "Aion Crystal",
|
||||
"item.shapedaionresources.aion_crystal.levels": "Stored XP: ",
|
||||
"item.shapedaionresources.aion_crystal.empty": "* Crystal Is Empty *",
|
||||
"item.shapedaionresources.aion_crystal.need_repair": "Aion Crystal must now be repaired",
|
||||
"item.shapedaionresources.aion_crystal.durability": "Durability: ",
|
||||
"item.shapedaionresources.aion_fragment": "Fragmented Aion Crystal",
|
||||
|
||||
"block.shapedaionresources.aion_ore_block": "Aion Ore",
|
||||
"block.shapedaionresources.aion_block": "Aion Block"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "shapedaionresources:block/aion_block"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "block/cube_all",
|
||||
"textures": {
|
||||
"all": "shapedaionresources:block/aion_ore_block"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "shapedaionresources:block/aion_block"
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "shapedaionresources:item/aion_crystal"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "shapedaionresources:item/aion_fragment"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "item/generated",
|
||||
"textures": {
|
||||
"layer0": "shapedaionresources:item/aion_ore"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "shapedaionresources:block/aion_ore_block"
|
||||
}
|
After Width: | Height: | Size: 493 B |
After Width: | Height: | Size: 718 B |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 294 B |
After Width: | Height: | Size: 263 B |
After Width: | Height: | Size: 449 B |
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"shapedaionresources:aion_ore_block"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"shapedaionresources:aion_ore_block"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"origins": [
|
||||
"shapedaionresources:flutterling"
|
||||
],
|
||||
"enabled": true,
|
||||
"allow_random": true
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "shapedaionresources:aion_block"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"name": "main",
|
||||
"rolls": 1.0,
|
||||
"bonus_rolls": 0.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:alternatives",
|
||||
"children": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:match_tool",
|
||||
"predicate": {
|
||||
"enchantments": [
|
||||
{
|
||||
"enchantment": "minecraft:silk_touch",
|
||||
"levels": {
|
||||
"min": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "shapedaionresources:aion_ore_block"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:apply_bonus",
|
||||
"enchantment": "minecraft:fortune",
|
||||
"formula": "minecraft:ore_drops"
|
||||
},
|
||||
{
|
||||
"function": "minecraft:explosion_decay"
|
||||
}
|
||||
],
|
||||
"name": "shapedaionresources:aion_ore"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "Flutterling",
|
||||
"description": "Flutterlings are tiny, moth-like fae creatures that love living in the hollows of trees. While they are weak and fragile, they can easily climb or fly out of danger when faced with it.",
|
||||
"powers": [
|
||||
"flutterling:flutter",
|
||||
"flutterling:night_vision",
|
||||
"flutterling:flight",
|
||||
"flutterling:nocturnal",
|
||||
"flutterling:soundeffect",
|
||||
"flutterling:armor_allergy",
|
||||
"flutterling:armor_weight",
|
||||
"flutterling:fae_weakness",
|
||||
"flutterling:soul_lantern_allergy",
|
||||
"flutterling:tiny_fae",
|
||||
"extraorigins:nimble",
|
||||
"extraorigins:small_appetite",
|
||||
"origins:climbing"
|
||||
],
|
||||
"icon": {
|
||||
"item": "minecraft:feather"
|
||||
},
|
||||
"impact": 3
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
"name": "Armor allergy",
|
||||
"description": "You are very small, and struggle to wear armor without being weighed down. Additionally, you are allergic to pure iron armor, and cannot wear it.",
|
||||
"hidden": true,
|
||||
"type": "origins:conditioned_restrict_armor",
|
||||
"head": {
|
||||
"type": "origins:ingredient",
|
||||
"ingredient": {
|
||||
"item": "minecraft:iron_helmet"
|
||||
}
|
||||
},
|
||||
"chest": {
|
||||
"type": "origins:ingredient",
|
||||
"ingredient": {
|
||||
"item": "minecraft:iron_chestplate"
|
||||
}
|
||||
},
|
||||
"legs": {
|
||||
"type": "origins:ingredient",
|
||||
"ingredient": {
|
||||
"item": "minecraft:iron_leggings"
|
||||
}
|
||||
},
|
||||
"feet": {
|
||||
"type": "origins:ingredient",
|
||||
"ingredient": {
|
||||
"item": "minecraft:iron_boots"
|
||||
}
|
||||
},
|
||||
"tick_rate": 80
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"name": "Armor Difficulties",
|
||||
"description": "You are very small, and struggle to wear armor without being weighed down. Additionally, you are allergic to pure iron armor, and cannot wear it.",
|
||||
"type": "origins:conditioned_restrict_armor",
|
||||
"head": {
|
||||
"type": "origins:armor_value",
|
||||
"comparison": ">",
|
||||
"compare_to": 2
|
||||
},
|
||||
"chest": {
|
||||
"type": "origins:armor_value",
|
||||
"comparison": ">",
|
||||
"compare_to": 6
|
||||
},
|
||||
"legs": {
|
||||
"type": "origins:armor_value",
|
||||
"comparison": ">",
|
||||
"compare_to": 5
|
||||
},
|
||||
"feet": {
|
||||
"type": "origins:armor_value",
|
||||
"comparison": ">",
|
||||
"compare_to": 2
|
||||
},
|
||||
"tick_rate": 80
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "Fae Weakness",
|
||||
"description": "Your fae nature means that you are allergic to some variants of iron. The heat of fire within lanterns make you feel weak.",
|
||||
"condition": {
|
||||
"type": "origins:block_in_radius",
|
||||
"block_condition": {
|
||||
"type": "origins:block",
|
||||
"block": "minecraft:lantern"
|
||||
},
|
||||
"radius": 1,
|
||||
"shape": "cube",
|
||||
"comparison": ">=",
|
||||
"compare_to": 1
|
||||
},
|
||||
"type": "origins:action_over_time",
|
||||
"interval": 3,
|
||||
"entity_action": {
|
||||
"type": "origins:apply_effect",
|
||||
"effect": {
|
||||
"effect": "minecraft:mining_fatigue",
|
||||
"duration": 10,
|
||||
"amplifier": 1,
|
||||
"show_particles": false,
|
||||
"show_icon": false
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"name": "Weak Wings",
|
||||
"description": "While you can glide like the best of them, you can only fly with some effort, fluttering to slowly gain altitude while gliding.",
|
||||
"type": "origins:elytra_flight",
|
||||
"render_elytra": true,
|
||||
"texture_location": "flutterling:textures/entity/elytra.png"
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "flutter",
|
||||
"hidden": true,
|
||||
"type": "origins:active_self",
|
||||
"entity_action": {
|
||||
"type": "origins:add_velocity",
|
||||
"y": 0.3,
|
||||
"space": "world",
|
||||
"client": true,
|
||||
"server": true
|
||||
},
|
||||
"cooldown": 10,
|
||||
"hud_render": {
|
||||
"should_render": false
|
||||
},
|
||||
"key": {
|
||||
"key": "key.origins.secondary_active",
|
||||
"continuous": true
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"name": "Night Vision",
|
||||
"description": "Your big eyes have adapted to see within dark spaces.",
|
||||
"hidden": true,
|
||||
"type": "origins:night_vision",
|
||||
"strength": 1
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "Nocturnal",
|
||||
"description": "You are naturally nocturnal, and find yourself weaker when in the extreme brightness of sunlight. On the other hand, your adaptation to darkness means that you can see clearly even in pitch black.",
|
||||
"condition": {
|
||||
"type": "origins:and",
|
||||
"conditions": [
|
||||
{
|
||||
"type": "origins:exposed_to_sun"
|
||||
}
|
||||
]
|
||||
},
|
||||
"type": "origins:stacking_status_effect",
|
||||
"min_stacks": 0,
|
||||
"max_stacks": 2,
|
||||
"duration_per_stack": 30,
|
||||
"tick_rate": 10,
|
||||
"effects": [
|
||||
{
|
||||
"effect": "minecraft:weakness",
|
||||
"duration": 100,
|
||||
"amplifier": 0,
|
||||
"is_ambient": true,
|
||||
"show_particles": false,
|
||||
"show_icon": true
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"name": "lantern allergy",
|
||||
"description": "Your fae nature means that you are allergic to some variants of iron. The heat of fire within lanterns make you feel weak.",
|
||||
"hidden": true,
|
||||
"condition": {
|
||||
"type": "origins:block_in_radius",
|
||||
"block_condition": {
|
||||
"type": "origins:block",
|
||||
"block": "minecraft:soul_lantern"
|
||||
},
|
||||
"radius": 1,
|
||||
"shape": "cube",
|
||||
"comparison": ">=",
|
||||
"compare_to": 1
|
||||
},
|
||||
"type": "origins:action_over_time",
|
||||
"interval": 3,
|
||||
"entity_action": {
|
||||
"type": "origins:apply_effect",
|
||||
"effect": {
|
||||
"effect": "minecraft:mining_fatigue",
|
||||
"duration": 10,
|
||||
"amplifier": 1,
|
||||
"show_particles": false,
|
||||
"show_icon": false
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"hidden": true,
|
||||
"type": "origins:active_self",
|
||||
"entity_action": {
|
||||
"type": "origins:play_sound",
|
||||
"sound": "minecraft:entity.parrot.fly",
|
||||
"volume": 1,
|
||||
"pitch": 1
|
||||
},
|
||||
"cooldown": 10,
|
||||
"hud_render": {
|
||||
"should_render": false
|
||||
},
|
||||
"key": {
|
||||
"key": "key.origins.secondary_active",
|
||||
"continuous": true
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"name": "Tiny Faerie",
|
||||
"description": "You are tiny due to being a magical moth-like creature. You have only 5 hearts and less reach, and are only half a block tall.",
|
||||
|
||||
"type": "origins:multiple",
|
||||
"modify_size": {
|
||||
"type": "extraorigins:modify_size",
|
||||
"scale": 0.25
|
||||
},
|
||||
"attribute_modifiers": {
|
||||
"type": "origins:attribute",
|
||||
"modifiers": [
|
||||
{
|
||||
"name": "Origin modifier",
|
||||
"attribute": "minecraft:generic.max_health",
|
||||
"operation": "addition",
|
||||
"value": -10
|
||||
},
|
||||
{
|
||||
"name": "Origin modifier",
|
||||
"attribute": "minecraft:generic.attack_speed",
|
||||
"operation": "addition",
|
||||
"value": 0.5
|
||||
},
|
||||
{
|
||||
"name": "Origin modifier",
|
||||
"attribute": "minecraft:generic.movement_speed",
|
||||
"operation": "addition",
|
||||
"value": -0.015
|
||||
},
|
||||
{
|
||||
"name": "Origin modifier",
|
||||
"attribute": "reach-entity-attributes:attack_range",
|
||||
"operation": "addition",
|
||||
"value": -0.25
|
||||
},
|
||||
{
|
||||
"name": "Origin modifier",
|
||||
"attribute": "reach-entity-attributes:reach",
|
||||
"operation": "addition",
|
||||
"value": -1
|
||||
}
|
||||
]
|
||||
},
|
||||
"jump_modifier": {
|
||||
"type": "origins:modify_jump",
|
||||
"modifier": {
|
||||
"name": "Origin modifier",
|
||||
"operation": "multiply_total",
|
||||
"value": -0.3333
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"CCC",
|
||||
"CNC",
|
||||
"CCC"
|
||||
],
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "shapedaionresources:aion_crystal"
|
||||
},
|
||||
"N": {
|
||||
"item": "minecraft:nether_star"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "shapedaionresources:aion_block",
|
||||
"count": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" F ",
|
||||
"FGF",
|
||||
" F "
|
||||
],
|
||||
"key": {
|
||||
"F": {
|
||||
"item": "shapedaionresources:aion_fragment"
|
||||
},
|
||||
"G": {
|
||||
"item": "minecraft:emerald"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "shapedaionresources:aion_crystal",
|
||||
"count": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"type": "minecraft:smelting",
|
||||
"ingredient": {
|
||||
"item": "shapedaionresources:aion_ore_block"
|
||||
},
|
||||
"result": "shapedaionresources:aion_fragment",
|
||||
"experience": 0.5
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"type": "minecraft:smelting",
|
||||
"ingredient": {
|
||||
"item": "shapedaionresources:aion_ore"
|
||||
},
|
||||
"result": "shapedaionresources:aion_fragment",
|
||||
"experience": 0.5
|
||||
}
|