Commit Graph
125 Commits
Author SHA1 Message Date
Luis C.M fd1ac6dce4 Merge KAMKEEL-dev into dev. 2022-06-12 04:23:05 -05:00
Luis C.M 13ddc19522 Merge branch 'master' into dev
# Conflicts:
#	src/main/java/noppes/npcs/client/model/ModelMPM.java
#	src/main/java/noppes/npcs/client/renderer/RenderNPCHumanMale.java
2022-06-12 03:40:50 -05:00
Luis C.M 63a1525ee2 API Changes:
-Implemented interfaces for all jobs & roles.

ScriptPlayer:
-Added getData() function, which returns player data objects.

IPlayerData: New class that holds all player data for modification.
-Holds dialog, bank, quest, transport, faction, item giver, and mail data.
-Also holds companion data, with functions has/set/getCompanion, and a getCompanionID function to differentiate companions.
2022-06-12 01:26:23 -05:00
Luis C.M 8f16e6b20f Added IDialogImage, a scripted object which is used by IDialog. Used to add dialog images.
IDialog:
-Added several new functions for dialogs' new visual attributes, as well as a way to add, get, create, remove, and clear dialog images.

Global NPC events:
-Added fields and variables from the old ScriptEvent events, in preparation to replace the old events with NpcEvent instances on local NPC scripts.
-Fixed issue where some event hooks would run on remote worlds.

Global NPC killed event:
-Added droppedItems and expDropped fields.

IWorld and NpcAPI:
-Now always uses a non-remove WorldServer object to create ScriptWorld objects and add them to the world cache.
2022-06-10 17:25:58 -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
1whohears b18d0965f2 script player.sendMessage uses String as color parameter 2022-05-28 22:53:57 -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 8d4a7ea0b6 More merge fixes 2022-05-27 15:54:12 -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
Luis C.M 301e113be2 Added quest tracking, need to add objectives list and turn in info too. 2022-05-27 14:32:24 -05:00
1whohears 3d02ce3ce0 world.rayCastBlock uses double[] for parameters 2022-05-26 03:04:13 -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 bc85756476 player.getLookingAtBlock returns IBlock 2022-05-26 01:51:05 -05:00
Luis C.M 2895f7a76a Removed overridden getDimension() function, and an unused HashMap for skin overlays from ScriptPlayer. 2022-05-26 01:46:38 -05:00
1whohears 84973a025a moved projectilesKeepTerrain to DataStats 2022-05-26 01:45:10 -05:00
1whohears aba637be14 removed redundant faction functions
Luis C.M. will add API.getFactions() which returns the FactionController. All these functions use the faction controller anyway.
Also Luis PR already has entity.getDimension and world.spawnEntity
2022-05-25 23:56:36 -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
Luis C.M 33bb0307e9 Separated data objects and data controller objects in the noppes.npcs.controllers package. 2022-05-24 01:07:50 -05:00
Luis C.M b6c62332ed Fixed SkinOverlay objects not having their parent object initialized correctly. 2022-05-23 20:47:32 -05:00
Luis C.M 6220a8ce14 -Overlays for players and NPCs are now grouped in an "overlay handler" object, similar to how you retrieve timers.
-Fixed client NPC overlay updates.
2022-05-23 20:41:32 -05:00
Luis C.M b9266c3cc5 Added plenty more documentation for the javadoc. 2022-05-17 18:02:09 -05:00
Luis C.M 41401d0521 Removed redundant ScriptSkinOverlay, using SkinOverlayData in place of it, which now implements ISkinOverlay. 2022-05-17 04:46:06 -05:00
Luis C.M 8bc3190295 Implemented multiple overlay layers for CNPCs, replaces powered textures. 2022-05-17 04:34:46 -05:00
Luis C.M e8a3eb8344 Implemented offsets for player skin overlays 2022-05-17 00:01:31 -05:00
Luis C.M f9fcd6b9f8 Added alpha, size, scale, and speed attributes to player skin overlays. 2022-05-16 23:27:11 -05:00
Luis C.M 83fbccdf55 Added setAlpha to skin overlays 2022-05-16 22:14:11 -05:00
Luis C.M 6f9358c1ca Glow can be disabled/enabled on skin overlays 2022-05-16 22:04:54 -05:00
Luis C.M dbfbab7be2 Players can now have multiple skin overlays, just like GUI overlays. 2022-05-16 18:47:16 -05:00
Luis C.M 9a0aae50e0 Implemented custom player overlays. 2022-05-16 05:45:00 -05:00
Luis C.M 71aff8f78f Fix for updating overlay and powered textures. 2022-05-16 01:22:33 -05:00
Luis C.M aa9a9499aa Implemented custom powered textures for NPC's, overlays that can have their textures move. 2022-05-15 16:47:48 -05:00
Luis C.M cf33b90b26 Used interfaces in implementations instead of the real classes for most scripted classes. 2022-05-11 22:08:31 -05:00
Luis C.M 6896cec417 Every function in API classes that calls the main API class now calls the loaded API wrapper, renamed to NpcAPI, instead of the abstract class, renamed to AbstractNpcAPI. 2022-05-11 17:12:48 -05:00
Luis C.M 6dea5a1cbc Interfaces have a file strucutre resembling the file structure of their implementing classes. 2022-05-11 16:43:14 -05:00
Luis C.M c2546c3f82 Updated interfaces to have the proper functions. Documentation will focus around them, so they'll be better organized from now on. 2022-05-11 16:31:14 -05:00
Luis C.M 26f5f86dca Implemented Scripted Custom Items. 2022-05-11 01:10:31 -05:00
Luis C.M 5520fc5f2b ScriptParticle:
-Added HEXColor2, HEXColorRate, and HEXColorRateStart fields, and respective setters and getters, allowing for changes in HEX color over time.

Marked plenty of old ScriptEntityParticle functions as deprecated. This includes any functions referring to scripted particles as "Entity Particles" and functions outside the API or ScriptParticle class used to spawn or create particles.
2022-05-07 03:46:37 -05:00
Luis C.M d49a31a4fe ScriptParticle:
-The spawnInWorld() function now requires a ScriptWorld object to be passed in as the first parameter.
-New spawnInWorld() function with its only parameter being a ScriptWorld object. Spawns in the world with the particle's x,y,z variables.
2022-05-07 01:40:41 -05:00
Luis C.M c3b9096295 Scripted particles can now spawn anywhere in the world, not just attached to an entity.
ScriptEntityParticle renamed to ScriptParticle, and EntityCustomFX renamed to CustomFX.

Re-enabled OpenGL blending for custom particles.
2022-05-06 03:38:24 -05:00
Luis C.M 2d2933e873 ScriptEntityParticle:
-Particles can now start or end at a certain tick, and loop or not loop.
-Added setSize(), getWidth() and getHeight() functions.
-Added setOffset(), getOffsetX(), and getOffsetY() functions.
-Added setAnimRate() and getAnimRate() functions.
2022-05-06 01:22:48 -05:00
Luis C.M 728269ff87 ScriptEntityParticle:
-Added width, offset, and animation rate attributes to particles.
-Added setSize(), getWidth() and getHeight() functions.
-Added setOffset(), getOffsetX(), and getOffsetY() functions.
-Added setAnimRate() and getAnimRate() functions.
2022-05-06 00:22:28 -05:00
Luis C.M f16e2402a6 ScriptEntityParticle:
-Added scripted particles which can not face the player, having their angles be absolute in the world instead of relative to the camera.
-set/getFacePlayer() functions added.
2022-05-04 18:08:54 -05:00
Luis C.M bfd872a239 ScriptEntity:
-Added getEntityId() function
-Moved getUniqueId() function

ScriptWorld:
-Added getPlayerByUUID(uuidstring) function
-Added several functions from World and WorldServer: isBlockFreezable,isBlockFreezableNaturally,canBlockFreeze,canBlockFreezeBody,canSnowAt,canSnowAtBody,getTopBlock,getHeightValue,getChunkHeightMapMinimum,getBlockMetadata,setBlockMetadataWithNotify,canBlockSeeTheSky,getFullBlockLightValue,getBlockLightValue,playSoundAtEntity,playSoundToNearExcept,getEntityByID,spawnEntityInWorld,getClosestPlayerToEntity,getClosestPlayer,getClosestVulnerablePlayerToEntity,getClosestVulnerablePlayer,countEntities,setTileEntity,removeTileEntity,isBlockFullCube,getSeed,setSpawnLocation,canLightningStrikeAt,isBlockHighHumidity

ScriptTileEntity:
Added a ScriptTileEntity class for MC Tile Entities, with nearly all its functions.

ScriptBlock:
-Added getTileEntity() and setTileEntity() functions using the new ScriptTileEntity class as a return value and parameter respectively.

API:
-Added playSoundAtEntity and playSoundToNearExcept functions.
-Added set/getMOTD() functions.
2022-05-03 23:09:21 -05:00