Git Product home page Git Product logo

c-raft's Introduction

C#raft Development Readme

The official repository is at:
https://github.com/chraft/c-raft

IRC Channel:
irc.esper.net:6667 #c#raft

Website: http://www.c-raft.com

Official Team Plugins Repository: https://github.com/chraft/c-raft-plugins

Contributing

Development:
Fork the code from the DEVELOP branch and submit pull requests for that branch, once coding standards have been verified you may be given direct commit access. You need the .NET 4 Framework if you wish to contribute, builds are also compiled against the mono compiler to check compatibility. Comment your code well, remember that you are not the only one contributing. Builds are built on each commit and the status output to the IRC channel.

Use spaces as tabs (4 per tab), you can set this in visual studio http://msdn.microsoft.com/en-us/library/ms165330(v=vs.80).aspx in MonoDevelop you can set this for the solution in the Solution options / Source Code / Code Formatting / Text file / Text Style, tick Convert tabs to spaces.

Testing:
Latest builds are available here: http://dl.c-raft.com

Raising Issues:
Raise issues here: https://github.com/chraft/c-raft/issues

Running:
You need the .net4 framework for windows, and mono 2.10+ for linux.
For windows just run the exe, for linux plese run using mono --debug Chraft.exe

example format -

Title: Doing something breaks the server.

To Reproduce:
1. Smash some trees
2. Get some wood
3. Make sticks
4. Crash

Error file : http://pastie.org/

Screenshot: http://imgur.com/

c-raft's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

c-raft's Issues

Blocks: Implement as classes

Create abstract Block class, and descend each block type from this (e.g. a stone block, or button block, or pressure plate block and so on).

Each block as different properties such as:

Friction (soul sand, ice, other), a step sound, fall behaviour, logic (e.g. button/pressure plate) and so on.

Also some logic contained within WorldGen will need to move into appropriate block classes.

A factory class will provide an extension point for implementing custom block behaviour.

Mob spawning needs to be rewritten

Currently the mob spawning does not follow what is written here: http://www.minecraftwiki.net/wiki/Spawn#Mob_Spawning

A spawn centre-point needs to be determined and for 12 attempts a mob is spawned within a 41x1x41 area centred on that point (more likely to spawn towards centre - see wiki post above).

This logic should be moved out of the chunk, and be put into a spawn thread within the world manager. Currently it is piggy backed off the Chunk.Grow method.

Blocks: Step Sounds

Implement block step sound broadcasts (don't want everything creeping around like creepers)

Inventory does not clear on death

[22:38:23] ben1066: and inventory needs clearing on death
[22:47:11] ben1066: ementalo, it looks like the inventory slot is nulled on death however when you respawn, the items are invisible to start but as soon as yuo attempt to use it it reappears

Persistent containers need to use a single itemstack list per container

Persistent containers can be opened by more than one client and in the case of a furnace or dispenser, by the world itself.

Therefore multiple clients need to be able to subscribe to the same itemstack list events based on changes from different clients and world processes (such as dispenser or furnace).

Necessary to complete #3

Permissions rewrite

I will rewrite to use XML / node based probably to make things like sub permissions and multi-world(future) easier

Lever blocks show a different model

Lever blocks when placed take the shape of their selection box and also it persists even when destroyed like in #41. I experience this while running it in MonoDevelop using .NET 4.0.

But when I compiled it, using MonoDevelop, it doesn't do issue #41. It gets destroyed and drops an item like normal though the model issue is still there.

Require a more generic Client.DamageClient

A DamageClient function is required that better supports the different damage types so that the damage can be applied in one place, with a variety of parameters determining the amount of damage:

Currently it assumes damage from an EntityBase, whereas we need to support a whole range of damage sources:

  1. Client Item Damage (damage from clients with swords, arrows, TNT, and so on)
  2. Mob Damage (various mobs)
  3. Natural Damage
    • Fall Damage
    • Drowning
    • Suffocation
    • Cacti
    • Lava

required for #30, #31, #32

Fall damage

http://mc.kev009.com/Protocol#Player_.280x0A.29

When dropping from sufficient height, fall damage is applied when this state goes from False to True. The amount of damage applied is based on the point where it last changed from True to False. Note that there are several movement related packets containing this state.

Falling to death

Just checked out the latest version

To Reproduce:

  1. Make the ground under the spawn point solid (not liquid)
  2. Make a tower tall enough to kill you
  3. Build another tower next to this of the same height
  4. Jump down onto the first tower (to kill you)
  5. Click respawn and you should die again (I think it thinks you fell from the previous point)

Crafting - QTY issue?

Make workbench
2 wood in a line to attempt to craft stick
the sticks with a QTY of 4 flash briefly leaving you with a sole lonely stick

set command exception

Folas: I'm setting pos1 and pos2. Trying to use "/set 3" or something like that, but it doesn't work =(
Folas: "There was an error while executing the command."

Crafting not working

Cannot craft an item successfully. Tried with workbench and the item flashes in the slot briefly

Physics - blocks do not fall on the server

  1. Go to a tree,
  2. get the three blocks from ground up
  3. get the 4th block
  4. it will appear to fall (on the client), but on the server it is actually still in the air
  5. jump up and you will then pick up the block of wood

This issue also explains the "unable to pickup more then 3 blocks of wood" issue that has been seen in the past.

write ChunkLoaded() method

Need a chunk method.. Uh

public bool ChunkLoaded(Chunk c) {

}

or whatever. Needs to just return whether the chunk is loaded yet or not. :| If possible. Would really be useful for combatting lag bugs.

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.