1
0
Commit Graph

476 Commits

Author SHA1 Message Date
Mattes D
365cbc6e1c
Refactored more of Entities and BlockEntities to use Vector3. (#4403) 2019-09-29 14:59:24 +02:00
Mattes D
66e73a2d68 NBTChunkSerializer: Cleaned up interface.
Removed dependency on cChunkDataCallback.
Moved all the serializing code into a worker class.
Changed the serialization into a single-call action.
2019-09-24 17:38:59 +02:00
Mattes D
a2ffa432b3 Separated chunk generator from world / plugin interfaces.
The generator now only takes care of servicing synchronous "GetChunk(X, Y)" and "GetBiomes(X, Y)" requests.
2019-09-06 16:12:33 +02:00
Bond-009
e0ca4d8399 Fix building with clang 8.0 (#4346) 2019-08-11 10:39:43 +01:00
peterbell10
4727ed2084 Add a formatting function for Vector3 (#4282)
* Vector3: Add custom fmt compatible formatter.

* cLuaState: Add fmt version of ApiParamError

* Use vector formatting in manual bindings

* Always log vectors with FLOG
2018-09-24 21:33:39 +01:00
peterbell10
ee84197014
Force all headers other than "Globals.h" to be included with relative paths (#4269)
Closes #4236

CMake now creates a header file in the build directory under the path "include/Globals.h" which just includes "src/Globals.h" with an absolute path. Then instead of adding "src/" to the include directories, it adds "include/".

#include "Globals.h" still works by including the build generated file and any other src-relative path will not work.
2018-08-29 01:51:25 +01:00
peterbell10
950aeffff8
CheckBasicStyle: Check number of empty lines between functions (#4267)
Add check for number of empty lines between functions and fix the corresponding failures
2018-07-26 22:24:36 +01:00
peterbell10
7b431bed51
cIsThread: Reset m_ShouldTerminate after the thread has stopped (#4258)
This allows threads to be restarted after stopping.

Fixes #4257
2018-07-22 22:35:58 +01:00
peterbell10
a4dbb5c582
Prefer static_cast to reinterpret_cast (#4223)
* Change reinterpret_cast -> static_cast wherever possible
* Remove more unnecessary `const_cast`s.

reinterpret_casts should be avoided for the same reason as c-style casts - they don't do any type-checking. reinterpret_cast was mainly being used for down-casting in inheritance hierarchies but static_cast works just as well while also making sure that there is actually an inheritance relationship there.
2018-05-02 08:50:36 +01:00
peterbell10
d3c1c626f5
Deal with covered switches consistently (#4161)
* Fixes a number of "<function>: not all control paths return a value" warnings on MSVC.

* Introduces the UNREACHABLE global macro and uses it instead of conditionally compiled switch defaults.

* Move cNBTParseErrorCategory from FastNBT.h into FastNBT.cpp to prevent bad calls to message()
2018-02-04 23:07:12 +00:00
peterbell10
757231cc6e
Add the fmt library (#4065)
* Replaces AppendVPrintf with fmt::sprintf
* fmt::ArgList now used as a type safe alternative to varargs.
* Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu.
* Adds FLOG functions to log with fmt's native formatting style.
2018-01-03 17:41:16 +00:00
Fabian
0dd172b80f Store Health as a float (#4073)
* Fix #4024

* Fix clang error

* Add comment

* Fix behaviour

* Save Health as float

* Changed m_Health to float

* Remove redundant static_cast

* Fix casts
2017-11-22 13:47:52 +00:00
peterbell10
c54bf40ef9 cWorld Threads: Seperate initialization and thread start.
Prevents nullptr dereferences before Start has been called.
2017-10-21 19:33:22 +02:00
Lukas Pioch
c5f590d460 Removed UTF-8 BOM (#4033) 2017-09-19 10:34:08 +02:00
peterbell10
307e7aaff5 Fix switch warnings (#4013)
* Fix switch warnings
  * Fix a variety of -Wswitch and -Wswitch-enum warnings
  * Remove unneeded -Wno-error flags

* Reorganise some eMonsterType switches
  * Alpha sort eMonsterType cases in WriteMobMetadata
    and in cNBTChunkSerializer::AddMonsterEntity
  * List all mob types in protocol 1.12 and NBTChunkSerializer

* cStructGenTrees::GetNumTrees: remove switch default

* cWSSAnvil::LoadOldMinecartFromNBT: Log unhandled minecart type
2017-09-14 09:48:57 +01:00
peterbell10
4a0355f065 cBlockArea: use unique_ptr 2017-09-11 23:20:12 +02:00
Lane Kolbly
b12f4ef7d5 Made world data paths adjustable, and added API to temporarily disable saving chunks to disk. (#3912) 2017-09-07 13:41:16 +01:00
Lane Kolbly
dc294cdc51 Switched player statistic store to save with UUID filenames. (#4002) 2017-09-07 11:57:12 +02:00
Bond-009
104f9e127b Changed some int parameters to vector parameters (#3937) 2017-09-07 10:25:34 +02:00
peterbell10
447d929da1 Implement anvil chunk sparsing 2017-08-26 20:56:44 +02:00
peterbell10
f4f2fc7c3d Add cUUID class (#3871) 2017-08-25 13:43:18 +01:00
mathiascode
02775e52c4 Minor changes (#3909) 2017-08-24 11:19:40 +02:00
Pablo Beltrán
b18f6637b6 Fully implemented leashes (#3798) 2017-08-21 10:46:41 +02:00
peterbell10
b8dda388e0 Represent cItem::m_Lore as an AStringVector (#3882)
* Replace cItem::m_Lore with AStringVector

* Reword deprecation warning

* Fix lua bindings
2017-08-18 11:29:54 +01:00
Tiger Wang
72d7027861 Merge pull request #3489 from cuberite/EntityOwnership
* Changed entity ownership model to use smart pointers
2017-08-18 11:17:56 +01:00
Lukas Pioch
743a50014a Replaced includes with forward declarations 2017-08-13 12:31:10 +01:00
Tiger Wang
4ef47aed62 Changed entity ownership model to use smart pointers 2017-08-07 19:24:16 +01:00
Lukas Pioch
07f25253a2 Removed unneeded includes (#3902) 2017-08-06 20:57:44 +01:00
peterbell10
759618b035 Remove double includes part 2 (#3890) 2017-08-03 15:34:19 +02:00
Lukas Pioch
0397535fa7 Removed unused forward declarations (#3888) 2017-08-03 15:10:29 +02:00
peterbell10
2ef8a62339 Fix BSD build 2017-08-02 22:51:16 +02:00
Lukas Pioch
4691bc5a29 Removed double includes (#3885) 2017-08-02 19:57:20 +01:00
peterbell10
8fbb9dbf53 cParsedNBT: Improved error reporting (#3876)
* cParsedNBT: Improved error reporting

* Fix typos
2017-07-30 17:55:19 +01:00
peterbell10
a56cfd1f42 Remove smart pointer macros 2017-07-21 14:41:51 +01:00
Bond-009
6a19841121 Added basic ocelot behavior (#3829) 2017-07-12 12:42:02 +02:00
Lukas Pioch
885d828712 Added bed entity (#3823)
* Added bed entity

* Export cBedEntity to lua
* Set color of bed through item damage value
* Added bed entity to APIDoc
* NBT: Added loading and saving
* Crafting recipes for the colored beds
2017-07-07 09:31:45 +02:00
Lukas Pioch
cc3a67b9df Load entities from old and new names 2017-06-23 18:32:51 +02:00
Mattes D
99b4c2bd09 Anvil storage: load block entities from both old and new name-styles. (#3784)
* WSSAnvil: Load the sign text from JSON, too.
2017-06-21 07:47:26 +02:00
Mattes D
0dd1cd750b BlockEntities: Support cloning self. 2017-06-16 14:11:28 +02:00
Lukas Pioch
73a3c4e3be Exported boat
- NBT: Added saving / loading of material
- Added the material in the item handler of the boat
- Drop the correct boat if destroyed
- APIDoc: Added desc and functions
2017-05-24 19:02:18 +02:00
peterbell10
8a890cf945 Store cChunk::m_BlockEntities in a map (#3717)
* Store block entities in a map from block index
* Cleanup ForEachBlockEntity
* Cleanup DoWithBlockEntityAt
2017-05-22 22:27:55 +02:00
Lukas Pioch
e35ac1bfb9 Clang 5.0 fixes
- Added override keyword
- Removed inherited member variables
2017-05-21 12:19:06 +02:00
Lukas Pioch
41bfb22834 Corrected brewingstand and added support for fuel 2017-05-08 06:30:54 +02:00
Lukas Pioch
fd6faedd55 NBT: Corrected firework loading 2017-03-22 14:21:48 +01:00
Mattes D
caa05e7935 Fixed minecart destruction using deallocated memory. 2016-12-15 14:57:48 +01:00
Mattes D
0870649994 Fixed TrappedChest saving. (#3423)
Vanilla uses "Chest" in NBT for trapped chests.
2016-11-07 21:16:55 +01:00
Moritz Borcherding
b268db4caa Use cChunkDef::Height for Y coord comparison where applicable. 2016-09-27 14:32:20 +02:00
Mattes D
d2e8643607 Fixed type-casting-related warnings. 2016-08-24 22:26:53 +02:00
Mattes D
8eaa8613da CMake: Remove needless minimum version specifications. 2016-07-18 22:11:42 +02:00
Mattes D
a781be5456 SelfTests: Moved SchematicFileSerializer test into a separate project. 2016-06-18 13:12:08 +02:00
LogicParrot
ca6ef58b1e Bulk clearing of whitespace 2016-02-05 23:50:18 +02:00
Mathias
752d99c8b8 MCServer to Cuberite 2016-01-29 21:47:00 +02:00
bibo38
657b0ed007 Changed the format of the MobHead data to allow MobHeads working on MInecraft 1.8
The NBT format now carries the texture data and transmit it to the client.
See: http://minecraft.gamepedia.com/Head#Block_entity
Related to #2674
2016-01-11 17:55:32 +01:00
Mattes D
80e1eb37dd Renamed leftover strings to Cuberite / Server, as needed.
Also upgraded the user setting file for MSVC to 2013.
2016-01-01 21:05:09 +01:00
worktycho
1ee61c4f23 Fix off by two error in ReadString 2015-12-18 15:53:41 +00:00
tycho
456253c651 Check for invalid tags when reading a compound tag 2015-12-18 15:20:24 +01:00
tycho
9e6161305d Fixed String Parsing crash bug
Check string length against actual remaining data, not an abitary constant
2015-12-18 12:08:55 +01:00
Gargaj
d05fdbdee9 Test for correct coordinates when fishing
Fun fact: this was able to actually deadlock the server depending on where you were standing :)
2015-12-10 20:54:55 +01:00
Julian Laubstein
48f84cc3e9 changed mob age from char to int 2015-11-16 14:13:44 +01:00
Lukas Pioch
9749c3aac9 Implemented brewing 2015-11-03 18:00:55 +01:00
Lukas Pioch
079bb7c016 Update Loops required for JsonCPP 2015-10-26 00:16:35 +00:00
Mattes D
9da404ea2d Fixed a race condition between chunk loader and generator.
When using ChunkWorx to generate multiple chunks, the server would sometimes fail an assert because it would generate a chunk even when it was successfully loaded. This was caused by chunks queued in cWorld's m_SetChunkDataQueue and thus being marked as "InQueue" although they were already loaded.

Solved by adding a new parameter to chunk coord callbacks specifying whether the operation succeeded or failed, and using that instead of the chunk presence flag to decide whether to generate or not.
2015-10-04 14:06:37 +02:00
Mattes D
82d9ac1e1c Namechange to Cuberite 2015-09-25 10:14:17 +02:00
Mattes D
6e4122e551 Unified the doxy-comment format. 2015-07-31 16:49:10 +02:00
Mattes D
d2a0c85764 Chunks that fail to load are offloaded to extra files.
Ref.: #1970
2015-07-31 08:49:23 +02:00
Mattes D
08aa3f6ff5 Added reason parameter to load failures. 2015-07-31 08:48:23 +02:00
Mattes D
7379848ae5 Moved AString reading hack to cFile. 2015-07-31 08:48:22 +02:00
Samuel Barney
804805d35a Silenced and fixed many warning messages across multiple files. 2015-07-29 09:49:30 -06:00
bibo38
6a27ec2ea0 Added Rabbit Metadata values.
Added the Rabbit Types and the MoreCarrotTicks value. Types are selected randomly on creation.
Fixes #1867
2015-07-17 01:09:06 +02:00
NiLSPACE
0c3a3427cd Merge pull request #2340 from hallucino/ageable-mobs
Support ageable mobs
2015-07-15 09:57:04 +02:00
Hallucino
53207d3f18 Support ageable mobs
Move ageable stuff in Monster directly
2015-07-14 22:41:31 +02:00
bibo38
0cb0bbe51a Changing the shared_ptr/unique_ptr constructors to the make_shared/make_unique functions 2015-07-12 21:02:47 +02:00
Samuel Barney
aa94a275c6 Fixes compilation failures on MacOSX 10.10
* Replace old c-style casts with c++ casts
* Added `-Wno-error=old-style-cast` to Protocol18x.cpp
2015-07-09 11:15:37 -06:00
Mattes D
8df31067d4 Externalized cPrefabPiecePool self-test. 2015-06-19 16:15:59 +02:00
Tiger Wang
882f7c70c0 Fixed log files' timestamps
Also made Release mode log less technical information about the world
storage threads.
2015-06-14 11:23:14 +01:00
Mattes D
d390214929 SelfTests are registered and executed after logging framework init.
Fixes #2228.
2015-06-11 22:20:04 +02:00
HaoTNN
e82cd6e4eb Fixes multiple furnace issues, including from loading world storage 2015-06-03 02:19:22 -07:00
Mattes D
48c153bf53 Fixed warnings in MSVC.
It complained about undefined return values or using uninitialized variables.
2015-06-02 12:51:43 +02:00
tycho
95b81b3ef1 Disable -Werror for warnings in tests. 2015-05-24 14:16:05 +01:00
tycho
dae9e5792a Made -Weverything an error. 2015-05-24 12:56:56 +01:00
tycho
77f1f58c0a Make -Werror disabling file only
Ad fix a load of warnings
2015-05-19 19:32:10 +01:00
Mattes D
846d16315a CheckBasicStyle: checks spaces around * and &. 2015-05-09 12:58:55 +02:00
Mattes D
c13b1931ff More style checking.
Spaces around some operators are checked.
2015-05-09 12:58:54 +02:00
Woazboat
6caf08da99 cSetChunkData constructor explicitly requires std::move() instead of
unsafely stealing data
2015-04-27 21:18:56 +02:00
Tiger Wang
3d398baf35 cPainting saving implemented
Additionally, it now inherits from cHangingEntity.
2015-03-13 23:05:06 +00:00
Tiger Wang
e15e30a030 Fixed confusion over Item Frame directions 2015-03-13 22:29:27 +00:00
Howaner
1a60785ca2 Flower pots: In 1.8 items are saved with the name and not the id. 2015-02-18 23:33:27 +01:00
Mattes D
a939e2ded9 WSSAnvil: Fixed chunk data padding.
When the chunk data fit perfectly into the old space, an extra 4 KiB of padding zeroes were written, overwriting the next chunk.
Fixes #1730.
2015-02-08 12:24:15 +01:00
Matyas Dolak
268ea71e4a Fixed negative return values in SchematicFileSerializer.
Fixes CID 103165.
2015-01-23 10:03:39 +01:00
Mattes D
2df8e4863f Fixed warnings in FastNBT.cpp. 2015-01-20 23:52:53 +01:00
Mattes D
f232704203 WSSAnvil: Added clamping to entity coords.
Fixes CID 72854.
2014-12-21 22:37:48 +01:00
Mattes D
e192da5316 FastNBT: Added a sanity check for number of list items.
Fixes CID 55812.
2014-12-21 22:25:01 +01:00
Masy98
6e8e1c6d8d Added Rabbits 2014-12-20 10:31:34 +01:00
Masy98
c836b52dd1 Added Entity Guardian 2014-12-18 19:30:32 +01:00
Mattes D
781b3303a5 Merge pull request #1657 from mc-server/PrepareChunk
Prepare chunk
2014-12-11 17:06:18 +01:00
Mattes D
33c6ff872e Cosmetic touchups.
Removed trailing whitespace, added cast to remove warning, added file seeking in case of corrupt files.
2014-12-11 14:34:09 +01:00
Mattes D
1b1f971752 Merge remote-tracking branch 'planetx/master' 2014-12-11 11:17:54 +01:00
Mattes D
fcd3d1bfed Added a cWorld:PrepareChunk function.
It prepares the chunk - loads or generates it and lights it.
The spawn prepare process uses this function.
2014-12-10 22:35:16 +01:00
planetx
ce3adf89fa Check to see if header write out is required 2014-12-08 11:23:19 -08:00
planetx
1674f505f8 Added timestamp to merged files WSSAnvil 2014-12-08 08:28:44 -08:00