ddevault / truecraft Goto Github PK
View Code? Open in Web Editor NEWMinecraft for hipsters
Home Page: http://truecraft.io/
License: MIT License
Minecraft for hipsters
Home Page: http://truecraft.io/
License: MIT License
Should we report this info?
Automating builds would make TrueCraft more accessible. Mono has a docker image that automatically builds and runs projects.
Ex. Dockerfile (in project root):
FROM mono:4.0.0-onbuild
EXPOSE 25565
CMD [ "mono", "./TrueCraft.exe" ]
Build with:
docker build -t truecraft .
or, if you want to tag the image with the git commit id:
TAG=`git log --format="%H" -n 1 | cut -c1-10`; docker build -t "truecraft:$TAG" .
Run with:
docker run -it --rm -p 25565:25565 truecraft
Below is a list of Code Analysis errors in a Pastebin, we should go through case by case and suppress them or fix them
We should have a Windows installer. I've done one in the past that worked pretty well for Patchy, we should follow a similar strategy.
Placing a torch on an invalid surface of a solid block will force it to attach to any valid solid block reachable from that location.
ex. placing a torch on the bottom of a solid block 2 blocks above a chest.
How about convert TrueCraft to PCL?
I have something that I can call a "client". Runs on mobile platforms and blah blah. Still sucks a bit. Would be cool if I could run both client and server on, for example, android.
Will help, of course.
Most of this can be taken from Craft.Net.
i.e. torches
I would like to see a TrueCraft launcher built with Mono xwt (cross platform GUI toolkit for C#). Our launcher will do a bit more than the Minecraft launcher, including:
AVG marks the compiled TrueCraft.exe (in the Debug folder) as a virus with type 'unknown' upon running - I will submit this to AVG as a false flag, however it would be good if you had any idea what may be triggering this
Falling sand has been checked off, however I'm still getting a lot of weird behaviour with falling sand, is that not a server problem?
Saving worlds to disk (in anvil format) needs to be implemented.
I've done a few improvements to the /give command tonight, but I'd still like to discuss/propose 2 features:
The first one is really easy, for the second one, though, I wouldn't immediately know where to start. Thus, before spending a lot of effort and possibly not using a very pretty solution, I'd like to discuss them.
However, I'm going to bed now, so good night ๐ด
I followed the build instructions in the README, and got this error:
/home/luke/tmpstore/build/TrueCraft/TrueCraft/TrueCraft.csproj (default targets) ->
/usr/lib/mono/4.5/Microsoft.CSharp.targets (CoreCompile target) ->
Program.cs(14,7): error CS0246: The type or namespace name `YamlDotNet' could not be found. Are you missing an assembly reference?
Configuration.cs(3,7): error CS0246: The type or namespace name `YamlDotNet' could not be found. Are you missing an assembly reference?
19 Warning(s)
2 Error(s)
I'm using latest mono as per these instructions: http://www.mono-project.com/docs/getting-started/install/linux/#debian-ubuntu-and-derivatives
Thanks!
Issue: a piece of snowtile pops up
I expected a snowball to 'drop'
Monodevelop complains about YamlDotNet (a nuget package) not being available. When trying to install nuget packages, I get this:
I am using:
$ mono --version
Mono JIT compiler version 2.10.8 (tarball Sun Aug 17 19:00:51 UTC 2014)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: debugger softdebug
LLVM: supported, not enabled.
GC: Included Boehm (with typed GC and Parallel Mark)
Is there anything I am missing?
I'm on Debian jessie 64-bit, installed xbuild from packages. I followed the instructions in the README, typed xbuild
in the TrueCraft folder (cloned from Git recursively) and got:
XBuild Engine Version 12.0
Mono, Version 3.2.8.0
Copyright (C) 2005-2013 Various Mono authors
Build started 01/05/2015 14:36:00.
__________________________________________________
Project "/home/calinou/Git/truecraft/TrueCraft.sln" (default target(s)):
Target ValidateSolutionConfiguration:
Building solution configuration "Debug|x86".
Target Build:
Project "/home/calinou/Git/truecraft/externals/fNbt/fNbt/fNbt.csproj" (default target(s)):
Target PrepareForBuild:
: error : Error initializing task Message: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot find the file specified.
Task "Message" execution -- FAILED
Done building target "PrepareForBuild" in project "/home/calinou/Git/truecraft/externals/fNbt/fNbt/fNbt.csproj".-- FAILED
Target _RecordCleanFile:
: error : Error initializing task ReadLinesFromFile: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot find the file specified.
Task "ReadLinesFromFile" execution -- FAILED
Done building target "_RecordCleanFile" in project "/home/calinou/Git/truecraft/externals/fNbt/fNbt/fNbt.csproj".-- FAILED
Done building project "/home/calinou/Git/truecraft/externals/fNbt/fNbt/fNbt.csproj".-- FAILED
Task "MSBuild" execution -- FAILED
Done building target "Build" in project "/home/calinou/Git/truecraft/TrueCraft.sln".-- FAILED
Done building project "/home/calinou/Git/truecraft/TrueCraft.sln".-- FAILED
Build FAILED.
Errors:
/home/calinou/Git/truecraft/TrueCraft.sln (default targets) ->
(Build target) ->
/home/calinou/Git/truecraft/externals/fNbt/fNbt/fNbt.csproj (default targets) ->
/usr/lib/mono/4.5/Microsoft.Common.targets (PrepareForBuild target) ->
: error : Error initializing task Message: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot find the file specified.
/home/calinou/Git/truecraft/TrueCraft.sln (default targets) ->
(Build target) ->
/home/calinou/Git/truecraft/externals/fNbt/fNbt/fNbt.csproj (default targets) ->
/usr/lib/mono/4.5/Microsoft.Common.targets (_RecordCleanFile target) ->
: error : Error initializing task ReadLinesFromFile: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0' or one of its dependencies. The system cannot find the file specified.
0 Warning(s)
2 Error(s)
Time Elapsed 00:00:00.1781310
What do I need to do for it to build? I've never built a C# program before, so I have no idea what to do.
Also, does TrueCraft require game data from Minecraft? You should probably mention it in the README; if it does, I can work on getting replacement data for those who don't have Minecraft.
Need a volunteer to make a font that is in the spirit of Minecraft. Should be an image (PNG) that includes characters for the ASCII set (everything less than 0x7F, feel free to omit control chars).
For reference, here's the original Minecraft font image. The TrueCraft font needs to be compatible (i.e. same characters in the same places).
Dropped items (seem to randomly) jump up and down the Z-axis.
My guess is that the server and client can't agree on the Z-position of the item
Steps to reproduce:
Expected Results
The torch is not placed and you still have n torches in your inventory.
Actual Results
The torch is not placed and you have n-1 torches in your inventory.
2) Why are you using storing the drawable coordinates in ChunkConverter.ProcessChunk()? Can't you just directly call the RenderBlock method?
protected VertexPositionNormalTexture[] CreateUniformCube(Vector3 offset, Vector2[] texture, int indicesOffset, out int[] indices) {
indices = new int[6 * 6];
var vertices = new VertexPositionNormalTexture[4 * 6];
int textureIndex = 0;
int verticesLocIndex = 0, indicesLocIndex = 0;
for (int side = 0; side < 6; side++) {
CreateQuad(side, offset, texture, textureIndex % texture.Length, indicesOffset,
vertices, indices, ref verticesLocIndex, ref indicesLocIndex );
textureIndex += 4;
}
return vertices;
}
static int[] baseIndices = new[] { 0, 1, 3, 1, 2, 3 };
protected static void CreateQuad(int face, Vector3 offset, Vector2[] texture, int textureOffset,
int indicesOffset, VertexPositionNormalTexture[] vertices, int[] indices,
ref int verticesLocIndex, ref int indicesLocIndex ) {
for (int i = 0; i < 6; i++)
indices[indicesLocIndex++] = baseIndices[i] + (face * 4) + indicesOffset;
var unit = CubeMesh[face];
var normal = CubeNormals[face];
for (int i = 0; i < 4; i++) {
vertices[verticesLocIndex++] = new VertexPositionNormalTexture(offset + unit[i], normal, texture[textureOffset + i]);
}
}
In the Chunk class, you should consider using DateTime.UtcNow instead of DateTime.Now. Not only should this improve performance, this would also reduce memory usage as DateTime.Now allocates memory for parsing timezone info. (CLRProfiler indicates retrieving DateTime.Now when calling Chunk.GetBlockId from processing chunks ends up allocating 144 megabytes of memory)
See comment
Part 1 addresses the 1.5 gigabytes allocated in List.AddRange,
Part 2 addresses the 1.4 gigabytes in BlockRenderer.RenderBlock
There is currently no contributing.md, some information on how to contribute would be beneficial.
This involves sending armor to clients and the relevant inventory stuff to handle that.
The big list of things you can do in Minecraft that need to be supported in TrueCraft.
When working on one of these, reference the issue number ("#12") in your commit messages.
We could use some way to remove scheduled events from the event queue when they are no longer needed. For example, when a client disconnects, all of their events keep on chugging along.
Personally, I think it would be better if the BlockStairs code was moved from WoodStairs to a new class.
Unfortunately, I have read deobfuscated MC source and can't contribute. However, if you need a question about something behaves answered, feel free to ask me and I can check the source.
When starting to implement the custom client, I don't think it would be a bad idea to implement custom chat colors for modding support.
E.g. instead of using the predefined colors like $9
for blue, a mod could use RGB values like $(0,116,217)
for a slightly nicer blue.
Too rad?
Unless I'm forgetting something, every "transparent" material in b1.7.3 Minecraft can be correctly rendered using a technique called "Screen Door Transparency". The primary benefit of this technique is that you don't need to depth sort, but it requires that each pixel in a texture be either 0% or 100%.
See the first part of this article for a better description.
I'm not sure if it happens often, but when a new player logs in and is in a block underground, it's not good. It should check if there's air two blocks up from the feet position.
This bug occurs on the latest version of TrueCraft (4f66305).
Currently various features/issues are considered to be out of scope, and will need to be addressed at a later date. Below is a list of said features/issues by category, and will be updated as needed.
I expected dropped items to fall through tall grass
The current list of features that are planned for backporting. Suggest more in this thread.
Currently, the client renders all vertices of all faces (example here, with all blocks being drawn at half extent to make the overdraw visible):
There are two main ways you can reduce this:
For solid blocks
For transparent and transluscent blocks, you can do this:
2) Add a 'CanShareWithNeighbours(Face...' method to BlockProvider. You can skip drawing a face when a block and its neighbour are the same type. (e.g. for glass, water)
(Note that water is a bit trickier - for horizontal neighbours, you have to make sure that they have the same height and shape)
Starting this thread to collect ideas for resources (sound, music, textures) that we can use for TrueCraft.
https://github.com/deathcap/ProgrammerArt - CC texture pack we may be able to leverage
Friendly:
Passive:
Agressive:
Misc:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.