GithubHelp home page GithubHelp logo

lafolie / final-minecraft Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 0.0 8.05 MB

Final Fantasy inspired content for Minecraft.

License: GNU Lesser General Public License v3.0

Java 71.40% Lua 28.45% Shell 0.14%
fabric final-fantasy minecraft mod

final-minecraft's People

Contributors

lafolie avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

final-minecraft's Issues

Better Tooltips

Figure out how ToolTip Sections work and tidy up the tooltips, particularly the Affinities listing on the main inventory.

Make mobs deal elemental damage

Currently mobs do not actually utilise the elements system for offense. Maybe introduce a new tag that sets their default attack type?

Refactor Config

The entire config code needs to be redone as it is currently very wasteful (lang file is huge).

Clean the room

Tidy up all the unused classes, imports, and make sure the API is neat-and-tidy for the alpha so I can start working on FMC Crystals

Mobs being given Air stacks crashes the game

Crash report:

---- Minecraft Crash Report ----
// My bad.

Time: 14/06/2022, 20:27
Description: Ticking entity

java.util.NoSuchElementException: 1 air provides no component of type final-minecraft:elemental_stats_item
	at dev.onyxstudios.cca.api.v3.component.ComponentKey.get(ComponentKey.java:89)
	at net.minecraft.item.ItemStack.getComponent(ItemStack.java:2161)
	at lafolie.fmc.core.elements.ElementalObject.getElementalAffinity(ElementalObject.java:237)
	at lafolie.fmc.core.elements.ElementalObject.getElementalAffinities(ElementalObject.java:265)
	at net.minecraft.entity.LivingEntity.adjustDamageElemental(LivingEntity.java:5148)
	at net.minecraft.entity.LivingEntity.localvar$zij000$modifyDamage(LivingEntity.java:5123)
	at net.minecraft.entity.LivingEntity.damage(LivingEntity.java)
	at net.minecraft.entity.mob.MobEntity.tryAttack(MobEntity.java:1419)
	at net.minecraft.entity.mob.ZombieEntity.tryAttack(ZombieEntity.java:345)
	at net.minecraft.entity.ai.goal.MeleeAttackGoal.attack(MeleeAttackGoal.java:152)
	at net.minecraft.entity.ai.goal.MeleeAttackGoal.tick(MeleeAttackGoal.java:144)
	at net.minecraft.entity.ai.goal.ZombieAttackGoal.tick(ZombieAttackGoal.java:28)
	at net.minecraft.entity.ai.goal.PrioritizedGoal.tick(PrioritizedGoal.java:65)
	at net.minecraft.entity.ai.goal.GoalSelector.tickGoals(GoalSelector.java:119)
	at net.minecraft.entity.mob.MobEntity.tickNewAi(MobEntity.java:750)
	at net.minecraft.entity.LivingEntity.tickMovement(LivingEntity.java:2609)
	at net.minecraft.entity.mob.MobEntity.tickMovement(MobEntity.java:546)
	at net.minecraft.entity.mob.HostileEntity.tickMovement(HostileEntity.java:43)
	at net.minecraft.entity.mob.ZombieEntity.tickMovement(ZombieEntity.java:260)
	at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2354)
	at net.minecraft.entity.mob.MobEntity.tick(MobEntity.java:346)
	at net.minecraft.entity.mob.ZombieEntity.tick(ZombieEntity.java:233)
	at net.minecraft.entity.mob.ZombieVillagerEntity.tick(ZombieVillagerEntity.java:152)
	at net.minecraft.server.world.ServerWorld.tickEntity(ServerWorld.java:702)
	at net.minecraft.world.World.tickEntity(World.java:485)
	at net.minecraft.server.world.ServerWorld.method_31420(ServerWorld.java:363)
	at net.minecraft.world.EntityList.forEach(EntityList.java:54)
	at net.minecraft.server.world.ServerWorld.tick(ServerWorld.java:331)
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:907)
	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:851)
	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:97)
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:697)
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:273)
	at java.base/java.lang.Thread.run(Thread.java:833)


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
	at dev.onyxstudios.cca.api.v3.component.ComponentKey.get(ComponentKey.java:89)
	at net.minecraft.item.ItemStack.getComponent(ItemStack.java:2161)
	at lafolie.fmc.core.elements.ElementalObject.getElementalAffinity(ElementalObject.java:237)
	at lafolie.fmc.core.elements.ElementalObject.getElementalAffinities(ElementalObject.java:265)
	at net.minecraft.entity.LivingEntity.adjustDamageElemental(LivingEntity.java:5148)
	at net.minecraft.entity.LivingEntity.localvar$zij000$modifyDamage(LivingEntity.java:5123)
	at net.minecraft.entity.LivingEntity.damage(LivingEntity.java)
	at net.minecraft.entity.mob.MobEntity.tryAttack(MobEntity.java:1419)
	at net.minecraft.entity.mob.ZombieEntity.tryAttack(ZombieEntity.java:345)
	at net.minecraft.entity.ai.goal.MeleeAttackGoal.attack(MeleeAttackGoal.java:152)
	at net.minecraft.entity.ai.goal.MeleeAttackGoal.tick(MeleeAttackGoal.java:144)
	at net.minecraft.entity.ai.goal.ZombieAttackGoal.tick(ZombieAttackGoal.java:28)
	at net.minecraft.entity.ai.goal.PrioritizedGoal.tick(PrioritizedGoal.java:65)
	at net.minecraft.entity.ai.goal.GoalSelector.tickGoals(GoalSelector.java:119)
	at net.minecraft.entity.mob.MobEntity.tickNewAi(MobEntity.java:750)
	at net.minecraft.entity.LivingEntity.tickMovement(LivingEntity.java:2609)
	at net.minecraft.entity.mob.MobEntity.tickMovement(MobEntity.java:546)
	at net.minecraft.entity.mob.HostileEntity.tickMovement(HostileEntity.java:43)
	at net.minecraft.entity.mob.ZombieEntity.tickMovement(ZombieEntity.java:260)
	at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2354)
	at net.minecraft.entity.mob.MobEntity.tick(MobEntity.java:346)
	at net.minecraft.entity.mob.ZombieEntity.tick(ZombieEntity.java:233)
	at net.minecraft.entity.mob.ZombieVillagerEntity.tick(ZombieVillagerEntity.java:152)
	at net.minecraft.server.world.ServerWorld.tickEntity(ServerWorld.java:702)
	at net.minecraft.world.World.tickEntity(World.java:485)
	at net.minecraft.server.world.ServerWorld.method_31420(ServerWorld.java:363)
	at net.minecraft.world.EntityList.forEach(EntityList.java:54)
	at net.minecraft.server.world.ServerWorld.tick(ServerWorld.java:331)

-- Entity being ticked --
Details:
	Entity Type: minecraft:zombie_villager (net.minecraft.entity.mob.ZombieVillagerEntity)
	Entity ID: 246
	Entity Name: Zombie Villager
	Entity's Exact location: 225.70, -59.00, 37.51
	Entity's Block location: World: (225,-59,37), Section: (at 1,5,5 in 14,-4,2; chunk contains blocks 224,-64,32 to 239,319,47), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)
	Entity's Momentum: 0.00, -0.08, 0.00
	Entity's Passengers: []
	Entity's Vehicle: null
Stacktrace:
	at net.minecraft.world.World.tickEntity(World.java:485)
	at net.minecraft.server.world.ServerWorld.method_31420(ServerWorld.java:363)
	at net.minecraft.world.EntityList.forEach(EntityList.java:54)
	at net.minecraft.server.world.ServerWorld.tick(ServerWorld.java:331)
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:907)
	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:851)
	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:97)
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:697)
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:273)
	at java.base/java.lang.Thread.run(Thread.java:833)

-- Affected level --
Details:
	All players: 1 total; [ServerPlayerEntity['Player764'/95, l='ServerLevel[New World]', x=126.36, y=-60.00, z=-26.56]]
	Chunk stats: 2997
	Level dimension: minecraft:overworld
	Level spawn location: World: (0,-60,0), Section: (at 0,4,0 in 0,-4,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)
	Level time: 97855 game time, 18725 day time
	Level name: New World
	Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
	Level weather: Rain time: 39921 (now: false), thunder time: 63302 (now: false)
	Known server brands: fabric
	Level was modded: true
	Level storage version: 0x04ABD - Anvil
Stacktrace:
	at net.minecraft.server.MinecraftServer.tickWorlds(MinecraftServer.java:907)
	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:851)
	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:97)
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:697)
	at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:273)
	at java.base/java.lang.Thread.run(Thread.java:833)

-- System Details --
Details:
	Minecraft Version: 1.18.2
	Minecraft Version ID: 1.18.2
	Operating System: Linux (amd64) version 5.18.0-arch1-1
	Java Version: 18.0.1.1, N/A
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 955353856 bytes (911 MiB) / 3334471680 bytes (3180 MiB) up to 4169138176 bytes (3976 MiB)
	CPUs: 8
	Processor Vendor: AuthenticAMD
	Processor Name: AMD FX(tm)-8320 Eight-Core Processor
	Identifier: AuthenticAMD Family 21 Model 2 Stepping 0
	Microarchitecture: unknown
	Frequency (GHz): -0.00
	Number of physical packages: 1
	Number of physical CPUs: 8
	Number of logical CPUs: 8
	Graphics card #0 name: GP106 [GeForce GTX 1060 6GB]
	Graphics card #0 vendor: NVIDIA Corporation (0x10de)
	Graphics card #0 VRAM (MB): 288.00
	Graphics card #0 deviceId: 0x1c03
	Graphics card #0 versionInfo: unknown
	Virtual memory max (MB): 12045.69
	Virtual memory used (MB): 13298.57
	Swap memory total (MB): 4096.00
	Swap memory used (MB): 366.52
	JVM Flags: 0 total; 
	Fabric Mods: 
		cardinal-components: Cardinal Components API 4.1.4
		cardinal-components-base: Cardinal Components API (base) 4.1.4
		cardinal-components-block: Cardinal Components API (blocks) 4.1.4
		cardinal-components-chunk: Cardinal Components API (chunks) 4.1.4
		cardinal-components-entity: Cardinal Components API (entities) 4.1.4
		cardinal-components-item: Cardinal Components API (items) 4.1.4
		cardinal-components-level: Cardinal Components API (world saves) 4.1.4
		cardinal-components-scoreboard: Cardinal Components API (scoreboard) 4.1.4
		cardinal-components-world: Cardinal Components API (worlds) 4.1.4
		cloth-basic-math: cloth-basic-math 0.6.1
		cloth-config: Cloth Config v6 6.2.62
		devlogin: DevLogin 2.1
		fabric: Fabric API 0.51.1+1.18.2
		fabric-api-base: Fabric API Base 0.4.4+d7c144a860
		fabric-api-lookup-api-v1: Fabric API Lookup API (v1) 1.6.0+2373a54560
		fabric-biome-api-v1: Fabric Biome API (v1) 8.0.4+7b0f312660
		fabric-blockrenderlayer-v1: Fabric BlockRenderLayer Registration (v1) 1.1.12+3ac43d9560
		fabric-command-api-v1: Fabric Command API (v1) 1.1.9+d7c144a860
		fabric-commands-v0: Fabric Commands (v0) 0.2.8+b4f4f6cd60
		fabric-containers-v0: Fabric Containers (v0) 0.1.21+d7c144a860
		fabric-content-registries-v0: Fabric Content Registries (v0) 3.0.3+d82b939260
		fabric-convention-tags-v1: Fabric Convention Tags 1.0.1+474e4f7960
		fabric-crash-report-info-v1: Fabric Crash Report Info (v1) 0.1.11+3ac43d9560
		fabric-data-generation-api-v1: Fabric Data Generation API (v1) 2.0.9+e19de87d60
		fabric-dimensions-v1: Fabric Dimensions API (v1) 2.1.17+2540745460
		fabric-entity-events-v1: Fabric Entity Events (v1) 1.4.8+d7c144a860
		fabric-events-interaction-v0: Fabric Events Interaction (v0) 0.4.19+d7c144a860
		fabric-events-lifecycle-v0: Fabric Events Lifecycle (v0) 0.2.14+d7c144a860
		fabric-game-rule-api-v1: Fabric Game Rule API (v1) 1.0.13+d7c144a860
		fabric-gametest-api-v1: Fabric Game Test API (v1) 1.0.16+91b7aa6660
		fabric-item-api-v1: Fabric Item API (v1) 1.4.0+4457765560
		fabric-item-groups-v0: Fabric Item Groups (v0) 0.3.11+91896a4960
		fabric-key-binding-api-v1: Fabric Key Binding API (v1) 1.0.12+54e5b2ec60
		fabric-keybindings-v0: Fabric Key Bindings (v0) 0.2.10+b4f4f6cd60
		fabric-lifecycle-events-v1: Fabric Lifecycle Events (v1) 2.0.3+2d83e92c60
		fabric-loot-tables-v1: Fabric Loot Tables (v1) 1.0.11+d7c144a860
		fabric-mining-level-api-v1: Fabric Mining Level API (v1) 2.1.0+81ea5b3c60
		fabric-models-v0: Fabric Models (v0) 0.3.6+d7c144a860
		fabric-networking-api-v1: Fabric Networking API (v1) 1.0.21+d882b91560
		fabric-networking-v0: Fabric Networking (v0) 0.3.8+b4f4f6cd60
		fabric-object-builder-api-v1: Fabric Object Builder API (v1) 2.1.0+fe4ddef060
		fabric-particles-v1: Fabric Particles (v1) 0.2.12+526dc1ac60
		fabric-registry-sync-v0: Fabric Registry Sync (v0) 0.9.8+0d9ab37260
		fabric-renderer-api-v1: Fabric Renderer API (v1) 0.4.13+d882b91560
		fabric-renderer-indigo: Fabric Renderer - Indigo 0.5.0+7faf0d8860
		fabric-renderer-registries-v1: Fabric Renderer Registries (v1) 3.2.11+b4f4f6cd60
		fabric-rendering-data-attachment-v1: Fabric Rendering Data Attachment (v1) 0.3.7+d7c144a860
		fabric-rendering-fluids-v1: Fabric Rendering Fluids (v1) 2.0.2+54e5b2ec60
		fabric-rendering-v0: Fabric Rendering (v0) 1.1.13+b4f4f6cd60
		fabric-rendering-v1: Fabric Rendering (v1) 1.10.7+54e5b2ec60
		fabric-resource-conditions-api-v1: Fabric Resource Conditions API (v1) 2.0.3+91b7aa6660
		fabric-resource-loader-v0: Fabric Resource Loader (v0) 0.4.18+2de5574560
		fabric-screen-api-v1: Fabric Screen API (v1) 1.0.10+d882b91560
		fabric-screen-handler-api-v1: Fabric Screen Handler API (v1) 1.2.0+1f6558e860
		fabric-textures-v0: Fabric Textures (v0) 1.0.12+3ac43d9560
		fabric-transfer-api-v1: Fabric Transfer API (v1) 1.6.0+2373a54560
		fabric-transitive-access-wideners-v1: Fabric Transitive Access Wideners (v1) 1.0.0+bd8a4a1860
		fabricloader: Fabric Loader 0.14.6
		final-minecraft: Final Minecraft Core 0.1.0
		java: OpenJDK 64-Bit Server VM 18
		minecraft: Minecraft 1.18.2
		modmenu: Mod Menu 3.2.2
	Server Running: true
	Player Count: 1 / 8; [ServerPlayerEntity['Player764'/95, l='ServerLevel[New World]', x=126.36, y=-60.00, z=-26.56]]
	Data Packs: vanilla, Fabric Mods
	World Generation: Stable
	Type: Integrated Server (map_client.txt)
	Is Modded: Definitely; Client brand changed to 'fabric'; Server brand changed to 'fabric'

Gift Blocks

As a supplement to the Calendar feature, it would be nice to have a Gift Block that is given to players on both the in-game date that they joined, and their in-game birthday based on their UUID. Here is how I envision the Gift Block to work:

  • The Gift Block looks like a typical giftwrapped box. Maybe have different colours?
  • The Gift Block is magickally given to the player. Spawn some particles, play a sound, send a message, etc. If their inventory is full and it fall on the ground then so be it!
  • The Gift Block must be placed in the world somewhere
  • When broken (with any tool, maybe make gold the best?), the block spawns a bunch of items like a broken container
  • Play particles (fireworks?), sounds, etc
  • Enjoy the presents!

Gift Blocks should scale their content based on the age of the world to prevent the contents being too great and ruining game progress; we don't want a player with a birthday 2 days after the world was created to receive netherite.

Dynamic Damage Number Colours

Damage numbers should change colour depending on the following properties:

  • Effectiveness (weak/resist)
  • Healing/damage
  • Special sources (e.g. poison, wither)

Refactor genTags

genTags needs to be redone so that it uses the new toolchain. It also needs to support different namespaces, not just the base minecraft objects.

Make ElementalObject more useful

ElementalObject needs a bit of a refactor:

  • addBaseElement should maybe be renamed
  • add/remove element shoud add 2 instead of 1
  • add/remove elements should have the following options:
    • add/remove only the provided element
    • add/remove provided element, and auto add/remove weakness (e.g. fire+2, water-2)
    • add/remove provided element, and auto add/remove weakness and sub-resist (e.g. fire+2, water-2, ice+2)
    • possible same as previous, but sub-resist is +1 (e.g. firre+2, water-2, ice+1)
  • function to get the most prevalent attribute for an element (whether to absorb/ignore/resist damage etc)

Implement DamageTypes

In preparation for later content, the damage adjustment algorithm needs to be able to distinguish bewteen damage that is physical or magickal, and possibly other types.

Damage Numbers cause a null ref exception when the player dies

java.lang.NullPointerException: Cannot invoke "lafolie.fmc.core.entity.DamageNumbers.spawnDamageNumbers(net.minecraft.client.MinecraftClient, float, lafolie.fmc.core.internal.network.HealthModifiedPacket$EventType)" because "dmgEntity" is null
	at lafolie.fmc.core.FinalMinecraftClient.lambda$registerNetworkReceivers$1(FinalMinecraftClient.java:65) ~[main/:?]
	at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:157) [[email protected]:?]
	at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) [[email protected]:?]
	at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:131) [[email protected]:?]
	at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:116) [[email protected]:?]
	at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1085) [[email protected]:?]
	at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:737) [[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:236) [[email protected]:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:460) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
[00:06:23] [Render thread/ERROR] (Minecraft) Error executing task on Client
java.lang.NullPointerException: Cannot invoke "lafolie.fmc.core.entity.DamageNumbers.spawnDamageNumbers(net.minecraft.client.MinecraftClient, float, lafolie.fmc.core.internal.network.HealthModifiedPacket$EventType)" because "dmgEntity" is null
	at lafolie.fmc.core.FinalMinecraftClient.lambda$registerNetworkReceivers$1(FinalMinecraftClient.java:65) ~[main/:?]
	at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:157) [[email protected]:?]
	at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) [[email protected]:?]
	at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:131) [[email protected]:?]
	at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:116) [[email protected]:?]
	at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1085) [[email protected]:?]
	at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:737) [[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:236) [[email protected]:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:460) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
[00:06:25] [Render thread/ERROR] (Minecraft) Error executing task on Client
java.lang.NullPointerException: Cannot invoke "lafolie.fmc.core.entity.DamageNumbers.spawnDamageNumbers(net.minecraft.client.MinecraftClient, float, lafolie.fmc.core.internal.network.HealthModifiedPacket$EventType)" because "dmgEntity" is null
	at lafolie.fmc.core.FinalMinecraftClient.lambda$registerNetworkReceivers$1(FinalMinecraftClient.java:65) ~[main/:?]
	at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:157) [[email protected]:?]
	at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) [[email protected]:?]
	at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:131) [[email protected]:?]
	at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:116) [[email protected]:?]
	at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1085) [[email protected]:?]
	at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:737) [[email protected]:?]
	at net.minecraft.client.main.Main.main(Main.java:236) [[email protected]:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:460) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) [fabric-loader-0.14.6.jar:?]
	at net.fabricmc.devlaunchinjector.Main.main(Main.java:86) [dev-launch-injector-0.2.1+build.8.jar:?]
	```

Add Crystal Items

Crystals need to be aquirable from dropped enemies and can be used to apply elemental properties to equipment.

Add Home Crystal Block Entity

Implement a Home Crystal that serves a similar purpose to Beacons and will be used by other features (such as for changing Jobs without a cooldown).

Rewrite README

The idea of a med set has been scrapped in favour of 1 mod that contains all the planned content. README.md needs updating to reflect this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.