//public IDictionary<ArkName, IProperty> Properties //{ // get // { // return properties; // } // set // { // if (value == null) throw new NullReferenceException("Null pointer exception from java"); // properties = value; // } //} //protected internal IDictionary<ArkName, IProperty> properties = new Dictionary<ArkName, IProperty>(); public int getSize(ArkArchive archive) { _isitemOffset = _classNameOffset + archive.GetNameLength(Offset + _classNameOffset); _namesOffset = _isitemOffset + 4; var names = archive.GetInt(Offset + _namesOffset); _unkboolOffset = _namesOffset + 4; for (var i = 0; i < names; i++) { _unkboolOffset += archive.GetNameLength(Offset + _unkboolOffset); } _unkindexOffset = _unkboolOffset + 4; _locationsOffset = _unkindexOffset + 4; var locations = archive.GetInt(Offset + _locationsOffset); if (locations > 1) { _logger.Warn($"countLocationData > 1 at {Offset + _locationsOffset:X}"); } _propertiesoffsetOffset = _locationsOffset + 4 + locations * 6 * 4; _shouldbezeroOffset = _propertiesoffsetOffset + 4; return(_shouldbezeroOffset + 4); //var size = /* uuid */ 16 + archive.GetNameLength(archive.Position + 16) + /* isitem */ 4; //var names = archive.GetInt(archive.Position + size); //size += /* names count */ 4; //for (var i = 0; i < names; i++) size += archive.GetNameLength(archive.Position + size); //size += /* unkbool */ 4 + /* unkindex */ 4; //var locations = archive.GetInt(archive.Position + size); //if (locations > 1) _logger.Warn($"countLocationData > 1 at {archive.Position + size:X}"); //size += /* locations */ 4 + /* location */ locations * 6 * 4 + /* properties offset */ 4 + /* shouldbezero */ 4; //return size; }