(50~250 face)
We look at the effect.
(http://i61.tinypic.com/11ajrpg.jpg)
The new trees will not drop your FPS(Tested)
These look great!
WOW
Very nice!
question
@Idle Work Team are the animated ? will they change with seasons ?
if not, planning to do it ?
Quote from: RedKetchup on October 04, 2015, 01:51:26 AM
question @Idle Work Team
are the animated ? will they change with seasons ?
if not, planning to do it ?
animated, but not leaves.
Are you going to have them separated by climate?
@RedKetchupHi there. I was building a new construction like this .
(http://i58.tinypic.com/jsc7jc.jpg)
But it wouldn't work because the land ground within this game has restricts me
(http://i60.tinypic.com/2ns44f9.jpg)
And it looks like this now ,So I used Miners code
QuarryDescription quarry
{
PickingMesh _floorMesh = "Models\Buildings\Quarry\QuarryFloor.rsc";
float _maxDepth = -7.0;
float _initialDepth = -7;
}
(http://i58.tinypic.com/mcc6ww.jpg)
So I had to build a ground floor for this construction, it turns out wasn't like what I expected but collapsed at it edges .
QuarryDescription quarry
{
PickingMesh _floorMesh = "Models\build\Shandimofang\floor1.rsc";
float _maxDepth = -5.0;
float _initialDepth = -4;
}
(http://i60.tinypic.com/34imkqt.jpg)
(http://i60.tinypic.com/2cynpr7.jpg)
So how could I build the ground for buildings like miner? Is there any special code or requirements for these buildings?
What I really want to do is delete those default ground layers under buildings , I saw your canal achieve this functionality.
Sorry for bothering you for the problem.
the quarry floor level is very tricky and work very bad, you are better to go with 1'x1'x0,1' pieces well centered on the game tiles.
but you can still have bad corners. you need walls in your mesh to cover those imperfections, you need to anticipate all those events by covering much more than expected.
in you .fbx you will have a mesh called [ floor ] and a mesh called [ floor1 ]
floor = your quarry floor
floor1 = your citizen floor
Description _descriptions
[
"ui",
"quarry",
"floor",
......
QuarryDescription quarry
{
PickingMesh _floorMesh = "Models\NewMedievalClayPitFloor.rsc";
float _maxDepth = -4.0;
float _initialDepth = -4.0;
}
FloorDescription floor
{
PickingMesh _mesh = "Models\NewMedievalClayPitFloor1.rsc";
}
there is a copy of my Template/MedievalClayPit.rsc
// layout of the entity
ComponentDescription resource
{
// how often to update
UpdatePriority _updatePriority = Fourth;
// declare types that will be used
Description _descriptions
[
"ui",
"map",
"zone",
"toolbar",
"createplaced",
"decal",
"model",
"picking",
"highlight",
"interact",
"storage",
"quarry",
"floor",
"work",
"statusicon",
"tracker",
"statemachine",
"cleararea",
"build",
"workplace",
"destroy",
"consumeproduce",
]
}
// layout of the entity
ComponentDescription destroyed
{
// how often to update
UpdatePriority _updatePriority = None;
// declare types that will be used
Description _descriptions
[
"map",
"zone",
"decal",
"modeldestroyed",
]
}
TrackerDescription tracker { }
ClearAreaDescription cleararea
{
//bool _flattenGround = false;
bool _flattenGround = true;
}
StateMachineDescription statemachine
{
}
ZoneDescription zone
{
}
FloorDescription floor
{
PickingMesh _mesh = "Models\NewMedievalClayPitFloor1.rsc";
}
DestroyDescription destroy
{
int _damagedSkin = 1;
int _damagedDecal = 1;
}
ZoneDescription zone
{
}
StatusIconDescription statusicon
{
SpriteSheet _spriteSheet = "StatusIcons\BuildingIconSpriteSheet.rsc";
bool _fixedSize = true;
float _size = 0.04;
float _zoffset = 1.33;
}
QuarryDescription quarry
{
PickingMesh _floorMesh = "Models\NewMedievalClayPitFloor.rsc";
float _maxDepth = -4.0;
float _initialDepth = -4.0;
}
ToolbarDescription toolbar
{
SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "NewMedievalClayPit";
StringTable _stringTable = "UI/NMTownStringTable.rsc";
String _stringName = "NewMedievalClayPit";
String _stringNameLwr = "NewMedievalClayPitLwr";
String _toolTip = "NewMedievalClayPitTip";
String _statusStrings
[
"CreateOk",
"CreateBlocked",
]
int _group = 2;
}
CreatePlacedDescription createplaced
{
PathBits _placeBits = Normal | Obstacle | Unusable | Walkable | Water | Occasional;
int _width = 9;
int _height = 9;
int _footprintRotation = 0;
PathBits _placeBitArray
[
Normal | Obstacle | Unusable | Walkable | Water | Occasional,
Normal | Obstacle | Fast | Faster,
]
String _placeBitmap =
"000111000
000000000
000000000
000000000
000000000
000000000
000000000
000000000
000000000";
ComponentDescription _allowAndRemove = "Template/Clear.rsc";
}
MapDescription map
{
PathType _pathType = Immovable;
String _pathBitmap =
"###...###
#_______#
#_##__#_#
#_#___#_#
#_#___#_#
#_#___#_#
#_#######
#____####
#########";
bool _addToOverhead = true;
Color _mapColor = 0xFF545454;
}
DecalDescription decal
{
MaterialInstance _materials
[
"Models\NewMedievalClayPitFootprintMaterial.rsc"
"Models\NewMedievalClayPitFootprintDamageMaterial.rsc"
]
bool _tiled = false;
float _initialAlpha = 0.5;
float _mapWidth = 64.0;
DecalLocation _decalLocations
[
{
float _x0 = 0.0;
float _y0 = 0.0;
float _x1 = 64.0;
float _y1 = 64.0;
}
]
}
PickingDescription picking
{
MaterialInstance _selectMaterial = "Material/SelectionMask/SelectionMask.rsc";
PickingGroup _meshes
[
{
PickingMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Picking.rsc",
"Models\NewMedievalClayPitPicking.rsc"
]
}
]
}
ModelDescription model
{
MeshGroup _meshes
[
{
GraphicsMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Mesh.rsc",
"Models\NewMedievalClayPitMesh.rsc"
]
}
]
int _displayIndex = 0;
int _subIndex = 0;
bool _randomIndex = false;
}
HighlightDescription highlight
{
EdgeGroup _meshes
[
{
EdgeMesh _mesh
[
//"Models\NewMedievalClayPitBuild01Mesh.rsc:edge",
"Models\NewMedievalClayPitMesh.rsc:edge"
]
}
]
// materials for drawing selection with no mesh
MaterialInstance _maskMaterial = "Material/SelectionMask/SelectionMask.rsc";
MaterialInstance _edgeMaterial = "Material/SelectionEdge/SelectionEdge.rsc";
}
InteractDescription interact
{
PointList _pointList = "Models\NewMedievalClayPitPoints.rsc";
}
StorageDescription storage
{
}
WorkDescription work
{
int _defaultWorkers = 6;
bool _allowCountChange = true;
int _minWorkerCount = 1;
int _maxWorkerCount = 6;
}
WorkPlaceDescription workplace
{
Profession _profession = "Game/Profession/Profession.rsc:stonecutter";
Profession _pickupProfession = "Game/Profession/Profession.rsc:stonecutter";
}
ConsumeProduceDescription consumeproduce
{
Product _products
[
{
ComponentDescription _produceMaterial = "Template/RawMaterialClay.rsc";
ResourceLimit _resourceLimit = Stone;
}
]
StringTable _stringTable = "UI/NMTownStringTable.rsc";
ToolType _toolType = PickAxe;
int _workRequired = 10;
float _workTime = 10.0;
}
BuildDescription build
{
int _workRequired = 30;
BuildRequirement _buildRequirement
[
{
ComponentDescription _rawMaterial = "Template/RawMaterialWood.rsc";
int _count = 24;
}
]
}
UIDescription ui
{
int _displayPage = 0; // set to 1 for tab layout
Dialog _dialog = "Dialog/StandardDialog.rsc:entity";
ElementController _controllers
[
{
ObjectType _type = ControlUI;
ElementDescription _element = "enableWorkButton";
String _insertAt = "userButton0";
DialogControllerConfig _config = "workButtonConfig";
}
{
ObjectType _type = ResourceLimitUI;
ElementDescription _element = "resourceLimit";
String _insertAt = "userButton1";
DialogControllerConfig _config = "resourceLimitConfig";
}
{
ObjectType _type = ProductionUI;
ElementDescription _element = "Dialog/Production.rsc:production4";
String _insertAt = "pageUser";
}
{
ObjectType _type = PageToggleUI;
ElementDescription _element = "Dialog/Production.rsc:checkProduction";
String _insertAt = "userTitle0";
}
{
ObjectType _type = WorkPlaceUI;
ElementDescription _element = "Dialog/Work.rsc:workPlace";
String _insertAt = "userTitle1";
}
{
ObjectType _type = StatusIconUI;
ElementDescription _element = "Dialog/Building.rsc:icons";
String _insertAt = "userTitle2";
}
{
ObjectType _type = BuildUI;
ElementDescription _element = "Dialog/Build.rsc:build";
String _insertAt = "pageBuild";
}
{
ObjectType _type = DestroyUI;
ElementDescription _element = "Dialog/Destroy.rsc:destroy";
String _insertAt = "pageDestroy";
}
]
}
ControlUIConfig workButtonConfig
{
ObjectType _type = ConsumeProduceComponent;
int _controlId = 0;
}
CheckDescription enableWorkButton : "Dialog/SharedElements.rsc:checkSimple"
{
int _topPad = 4;
Dialog _toolTipDialog = "Dialog/ToolTip.rsc";
StringTable _toolTipStringTable = "Dialog/StringTable.rsc:gameDialogs";
String _toolTipText = "EnableWorkTip";
ElementDescription _content = "labelWorkUncheck";
ElementDescription _check = "labelWorkCheck";
}
LabelDescription labelWorkCheck
{
int _topPad = 4;
int _leftPad = 4;
int _rightPad = 4;
int _bottomPad = 4;
int _minWidth = 61;
int _minHeight = 61;
Alignment _alignment = MidCenter;
Font _font = "Font\FontSmall.rsc";
StringTable _stringTable = "Dialog/StringTable.rsc:gameDialogs";
String _text = "EnableWork";
int _spacing = 2;
LabelPosition _labelPosition = TextBottom;
Alignment _textAlignment = MidCenter;
SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "NewMedievalClayPit";
}
LabelDescription labelWorkUncheck : "labelWorkCheck"
{
Color _color = 0xFF2E2B28;
}
ResourceLimitUIConfig resourceLimitConfig
{
ResourceLimit _resourceLimit = Stone;
}
RibbonDescription resourceLimit
{
Alignment _alignment = TopLeft;
bool vertical = false;
int _topPad = 24;
int _cellPad = 8;
int _minWidth = 222;
ElementDescription _elements
[
"labelLimit",
"editLimit",
]
Dialog _toolTipDialog = "Dialog/ToolTip.rsc";
StringTable _toolTipStringTable = "Dialog/StringTable.rsc:gameDialogs";
String _toolTipText = "StoneLimitTip";
}
LabelDescription labelLimit
{
Alignment _alignment = MidLeft;
Font _font = "Font\FontSmall.rsc";
int _imageWidth = 20;
int _imageHeight = 20;
int _spacing = 4;
LabelPosition _labelPosition = TextRight;
Alignment _textAlignment = MidLeft;
StringTable _stringTable = "Dialog/StringTable.rsc:gameDialogs";
String _text = "StoneLimit";
SpriteSheet _spriteSheet = "UI/NMTownSpriteSheet.rsc";
String _spriteName = "Clay";
}
SpinnerDescription editLimit : "Dialog/SharedElements.rsc:spinnerSmall6"
{
int _increment = 1000;
ElementDescription _border = "Dialog/SharedElements.rsc:flatButtonEnabledBorder";
}
in my screenshot you will see my [ mesh ] , my [ floor ] , and my [ floor1 ]. you will need to do same.
Thank you very much. It looks so complicated. I'll try it first.
@RedKetchupThanks for your help.
I've tested it, and it's already been achieved.
(http://i62.tinypic.com/20u7in4.jpg)
(http://i59.tinypic.com/fqwdd.jpg)
(http://i62.tinypic.com/2hi2qhd.jpg)
very nice work :)
Woah, this is super interesting stuff... also the trees and plants and rocks are great... :D
I agree, the new trees look great.
When do you plan on uploading them as a mod?
It may be best to keep them as a separate mod.
Now I haven't been around for ages, but this definitely caught my eye. :O
Any plans on releasing this here? I know you have already released some mods on Steam, but most of us don't use Steam to play the game... would you kindly make them available elsewhere as well? We really enjoy them, and are eager to see more from you! ;P
Quote from: Idle Work Team on October 04, 2015, 09:23:35 PM(http://i59.tinypic.com/fqwdd.jpg)
Sorry to necro this thread - but did this mod ever see the light of day?
Shame if it didn't... :'(
i dunno i ve heard Idle hasnt been seen in months :(
It's such a shame they never released a mod with the trees!