mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
Implement entity types (#1001)
Implement palette generation and investigate palette changes between versions. Turns out 1.13- has legacy IDs, 1.14 switches to entity palette and 1.15 refreshes the whole palette just to insert Bee. Also refactor entity handling code here and there.
This commit is contained in:
parent
5b0b0c9cc3
commit
bd85c46663
27 changed files with 1113 additions and 259 deletions
41
MinecraftClient/Mapping/BlockPalettes/BlockPalette.cs
Normal file
41
MinecraftClient/Mapping/BlockPalettes/BlockPalette.cs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace MinecraftClient.Mapping.BlockPalettes
|
||||
{
|
||||
public abstract class BlockPalette
|
||||
{
|
||||
/// <summary>
|
||||
/// Get mapping dictionary. Must be overriden with proper implementation.
|
||||
/// </summary>
|
||||
/// <returns>Palette dictionary</returns>
|
||||
protected abstract Dictionary<int, Material> GetDict();
|
||||
|
||||
/// <summary>
|
||||
/// Get material from block ID or block state ID
|
||||
/// </summary>
|
||||
/// <param name="id">Block ID (up to MC 1.12) or block state (MC 1.13+)</param>
|
||||
/// <returns>Material corresponding to the specified ID</returns>
|
||||
public Material FromId(int id)
|
||||
{
|
||||
Dictionary<int, Material> materials = GetDict();
|
||||
if (materials.ContainsKey(id))
|
||||
return materials[id];
|
||||
return Material.Air;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns TRUE if block ID uses old metadata encoding with ID and Meta inside one ushort
|
||||
/// Only Palette112 should override this.
|
||||
/// </summary>
|
||||
public virtual bool IdHasMetadata
|
||||
{
|
||||
get
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue