Commit Graph
87 Commits
Author SHA1 Message Date
bigguy345 0033413235 Added Scheduled Tasks system for NPC scripting.
Allows for scripting the scheduling of runnable methods in sequence within the NPC's AI

An example sequence of tasks:
1. Dashes towards player (might take 3-5 seconds, doesn't matter, task durations are dynamic so it can take as long as it needs).
2. Punches player away
3. Waits 10 ticks - Fires a ki blast
4. Teleports behind player
5. Knocks player out
2025-03-03 23:59:49 +02:00
Kam 7d37670494 Rename to NPC AI to NPC AIs 2025-02-10 21:32:55 -05:00
Kam a35db3f9e5 Fix Rotation Get / Set for NPCs 2025-02-10 21:01:53 -05:00
Kam 48baa6de5f Move Collisions to Stats 2024-04-09 20:35:29 -04:00
Kam c8d62f0c72 Fix Setting Item Stack to Null 2024-04-04 18:20:19 -04:00
Kam 3e1075691b set Skin URL does not change from URL 64 2024-03-29 17:02:54 -04:00
Kam 22b067930d getLeftItem Typo Fix 2024-03-20 13:23:26 -04:00
Kam 76000ecf55 Change attackDelay variable to be called SwingWarmup | Better Naming 2024-02-12 03:14:23 -05:00
Kam eb01579f4a SwingWarmup Time, CobwebAI Change, Change GUI Layout 2024-02-12 02:58:34 -05:00
Kam 68ac475bbe Knockback/MeleeRange/AggroRange Functions 2024-02-10 18:23:16 -05:00
Kam 52cdf91670 Initial Push for new Combat Policy Types [WIP] 2024-01-30 21:50:19 -05:00
Kam 75ba7a792b Fixed IRole.getType returning out of order types for scripting. 2024-01-25 14:27:02 -05:00
Kam 3e43855128 Merge Dev into PR 110 2024-01-18 14:45:08 -05:00
Goodbird 21c16e5341 Implemented a better synchronisation system for left hand item and projectile item, similar to main hand and armor items system for vanilla 2023-12-08 09:47:18 +03:00
Luis C.M eed9dbb92e Added line support for ICustomNpc 2023-12-03 20:48:37 -06:00
luisc 156a976cdd Implemented get/setDialog functions for ICustomNpc. 2023-11-30 15:29:35 -06:00
Luis C.M 6913cadc79 IModelData:
-Implemented hidePart() abd hidden() functions
2023-03-17 02:59:33 -05:00
Luis C.M f0b33cf913 Moved model scale parts into a single ModelScale class, similar to ModelRotate.
Added NPC model data interfaces to the API.
2023-03-17 02:36:28 -05:00
Luis C.M be18e756fc Animation overhaul, along with animation changes to the API. 2023-01-16 13:53:15 -06:00
KAMKEEL bda76bafe6 Optimize Imports 2023-01-12 21:33:06 -05:00
Luis C.M 8905f5f42e Moved NPC puppet data to display data.
Improved mixin functionality, offsets and rotations always reset if the puppet "job" (not a job anymore, always in display) is disabled.
2023-01-11 19:12:53 -06:00
KAMKEEL 83a13b96c4 setMovingType and getMovingType
Allows script to change types between
0 = standing, 1 = wandering, 2 = moving path
2023-01-08 17:27:37 -05:00
KAMKEEL 6e92f08851 Config Overhaul 2023-01-07 00:21:08 -05:00
Luis C.M 28a1650c05 Added setRotation(float rotationYaw, float rotationPitch) function for IEntity & ICustomNpc 2023-01-03 23:36:53 -06:00
Luis C.M 699b24e467 More fixes to global NPC scripts not executing on servers, and added more functions to IEntityLivingBase. 2022-12-24 01:46:43 -06:00
Luis C.M 958aeea46a ScriptNpc:
-Fixed setRole and setJob functions.
2022-12-07 23:38:15 -06:00
Luis C.M aa02e5dcc3 Fixed API interface errors, added casts for custom item script handlers in EventHooks, and added some event interfaces. 2022-11-23 23:59:01 -06:00
KAMKEEL be9ae94163 Start API Branch 2022-11-15 15:25:53 -05:00
Luis C.M d86f571df6 PathNavigateFlying:
-Fixed pathfinder running into lava & water when it shouldn't.
FlyPathFinder:
-Simplified nodeTypeToOffset switch statement, removed unused function, and made air always return an open path node type.
EntityNPCInterface:
-Fixed "In Air" drowning type. Breathes underwater now.
EntityNPCFlying:
-Fixed NPCs still using flight movement when not being able to breathe.
ICustomNpc:
-Added canBreathe() function
2022-11-12 15:53:20 -06:00
Luis C.M 8d3cd3fd82 Revert "Merge remote-tracking branch 'origin/dev' into dev"
This reverts commit 66edbcea80, reversing
changes made to 3fd962289c.
2022-11-06 01:25:28 -06:00
KAMKEEL 6ae465c5d0 Revert "Added several more functions to pre-existing classes:"
This reverts commit e9a8f8cebc.
2022-11-06 00:10:04 -04:00
Luis C.M e9a8f8cebc Added several more functions to pre-existing classes:
-Spawner, Transport, Healer, Guard, Bard jobs received more functions.
-Added more functions to the transporter role.
-IRole: Added getNpc() function.
-IAnimal, IEntityLiving, and IEntityLivingBase received more functions from their MC counterparts.
-Nearly every function with that takes position/vector parameters now has an equivalent with IPos as a parameter instead.
2022-11-05 20:19:14 -05:00
c0508383 2819c76d0a ICustomNpc:
-Fix for setRetaliateType
2022-07-27 18:47:20 -05:00
c0508383 bd0d7cecf9 Fixed misspelling of "setRangedRange" from "setRangedRage". Kept old function name as a deprecated function not visible in the interface. 2022-07-05 16:31:39 -07:00
Luis C.M 256ba5c599 Removed ScriptFaction in place of IFaction. 2022-07-01 23:26:47 -05:00
Luis C.M 55b21de050 Added drowning types:
In Air,
In Water,
or
Never
to CNPCs.
2022-06-29 12:21:30 -05:00
Luis C.M 40a210ce8f Added configurable limits to skin overlays and dialog images. 2022-06-14 23:27:15 -05:00
Luis C.M b64ee1c93a Merge pull request #54 from 1whohears/dev
Some Extra Soul Stone Options
2022-06-09 02:35:22 -05:00
1whohears b7ef1da0d8 added npc.setMinPointsToSoulStone 2022-06-08 22:13:30 -05:00
1whohears 825c42fc52 npc.isSoulStoneinit 2022-06-07 12:31:49 -05:00
1whohears a675033d62 String data can't be null 2022-05-29 14:42:28 -05:00
1whohears fb0ff50994 added get set refuse soul stone
one may want an npc to not be able to be picked up by soul stone in any circumstance
2022-05-29 02:46:24 -05:00
Luis C.M fd0a99b3ed Revert "NPC Skin Changes" 2022-05-29 00:59:40 -05:00
1whohears 9fef65b194 get the name of the player who spawned this npc with soulstone 2022-05-28 23:40:01 -05:00
Luis C.M 0028328db4 More fixes to setting NPC model types. 2022-05-28 07:06:38 -05:00
Luis C.M 968b43a321 setModelType() only takes 0 for Steve, or 1 for Alex as values. 2022-05-28 06:31:52 -05:00
Luis C.M ec5fc71413 Merge branch 'master' into dev
# Conflicts:
#	src/main/java/noppes/npcs/scripted/ScriptFaction.java
#	src/main/java/noppes/npcs/scripted/ScriptWorld.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptNpc.java
#	src/main/java/noppes/npcs/scripted/entity/ScriptPlayer.java
#	src/main/java/noppes/npcs/scripted/interfaces/IEntity.java
#	src/main/java/noppes/npcs/scripted/interfaces/IWorld.java
#	src/main/java/noppes/npcs/scripted/interfaces/entity/ICustomNpc.java
#	src/main/java/noppes/npcs/scripted/interfaces/entity/IPlayer.java
2022-05-27 15:31:02 -05:00
1whohears 77ee403720 RoleFollowers will not despawn if they have an owner
RoleFollowers canDespawn field will be changed back to the value set by the player in the gui/api if they stop following a player
2022-05-26 03:00:49 -05:00
1whohears 84973a025a moved projectilesKeepTerrain to DataStats 2022-05-26 01:45:10 -05:00
1whohears a4361b8420 Added various things to the API and other small changes
This adds some useful functions to the api and a few other changes.
I had been creating a custom build of this mod while working on stuff because I couldn't figure out how to do certain things without changing the mod. So this is a collection api features that I think everyone would find useful.

Api additions:
-purchase counting, and disabling trades for the trader role. (if a trade is disabled the gui still says insufficient funds, maybe allow a custom message to appear) added get the traders currency items and sell items.
-if an npc's projectile does explosive damage, you can disable it destroying blocks even if mob griefing is on
-int arrays as stored data for entities
-entity.playSound(...)
-get set if npcs can drown
-player read and unread dialog
-player set faction points
-extra player.sendMessage functions to add custom colors/bold/underline
-player clear inventory
-get set if a follower npc is following a player or waiting
-a bunch of stuff to script faction
-is an item food and how many food points?
-get scoreboard team by it's name
-get and create factions from the script world
-world.rayCastBlockPos is used for getting what block a player is looking at.
-world.getNearestAir is meant to get the block of air above or around the result of world.rayCastBlockPos, or at least that's how I've been using it.

Changes:
-in NoppesUtilServer I feel like if an npc is cloned it's ticksExisted or age should bee zero
-follower npcs should have the canDespawn field automatically set to false...? maybe make it an option
2022-05-24 03:06:16 -05:00