* added logging functions to each plugin
* added documentation
* modified the global LOG macro
* updated the way of string composition
* removed cloumn
* removed capital v
* Update player list gamemode on world change
* Fix invisibility for spectators, use entity metadata
* Populate m_World for cPlayers on load
- Remove SendPlayerMaxSpeed, a duplicate of SendEntityProperties
* added generator for obsidian pillars and central fountain which then is used for the exit portal
* checkstyle
* checkstyle the second
* fixed clang
removed magic number
added Clamp
* make the pillars configurable
* fixed clang
added warning if there was a unknown value if the tower should have a cage or not
* forgot to cancel on unkwon value
* fixed clang this time maybe
* added new generator to generator test
* fixed test
* added prefab generation for end fountain
* fixed checkstyle and updated the prefab
* added ender dragon spawning
made the fountain positioning dynamic
removed fountain placement functions
* added enderdragon stuff to testing
* pls compile
* added changes suggested by @peterbell10
* fixed clang
* added debug for further research on the ARM build
* ok - it wasn't my tower placement
* checking in setup
* readded the fountain schematic
* removed finisher
* readded generator
* removed generator trigger - kept ini file access
* using cChunkDef function to calculate abs pos of endercrystal
* yes, I know it's unused...
* commented everything in the ComposableGenerator.cpp
- so only the new class in compiled in but not called at all
* don't compile in the new generator at all
(removed from CMakeLists.txt)
* readded the new generator
* readded the new generator
* removed debug output
* made the towers generate acrocc chunk borders
* fixed bad merge
* fixed clang
* fixed clang
* generate the dragon 20 blocks above terrain
* trying to fixed weird undefined reference
* maybe this fixes the weird behaviour
* takes chunk width as parameter now
* added new comments with info to generated structures
removed ender dragon spawning
removed chunkwidth from parameter
* fixed linker
* maybe fixed linking. tried with gc and clang
* fixed ender crystal
* fixed test
* updated output strings
* fixed build
* fixed up test
* fixed test compile
* fixed test - cant get the tests to show up
* removed the semicolon
* maybe this is the fix?
* at this point i have no idea - in MVSC it works
* removed the ender dragon
Co-authored-by: 12xx12 <12xx12100@gmail.com>
* Added magma block contact damage
* Fireproof entities do not take damage from magma
* Fire resistance prevents magma damage
* No magma damage when hovering over magma block
* [FIX] Add correct implementation of seed drops.
> Official percentage of drops has been implemented
* Fix C++ conventions
* Change "Vals" variable to "m_Vals"
* [FIX] Add correct implementation of Carrots, Potatoes, Wheat & Beetroots seed
* Add Fortune support with crops
Add fortune support with Wheat, Carrots, Potatoes & Beetroots seeds
* [FIX] Right-clicking on a grown Beetroot in survival consume 2 bone meals
Fix#4805
* Add documentation for "cWorld::IsFullGrownPlantAt" method
* Fix dispenser that full grown a plant
> Change methods cItemDyeHandler::FertilizePlant & cItemDyeHandler::growPlantsAround to static
* Display particle even if tree doesn't grow
* When right-clicking on a full grown melon / pumpkin seed, no longer produce a melon / pumpkin
Before this commit, when you right-click on a melon or a pumpkin seed, a melon / pumpkin block spawned.
With this commit, it no longer spawns
* [FIX] Do not create melon / pumpkin block when right-clicking with a bone meal
This fix will prevent the creation of a melon / pumpkin block when you right-click with a bone meal on a melon / pumpkin plant
- It just detect if the plant is full grown. if yes, the method "Grow" is not called
- Remove IsFullGrownPlant
Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* fixed network
fixed explosion
fixed ticking
added network broadcast to Setter method
added nullptr protection
using macros in 1.10 Protocol_1_10.cpp
revealed functions to LUA API
small fixups, typos, less functions used
fixed more doc
readded info that saving is done only if the beam is displayed
made the constructor transfer all needed members
fixed wrong commit
removed default parameters on SpawnEnderCrystal
fixed wrong metadata
moved call to destroy in the right place
fixed some typos
Fixed Ender Crystal
* fixed documentation
* fixed doc and added proper error message
* Parameters, arrows
* Parameters
Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* added breaking, spawning, animation
* checkstyle
* added undocumented API symbols
* added changes suggested by @peterbell10
* added natural ore like generation
* fixed spawning two silverfishes
* fixed clang
* fixed clang try 2
* updated comment
unified offset
* final clang fix
* added spawning for more silverfishes if one was damaged
* fixed spawning on one hit kill
* fixed spawning on one hit kill
fixed spawning by potion damage
* fixed clang
* fixed broken build
* fixed broken build
* I should read the error message properly
fixed build now?
* added small changes suggested by @peterbell10
Co-authored-by: 12xx12 <12xx12100@gmail.com>
* Implement Dropspenser Hook
Implemented a hook for dropspensing.
HOOK_DROPSPENSE
When plugin callback returns true then dropspense is cancelled
* Update src/Bindings/PluginManager.h
Co-authored-by: peterbell10 <peterbell10@live.co.uk>
* Create OnDropSpense.lua
* Fix indent
* Forgot include
Forgot to include the plugin manager. Although now im confused why it was working on my end without including the plugin manager
* Update plugins.lua with dropspense
* fix typos
* haha notepad++ go brr
Co-authored-by: peterbell10 <peterbell10@live.co.uk>
* the beginning of a magnificent work - added basic files and classes without functionality
* fixed checkstyle
* added imports
* moved imports
* - Adding SinglePieceStructureGen
- Adding a cPrefabChestStructure to generate Chests with contents
- Added the options and calls to the ComposableGenerator
* moved Globals to .h file
* removed the chest thingy from the code (for now)
* Update SinglePieceStructureGen.cpp
* readded whitespace
* renamed to SinglePieceStructuresGen for consistency
added new classes to test
* fixed small things (mostly style and cleanup)
removed loottables
* added small changes suggested by madmaxoft
* small change to documentation
* added check for allowed biomes
* check only the biome of the origin position
* fixed error on IsBiomeAllowed
* added new cubesets
* updated structures for with sponging
* updated biome names
* updated metadata to prevent crashing
removed debug output
* updated structures with sponging
* added sponging to deserterWell to make it disappear in sand
* small change in meta
* rename DesertTemple -> DesertPyramid
* minor style changes
Co-authored-by: 12xx12 <12xx12100@gmail.com>
Co-authored-by: Alexander Harkness <me@bearbin.net>
* made snow golems not crashing the server anymore
* changed damage type to environment
* updated damage in API dopcumentation and changed enderman damage type
* removed incidental d in the code
Co-authored-by: 12xx12 <12xx12100@gmail.com>
- Removed the calculation in the noteblock block entity
I did the calculation in python if anyone is interested where the numbers are from
Co-authored-by: 12xx12 <12xx12100@gmail.com>
* Adding Emeralds to generation
* fixed crash
* fixed documentation and changed function name to match others
* forgot to change the name in the doc
* removed debug output - sorry build servers
Co-authored-by: 12xx12 <12xx12100@gmail.com>
* Introduce recipe book functionality
The recipe book helps especially new players. Missing it gives the
impression that cuberite is not as advanced as it is.
The handling of the recipe book uses the following functions:
- Unlock Recipes
(https://wiki.vg/index.php?title=Protocol&oldid=14204#Unlock_Recipes) to
make recipes available and show the notification for new recipes.
Initialization is done on player login for known ones, the update is done
when new items are discovered.
- Craft Recipe Request
(https://wiki.vg/index.php?title=Protocol&oldid=14204#Craft_Recipe_Request)
when the user selects a recipe from the recipe book to fill the slots.
Known recipes are initialized on player login via `Unlock Recipes` with
`Action` 0.
As soon as a new recipe is discovered this is added via `Unlock Recipes`
with `Action` 1.
To be able to know and recognize new recipes the player class is
extended with `KnownItems` and `KnownRecipes`. As soon as a player
touches an item this is compared to the list of `KnownItems`, if the
item is unknown the recipes are checked for this item and the other
ingredients are checked with the list of `KnownItems`. If a full match
is discovered the recipe is unlocked with the client and stored in the
`KnownRecipes`.
To unlock recipes the recipe ID is sent to the client. A mapping file
(for protocol 1.12.2) translated the minecraft recipe names to ids. The
crafting.txt is extended with and minecraft recipe names is possible.
Limitations:
Only a single recipe is added to the crafting area. Multiple clicks or
shift click does not increase the number of builds.
Co-authored-by: peterbell10 <peterbell10@live.co.uk>
* Address first issues mentioned by @peterbell10
- Some linting
- Extract loading of recipe specific protocol mapping into a function
- Build `RecipeNameMap` only once
- Use `std::optional`
- Extract `LoadRecipe` from `Window`
* Start to implement new suggestions
* Update with suggestions from @peterbell10
* Some minor cleanup
* Update protocol packet IDs
* Remove unused include
* Include header in cmake
* Change a vector to integer counter
* Change dromedaryCase method names to PascalCase
* Address suggestions from @madmaxoft
* Read Protocol subdirectories to load recipe books
To load all recipebooks iterate over the `Protocol` subdirectories
to find mapping files.
Co-authored-by: peterbell10 <peterbell10@live.co.uk>